{"timestamp":"2026-03-06T15:11:50+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin_ia_budgets.php","context":{"ip":"74.7.227.39","uri":"/demo/orchestrator/api/admin_ia_budgets.php","method":"GET"}}
{"timestamp":"2026-03-06T15:11:54+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/_middleware_telemetry.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:12+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/_middleware_rbac.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:17+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/_middleware_tenant.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:21+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/audit.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:21+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/audit.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.39"}}
{"timestamp":"2026-03-06T15:12:22+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/users.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:22+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/users.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.39"}}
{"timestamp":"2026-03-06T15:12:23+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/roles.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:23+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/roles.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.39"}}
{"timestamp":"2026-03-06T15:12:24+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin_ia_policy.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:24+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin_ia_policy.php","context":{"ip":"74.7.227.39","uri":"/demo/orchestrator/api/admin_ia_policy.php","method":"GET"}}
{"timestamp":"2026-03-06T15:12:26+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin_ia_audit.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:26+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin_ia_audit.php","context":{"ip":"74.7.227.39","uri":"/demo/orchestrator/api/admin_ia_audit.php","method":"GET"}}
{"timestamp":"2026-03-06T15:12:27+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/licences.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:27+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/licences.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.39"}}
{"timestamp":"2026-03-06T15:12:31+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/tenant.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:31+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/tenant.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.39"}}
{"timestamp":"2026-03-06T15:12:31+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/classes.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:31+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/classes.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.39"}}
{"timestamp":"2026-03-06T15:12:34+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/import.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:34+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/import.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.39"}}
{"timestamp":"2026-03-06T15:12:35+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin_students.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:12:35+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin_students.php","context":{"ip":"74.7.227.39","uri":"/demo/orchestrator/api/admin_students.php","method":"GET"}}
{"timestamp":"2026-03-06T15:13:00+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/onboarding.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:00+00:00","level":"ERROR","message":"Database connection failed","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/onboarding.php","context":{"error":"SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)"}}
{"timestamp":"2026-03-06T15:13:00+00:00","level":"ERROR","message":"Uncaught Exception","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/onboarding.php","context":{"message":"Database connection failed","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/db.php","line":41,"trace":"#0 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/db.php(11): Database->connect()\n#1 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/db.php(16): Database->__construct()\n#2 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/db.php(233): Database::getInstance()\n#3 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/api/admin/onboarding.php(48): db()\n#4 {main}"}}
{"timestamp":"2026-03-06T15:13:00+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/admin/onboarding.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php:161)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php","line":166}}
{"timestamp":"2026-03-06T15:13:03+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/qa10_maintenance_jobs_test.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:03+00:00","level":"ERROR","message":"Uncaught Exception","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/qa10_maintenance_jobs_test.php","context":{"message":"Call to undefined function exec()","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/qa10_maintenance_jobs_test.php","line":163,"trace":"#0 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/qa10_maintenance_jobs_test.php(48): MaintenanceJobsTest->testBackupJobSyntax()\n#1 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/qa10_maintenance_jobs_test.php(518): MaintenanceJobsTest->run()\n#2 {main}"}}
{"timestamp":"2026-03-06T15:13:03+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/qa10_maintenance_jobs_test.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/qa10_maintenance_jobs_test.php:475)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php","line":166}}
{"timestamp":"2026-03-06T15:13:03+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/qa08_error_handling_test.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:04+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:04+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":155}}
{"timestamp":"2026-03-06T15:13:04+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":170}}
{"timestamp":"2026-03-06T15:13:04+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":171}}
{"timestamp":"2026-03-06T15:13:04+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":172}}
{"timestamp":"2026-03-06T15:13:04+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":173}}
{"timestamp":"2026-03-06T15:13:04+00:00","level":"ERROR","message":"Uncaught Exception","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"message":"Undefined constant \"APP_VERSION\"","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/api/health.php","line":16,"trace":"#0 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php(358): include()\n#1 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php(61): SmokeTest->testHealthEndpoint()\n#2 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php(552): SmokeTest->run()\n#3 {main}"}}
{"timestamp":"2026-03-06T15:13:04+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php","line":166}}
{"timestamp":"2026-03-06T15:13:06+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/assignments.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:06+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/assignments.php","context":{"ip":"74.7.227.39","uri":"/demo/orchestrator/api/assignments.php","method":"GET"}}
{"timestamp":"2026-03-06T15:13:12+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/ai.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:14+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/auth.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:14+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/auth.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.39"}}
{"timestamp":"2026-03-06T15:13:19+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/services/audit_log.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:26+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/services/mailer.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:34+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/student/review.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:13:52+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/coach.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:14:16+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/health.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:14:16+00:00","level":"ERROR","message":"Uncaught Exception","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/health.php","context":{"message":"Undefined constant \"APP_VERSION\"","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/api/health.php","line":16,"trace":"#0 {main}"}}
{"timestamp":"2026-03-06T15:14:16+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/health.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php:161)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php","line":166}}
{"timestamp":"2026-03-06T15:14:33+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/publish.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:19:23+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/students.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-06T15:19:23+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/students.php","context":{"ip":"74.7.227.39","uri":"/demo/orchestrator/api/students.php","method":"GET"}}
{"timestamp":"2026-03-06T15:20:14+00:00","level":"INFO","message":"Application started","ip":"74.7.227.39","method":"GET","uri":"/demo/orchestrator/api/insights.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:40:57+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin_ia_budgets.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:40:57+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin_ia_budgets.php","context":{"ip":"74.7.227.189","uri":"/demo/orchestrator/api/admin_ia_budgets.php","method":"GET"}}
{"timestamp":"2026-03-20T12:40:59+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/_middleware_telemetry.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:00+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/_middleware_rbac.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:02+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/_middleware_tenant.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:03+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin_ia_policy.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:03+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin_ia_policy.php","context":{"ip":"74.7.227.189","uri":"/demo/orchestrator/api/admin_ia_policy.php","method":"GET"}}
{"timestamp":"2026-03-20T12:41:04+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin_ia_audit.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:04+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin_ia_audit.php","context":{"ip":"74.7.227.189","uri":"/demo/orchestrator/api/admin_ia_audit.php","method":"GET"}}
{"timestamp":"2026-03-20T12:41:12+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/audit.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:12+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/audit.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.189"}}
{"timestamp":"2026-03-20T12:41:13+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/users.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:13+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/users.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.189"}}
{"timestamp":"2026-03-20T12:41:14+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/roles.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:14+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/roles.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.189"}}
{"timestamp":"2026-03-20T12:41:15+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/licences.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:15+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/licences.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.189"}}
{"timestamp":"2026-03-20T12:41:15+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/tenant.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:15+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/tenant.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.189"}}
{"timestamp":"2026-03-20T12:41:16+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/classes.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:16+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/classes.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.189"}}
{"timestamp":"2026-03-20T12:41:16+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/import.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:16+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/import.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.189"}}
{"timestamp":"2026-03-20T12:41:17+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin_students.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:17+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin_students.php","context":{"ip":"74.7.227.189","uri":"/demo/orchestrator/api/admin_students.php","method":"GET"}}
{"timestamp":"2026-03-20T12:41:30+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/qa10_maintenance_jobs_test.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:30+00:00","level":"ERROR","message":"Uncaught Exception","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/qa10_maintenance_jobs_test.php","context":{"message":"Call to undefined function exec()","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/qa10_maintenance_jobs_test.php","line":163,"trace":"#0 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/qa10_maintenance_jobs_test.php(48): MaintenanceJobsTest->testBackupJobSyntax()\n#1 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/qa10_maintenance_jobs_test.php(518): MaintenanceJobsTest->run()\n#2 {main}"}}
{"timestamp":"2026-03-20T12:41:30+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/qa10_maintenance_jobs_test.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/qa10_maintenance_jobs_test.php:475)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php","line":166}}
{"timestamp":"2026-03-20T12:41:30+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/qa08_error_handling_test.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:31+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:31+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":155}}
{"timestamp":"2026-03-20T12:41:31+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":170}}
{"timestamp":"2026-03-20T12:41:31+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":171}}
{"timestamp":"2026-03-20T12:41:31+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":172}}
{"timestamp":"2026-03-20T12:41:31+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/util.php","line":173}}
{"timestamp":"2026-03-20T12:41:31+00:00","level":"ERROR","message":"Uncaught Exception","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"message":"Undefined constant \"APP_VERSION\"","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/api/health.php","line":16,"trace":"#0 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php(358): include()\n#1 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php(61): SmokeTest->testHealthEndpoint()\n#2 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php(552): SmokeTest->run()\n#3 {main}"}}
{"timestamp":"2026-03-20T12:41:31+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/tests/smoke_test_qa01.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/tests/smoke_test_qa01.php:508)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php","line":166}}
{"timestamp":"2026-03-20T12:41:33+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/onboarding.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:33+00:00","level":"ERROR","message":"Database connection failed","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/onboarding.php","context":{"error":"SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)"}}
{"timestamp":"2026-03-20T12:41:33+00:00","level":"ERROR","message":"Uncaught Exception","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/onboarding.php","context":{"message":"Database connection failed","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/db.php","line":41,"trace":"#0 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/db.php(11): Database->connect()\n#1 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/db.php(16): Database->__construct()\n#2 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/lib/db.php(233): Database::getInstance()\n#3 /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/api/admin/onboarding.php(48): db()\n#4 {main}"}}
{"timestamp":"2026-03-20T12:41:33+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/admin/onboarding.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php:161)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php","line":166}}
{"timestamp":"2026-03-20T12:41:37+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/assignments.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:37+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/assignments.php","context":{"ip":"74.7.227.189","uri":"/demo/orchestrator/api/assignments.php","method":"GET"}}
{"timestamp":"2026-03-20T12:41:41+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/ai.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:44+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/auth.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:44+00:00","level":"WARN","message":"Unauthorized access attempt","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/auth.php","context":{"message":"Missing or invalid Authorization header","ip":"74.7.227.189"}}
{"timestamp":"2026-03-20T12:41:49+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/services/audit_log.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:41:56+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/services/mailer.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:42:04+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/student/review.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:42:21+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/coach.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:42:48+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/health.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:42:48+00:00","level":"ERROR","message":"Uncaught Exception","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/health.php","context":{"message":"Undefined constant \"APP_VERSION\"","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/api/health.php","line":16,"trace":"#0 {main}"}}
{"timestamp":"2026-03-20T12:42:48+00:00","level":"ERROR","message":"PHP Error","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/health.php","context":{"errno":2,"message":"Cannot modify header information - headers already sent by (output started at /home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php:161)","file":"/home/mehdydri/demo-smso.mehdydriouech.fr/demo/orchestrator/.env.php","line":166}}
{"timestamp":"2026-03-20T12:43:05+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/publish.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:52:44+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/insights.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:54:24+00:00","level":"INFO","message":"Application started","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/students.php","context":{"env":"development","debug":true,"mock_mode":false}}
{"timestamp":"2026-03-20T12:54:24+00:00","level":"WARN","message":"Missing tenant identifier","ip":"74.7.227.189","method":"GET","uri":"/demo/orchestrator/api/students.php","context":{"ip":"74.7.227.189","uri":"/demo/orchestrator/api/students.php","method":"GET"}}
