T1016/Docker-Integration, Logging verbessern, DB-Migration, Deployment-Helpers #2

Merged
muke merged 11 commits from T1016/docker-integration into main 2026-03-01 23:13:33 +01:00
Owner

Zusammenfassung

Dieses Merge enthält mehrere zusammenhängende Änderungen zur Verbesserung des Loggings, Datenbank‑Migrations und Bereitstellungs‑Hilfen:

  • Maskierung sensibler Felder im LogManager (api_token, password, Authorization, ...)
  • Verbesserung des LogManager (Metadaten: phid, host, app_version; channel-Parameter)
  • Bugfix: DBManager INSERT/UPDATE/DELETE Formatstrings korrigiert
  • Migration: sql/create_logs_table.sql (neue logs-Tabelle)
  • Deployment: docker-compose.prod.yml und deploy.sh (Beispiel / Helper)
  • Dokumentation: Wiki‑Seiten Logging.md und Deployment.md

Wichtige Dateien

  • src/Log/LogManager.php — Maskierung, Kanal, Meta-Daten
  • src/Database/DBManager.php — SQL-Formatfixes
  • sql/create_logs_table.sql — Migration (CREATE TABLE logs)
  • docker-compose.prod.yml, deploy.sh — Production-Helper
  • phorgerunner.wiki/Logging.md, phorgerunner.wiki/Deployment.md — Dokumentation

Motivation

Die Änderungen sorgen dafür, dass sensible Daten nicht unverschlüsselt in Logs oder DB landen und vereinheitlichen das Logging‑Schema. Zusätzlich erleichtern die Deployment‑Hilfsdateien den Rollout in Production und liefern eine Referenz im Wiki.

Testing / Validierung

  1. Migration in Staging anwenden (siehe sql/create_logs_table.sql) und prüfen, dass Tabelle logs existiert.
  2. Smoke-Test: Log-Eintrag mit sensiblen Feldern erzeugen — prüfen, dass payload maskiert ist:
docker compose -f docker-compose.yml -f docker-compose.dev.yml exec -T app php -r '
require "/app/src/Autoloader.php"; $l=new App\\Log\\LogManager();
$l->log("smoke","info",["user"=>"alice","api_token"=>"secret"],"fp-smoke","PHID-TEST",1,"cli");
echo "done\n";'
  1. Prüfen: File‑Log /app/logs/app.log (maskiert), DB‑Tabelle logs (payload maskiert).

Migration / Deployment Hinweise

  • Migration in Production per CI oder manuell ausführen.
  • APP_VERSION in Production‑Umgebung setzen (wird in Logs gespeichert).
  • Secrets nicht in VCS; in Production Docker Secrets/Vault verwenden.

Breaking Changes / Risks

  • Benennung: interne Methode ManiphestCreateTask auf callPhorgeApi() normalisiert — keine externen API-Änderungen.
  • DB‑Schema: neue logs-Tabelle erforderlich; ohne Migration fallen Logs zurück auf File‑Logging.

Checklist (Reviewer)

  • Migration geprüft und angewendet in Staging
  • Smoke-Test in Staging bestanden (File + DB)
  • Wiki-Seiten geprüft
  • CI: Lint/Tests grün

Tickets

## Zusammenfassung Dieses Merge enthält mehrere zusammenhängende Änderungen zur Verbesserung des Loggings, Datenbank‑Migrations und Bereitstellungs‑Hilfen: - Maskierung sensibler Felder im `LogManager` (`api_token`, `password`, `Authorization`, ...) - Verbesserung des `LogManager` (Metadaten: `phid`, `host`, `app_version`; `channel`-Parameter) - Bugfix: `DBManager` INSERT/UPDATE/DELETE Formatstrings korrigiert - Migration: `sql/create_logs_table.sql` (neue `logs`-Tabelle) - Deployment: `docker-compose.prod.yml` und `deploy.sh` (Beispiel / Helper) - Dokumentation: Wiki‑Seiten `Logging.md` und `Deployment.md` ## Wichtige Dateien - `src/Log/LogManager.php` — Maskierung, Kanal, Meta-Daten - `src/Database/DBManager.php` — SQL-Formatfixes - `sql/create_logs_table.sql` — Migration (CREATE TABLE `logs`) - `docker-compose.prod.yml`, `deploy.sh` — Production-Helper - `phorgerunner.wiki/Logging.md`, `phorgerunner.wiki/Deployment.md` — Dokumentation ## Motivation Die Änderungen sorgen dafür, dass sensible Daten nicht unverschlüsselt in Logs oder DB landen und vereinheitlichen das Logging‑Schema. Zusätzlich erleichtern die Deployment‑Hilfsdateien den Rollout in Production und liefern eine Referenz im Wiki. ## Testing / Validierung 1. Migration in Staging anwenden (siehe `sql/create_logs_table.sql`) und prüfen, dass Tabelle `logs` existiert. 2. Smoke-Test: Log-Eintrag mit sensiblen Feldern erzeugen — prüfen, dass `payload` maskiert ist: ```bash docker compose -f docker-compose.yml -f docker-compose.dev.yml exec -T app php -r ' require "/app/src/Autoloader.php"; $l=new App\\Log\\LogManager(); $l->log("smoke","info",["user"=>"alice","api_token"=>"secret"],"fp-smoke","PHID-TEST",1,"cli"); echo "done\n";' ``` 3. Prüfen: File‑Log `/app/logs/app.log` (maskiert), DB‑Tabelle `logs` (payload maskiert). ## Migration / Deployment Hinweise - Migration in Production per CI oder manuell ausführen. - `APP_VERSION` in Production‑Umgebung setzen (wird in Logs gespeichert). - Secrets nicht in VCS; in Production Docker Secrets/Vault verwenden. ## Breaking Changes / Risks - Benennung: interne Methode `ManiphestCreateTask` auf `callPhorgeApi()` normalisiert — keine externen API-Änderungen. - DB‑Schema: neue `logs`-Tabelle erforderlich; ohne Migration fallen Logs zurück auf File‑Logging. ## Checklist (Reviewer) - [x] Migration geprüft und angewendet in Staging - [x] Smoke-Test in Staging bestanden (File + DB) - [x] Wiki-Seiten geprüft - [x] CI: Lint/Tests grün --- ## Tickets * fixes T1016 * fixes T1017 * fixes T1018 * fixes T1020 * fixes T1019 * fixes T1022
muke added 11 commits 2026-03-01 23:08:07 +01:00
muke merged commit 69c359bc61 into main 2026-03-01 23:13:33 +01:00
muke deleted branch T1016/docker-integration 2026-03-01 23:13:33 +01:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
automation/phorgerunner!2
No description provided.