FDN-14: pruefprotokoll und readme
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bba98f6d38
commit
54efde77a1
2 files changed
+39
No files matched your search
@@ -24,6 +24,11 @@ App läuft danach auf `:8100` (überschreibbar über
|
||||
liefert Metriken auf `:8101` (`NEXARCH_DMS_WORKER_METRICS_ADDR`). Portbereich des
|
||||
DMS laut `deploy/ports.tsv`: 8100–8199; Prüfung: `scripts/check-port-defaults.sh`.
|
||||
|
||||
Fachliche Routen (z. B. `POST /retention/destroy-callback`) liegen unter dem Präfix
|
||||
`/api/dms/v1` (`NEXARCH_DMS_APP_ROUTE_PREFIX`, Register `deploy/routes.tsv`, Prüfung
|
||||
`scripts/check-route-prefixes.sh`); nur `/healthz` und `/metrics` bleiben auf Wurzelebene. Die bei archive
|
||||
registrierte Rückruf-URL (`NEXARCH_DMS_APP_RETENTION_CALLBACK_URL`) muss den Präfix enthalten.
|
||||
|
||||
## Struktur
|
||||
|
||||
- `cmd/app` — Anfrage-Dienst (HTTP), blockiert nie durch lange Aufgaben
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# FDN-14 – Prüfprotokoll: Routenpräfix je Modul
|
||||
|
||||
Stand: 2026-09-18. Testhost 192.168.1.131 (`go vet`, `go build ./...`, Tests). Basis: FDN-12 (Skript-Infrastruktur).
|
||||
|
||||
## Umsetzung
|
||||
|
||||
- `internal/routeprefix`: `Validate`, `FromEnv` (`NEXARCH_DMS_APP_ROUTE_PREFIX`, Default `/api/dms/v1`), `Mount` (Untermux
|
||||
hinter `http.StripPrefix`; Handler registrieren ihre Pfade unverändert ohne Präfix).
|
||||
- `cmd/app`: `newMux(prefix, metrics)` liefert Wurzel-Mux (`/healthz`, `/metrics`) und Untermux; die fachlichen Routen
|
||||
(aktuell `POST /retention/destroy-callback`) hängen am Untermux. Fehlerhafter Präfix beendet den Start mit Meldung.
|
||||
- `downloadapi`: ausgestellte Download-URLs bekommen den Präfix (`SetPathPrefix`, `buildDownloadURL`); sonst wäre die
|
||||
relative URL `/download?…` hinter dem Präfix nicht erreichbar.
|
||||
- `deploy/routes.tsv`: Präfix je Modul; `scripts/check-route-prefixes.sh` prüft Format, Eindeutigkeit, Überschneidung
|
||||
(kein Präfix darf Pfad-Präfix eines anderen sein) und dass `DefaultPrefix` im Code dem Registereintrag entspricht.
|
||||
- `/healthz` und `/metrics` bleiben bewusst auf Wurzelebene (Betriebs-Endpunkte, keine Fachroute).
|
||||
|
||||
## Prüfungen
|
||||
|
||||
| # | Prüfung | Ergebnis |
|
||||
|---|---------|----------|
|
||||
| 1 | Routen unter Präfix antworten, Root-Pfade und fremdes Präfix liefern 404, `/healthz` bleibt (`TestMount_RoutesUnderPrefixOnly`, `TestNewMux_BusinessRoutesOnlyUnderPrefix`); Pfadparameter und Methodenmuster bleiben intakt (`TestMount_PathValuesSurviveStripPrefix`) | bestanden |
|
||||
| 2 | Präfix per Umgebungsvariable verschiebt alle Routen konsistent, altes Präfix nicht mehr erreichbar; ungültige Werte werden abgelehnt (`TestFromEnv_*`) | bestanden |
|
||||
| 3 | Prüfskript: Duplikat, verschachtelte Präfixe, ungültige Formate (ohne führenden Slash, `..`, Slash am Ende) und abweichender Code-Default werden erkannt, Repo-Register besteht (`scripts/check-route-prefixes_test.sh`) | bestanden |
|
||||
|
||||
## Offen
|
||||
|
||||
- Die anderen Handler-Pakete (`documentapi`, `folderapi`, `trashapi`, …) sind im `cmd/app` noch nicht verdrahtet; sobald
|
||||
sie es sind, hängen sie über `RegisterRoutes(api)` automatisch am Präfix. Zum Zeitpunkt dieser Kachel ist nur der
|
||||
Retention-Rückruf tatsächlich am Präfix.
|
||||
- Die bei archive registrierte Rückruf-URL muss den Präfix enthalten (README ergänzt); bestehende Registrierungen sind
|
||||
anzupassen.
|
||||
- Frontend (`web/`) nutzt eigene Pfade/Proxy-Konfiguration und ist hier nicht angepasst.
|
||||
- Die Präfixe anderer Module sind im Register reserviert, deren Code prüft dieses Skript nicht.
|
||||
- nginx-Beispielkonfiguration: `PROXMOX-DEPLOYMENT.md` (Konzept-Repo).
|
||||
Reference in new issue
Block a user