upload volledige repo

This commit is contained in:
kodi
2026-03-11 09:39:41 +01:00
commit ce420cbb0e
110 changed files with 5660 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
# COPY_V1_CONSOLIDATION.md
## Task lifecycle (copy v1)
`POST /api/files/copy`:
1. Request wordt gevalideerd.
2. Bij geldige input wordt direct een task aangemaakt met status `queued`.
3. Een achtergrond-runner zet de task op `running` en vult progress (`done_bytes`, `total_bytes`).
4. Eindstatus:
- `completed` bij succesvolle file copy
- `failed` bij runtime I/O fout (`error_code = io_error`)
## Validatiefouten vs runtime-fouten
Validatiefouten (voor task-creatie):
- `invalid_request`
- `path_traversal_detected`
- `path_outside_whitelist`
- `invalid_root_alias`
- `path_not_found`
- `type_conflict`
- `already_exists`
Gedrag:
- request faalt direct met error response
- er wordt geen task aangemaakt
Runtime-fouten (na task-creatie):
- `io_error`
Gedrag:
- request zelf retourneert `202` met `task_id`
- task gaat naar `failed`
- foutdetails verschijnen via `GET /api/tasks/{task_id}`
## Copy metadata in v1 (`copy_file(...)`)
V1 kopieert:
- file-inhoud (byte stream)
- basic filesystem metadata via `copystat` (mtime/atime/mode waar ondersteund)
V1 doet niet expliciet:
- ownership/ACL normalisatie
- extended attributes beleid
## Destination-semantiek (expliciet)
`destination` blijft in v1 altijd het volledige doelpad.
- Geen impliciete "copy into existing directory" interpretatie.
- Als destination al bestaat: `already_exists`.