feat: add read-only System Info admin page with health checks and module inventory

New page at /admin/system-info with three tabs:
- Overview: PHP version, SAPI, environment, 6 health checks (DB, schema,
  storage, RBAC baseline, admin role, scheduler heartbeat)
- Modules: table of active modules with version, dependencies, permission count
- Permissions: active/inactive counts and per-source breakdown

Gated behind new system_info.view permission assigned to Admin role.
No mutations — purely diagnostic/observability.

Includes SystemHealthService, SystemInfoService, SystemHealthRepository
with interface, DI registration, i18n keys (de+en), idempotent DB update
script, and 17 new PHPUnit tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-22 15:08:02 +01:00
parent be8bf496cb
commit cf8c59d3f8
17 changed files with 1164 additions and 4 deletions

View File

@@ -1285,5 +1285,28 @@
"Session expiring": "Sitzung läuft ab",
"Your session will expire in {countdown}. Would you like to continue?": "Ihre Sitzung läuft in {countdown} ab. Möchten Sie fortfahren?",
"Extend session": "Sitzung verlängern",
"Log out": "Abmelden"
"Log out": "Abmelden",
"System Info": "Systeminfo",
"Health Status": "Systemstatus",
"Check": "Prüfung",
"Details": "Details",
"PHP version": "PHP-Version",
"PHP SAPI": "PHP SAPI",
"Active modules": "Aktive Module",
"No modules active.": "Keine Module aktiv.",
"Module": "Modul",
"Default": "Standard",
"Dependencies": "Abhängigkeiten",
"Permission summary": "Berechtigungsübersicht",
"Active permissions": "Aktive Berechtigungen",
"Inactive (orphaned) permissions": "Inaktive (verwaiste) Berechtigungen",
"Permissions by source": "Berechtigungen nach Quelle",
"Source": "Quelle",
"Count": "Anzahl",
"No health checks available.": "Keine Systemprüfungen verfügbar.",
"Warning": "Warnung",
"Fail": "Fehler",
"Environment": "Umgebung",
"Modules": "Module",
"Version": "Version"
}