[Quality] HTTP-Status-Codes vereinheitlichen + Job-Dict typisieren #27

Closed
opened 2026-05-27 12:21:06 +02:00 by ferdi2go · 1 comment
Owner

Probleme

a) Inkonsistente Status-Codesserver.py

  • not-found-Verzeichnisse mal 400 (Z.205, 287), mal 403 (Z.178)
  • permission-Fehler 403, aber 400 mit "Ordner nicht gefunden" fuer aehnliche Faelle

b) Job-Dict ohne Schemaserver.py:241
Untyped dict mit ad-hoc keys.

Fix

  • a) Konvention: 404 fuer not-found, 403 fuer permission, 400 fuer invalid input.
  • b) Pydantic-Modell JobStatus(BaseModel) mit Literal["running","done","error"]. Helfer set_job_status(job_id, **kw) fuer atomare Updates.
## Probleme **a) Inkonsistente Status-Codes** — `server.py` - not-found-Verzeichnisse mal 400 (Z.205, 287), mal 403 (Z.178) - permission-Fehler 403, aber 400 mit "Ordner nicht gefunden" fuer aehnliche Faelle **b) Job-Dict ohne Schema** — `server.py:241` Untyped dict mit ad-hoc keys. ## Fix - a) Konvention: **404** fuer not-found, **403** fuer permission, **400** fuer invalid input. - b) Pydantic-Modell `JobStatus(BaseModel)` mit `Literal["running","done","error"]`. Helfer `set_job_status(job_id, **kw)` fuer atomare Updates.
ferdi2go added the maintenancepriority: low labels 2026-05-27 12:21:06 +02:00
Author
Owner

Fix (a) umgesetzt in server.py:

Konvention durchgezogen:

  • 404 Resource not found (Datei, Ordner, Job, Export)
  • 403 Permission denied (auth/path-sandbox/owner-check)
  • 415 Unsupported Media Type (Dateityp nicht erlaubt)
  • 400 Invalid input (Pydantic-Validation)
  • 500 Server-Fehler

Geaenderte Stellen:

  • /analyze not-found Ordner: 400 -> 404
  • /preview, /thumb falscher Dateityp: 403 -> 415
  • /upload-watermark falsches Format: 400 -> 415

Bereits konsistent durch #26: alle Tempdir-Verifikationen im Helper geben 403 (out-of-sandbox) oder 404 (in-sandbox-aber-not-found).

(b) Job-Dict mit Pydantic typisieren als separates Issue #31 ausgegliedert (groesserer Refactor, besser mit Test-Setup gemeinsam).

Manueller Test:

  • /preview?path=...x.bmp -> HTTP 415
  • /analyze mit folder=/tmp/does-not-exist -> HTTP 404
Fix (a) umgesetzt in `server.py`: **Konvention durchgezogen:** - **404** Resource not found (Datei, Ordner, Job, Export) - **403** Permission denied (auth/path-sandbox/owner-check) - **415** Unsupported Media Type (Dateityp nicht erlaubt) - **400** Invalid input (Pydantic-Validation) - **500** Server-Fehler **Geaenderte Stellen:** - `/analyze` not-found Ordner: 400 -> **404** - `/preview`, `/thumb` falscher Dateityp: 403 -> **415** - `/upload-watermark` falsches Format: 400 -> **415** **Bereits konsistent durch #26**: alle Tempdir-Verifikationen im Helper geben 403 (out-of-sandbox) oder 404 (in-sandbox-aber-not-found). **(b) Job-Dict mit Pydantic typisieren** als separates Issue #31 ausgegliedert (groesserer Refactor, besser mit Test-Setup gemeinsam). Manueller Test: - `/preview?path=...x.bmp` -> HTTP 415 - `/analyze` mit `folder=/tmp/does-not-exist` -> HTTP 404
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ferdi2go/OnlyFrames#27