Files
webmanager-mvp/project_docs/BACKEND_V1_CONSOLIDATION.md
T
2026-03-11 09:39:41 +01:00

2.3 KiB

BACKEND_V1_CONSOLIDATION.md

Doel

Consolidatie van de huidige backend v1 contracten en beperkingen.

Huidige endpoints

Directe endpoints (geen task-creatie):

  • GET /api/browse
  • POST /api/files/mkdir
  • POST /api/files/rename
  • POST /api/files/delete
  • GET /api/tasks
  • GET /api/tasks/{task_id}

Task-based create endpoints:

  • POST /api/files/copy
  • POST /api/files/move

Semantiek per endpoint

GET /api/browse

  • Browse van een directory binnen whitelist roots.
  • Hidden files standaard verborgen, optioneel via show_hidden=true.

POST /api/files/mkdir

  • Maakt directory op exact parent_path + name.
  • Geen impliciete pad-normalisatie buiten path_guard validatie.

POST /api/files/rename

  • Hernoemt binnen dezelfde parent directory.
  • Geen verborgen move naar andere map.

POST /api/files/delete

  • Verwijdert file direct.
  • Verwijdert alleen lege directory.
  • Non-empty directory => conflict.

POST /api/files/copy

  • File-only copy.
  • destination is volledig doelpad (geen "copy into directory").
  • Task wordt aangemaakt (202, task_id, queued) en daarna uitgevoerd.

POST /api/files/move

  • File-only move.
  • destination is volledig doelpad.
  • Task wordt aangemaakt (202, task_id, queued) en daarna uitgevoerd.
  • Same-root: native move.
  • Cross-root: copy + delete binnen dezelfde task.

GET /api/tasks

  • Lijst van tasks, gesorteerd op created_at DESC.
  • Item bevat minimaal: id, operation, status, source, destination, created_at, finished_at.

GET /api/tasks/{task_id}

  • Detailstatus inclusief progress/foutvelden.
  • Statusset: queued, running, completed, failed.

Foutmodel per endpointgroep

Browse/file-validatie

  • invalid_request
  • path_traversal_detected
  • path_outside_whitelist
  • invalid_root_alias
  • path_not_found
  • type_conflict
  • already_exists
  • directory_not_empty (delete)

Task create runtime

  • validatiefouten vóór task-creatie: directe API-fout, geen task
  • runtime-fouten tijdens task-uitvoering: task naar failed met io_error

Tasks read

  • task_not_found bij onbekend task id

Expliciete v1-beperkingen

  • copy: file-only
  • move: file-only
  • delete: alleen file + lege directory
  • geen recursive delete
  • geen directory copy/move
  • geen rollback
  • geen cancel/retry
  • geen batch-operaties