Method | URL | Scope | Purpose |
|---|
GET | /api/v1/files/allowed-paths
| installation:files
| Returns the active path allowlist. |
POST | /api/v1/files/allowed-paths
| installation:admin
| Add a search path to the persistent allowlist. Body: { "path": "..." }. Idempotent — re-adding an existing path is a no-op. Returns 200 with { "path": "...", "status": "added" }. |
DELETE | /api/v1/files/allowed-paths
| installation:admin
| Remove a search path from the persistent allowlist. Body: { "path": "..." } (path is in the body, not the URL, to mirror the POST shape and avoid URL-encoding hell with Windows paths). Idempotent — removing a path not in the list still returns 200 with { "path": "...", "status": "removed" }. |
GET | /api/v1/files/exists
| installation:files
| Existence check for a file or directory under the allowlist. |
POST | /api/v1/files/upload/start
| installation:files
| Begin a chunked upload; returns a transfer ID. |
POST | /api/v1/files/upload/chunk
| installation:files
| Upload one chunk of an in-progress transfer. |
POST | /api/v1/files/upload/finish
| installation:files
| Finalize a chunked upload. |
POST | /api/v1/files/upload/cancel
| installation:files
| Cancel an in-progress chunked upload. |
POST | /api/v1/files/upload/small
| installation:files
| Single-shot upload for files under 4 MB. |
POST | /api/v1/files/download/start
| installation:files
| Begin a chunked download; returns a transfer ID. |
POST | /api/v1/files/download/chunk
| installation:files
| Read one chunk of an in-progress download. |
POST | /api/v1/files/download/finish
| installation:files
| Finalize a chunked download. |
POST | /api/v1/files/download/cancel
| installation:files
| Cancel an in-progress chunked download. |
GET | /api/v1/files/download/size
| installation:files
| Pre-flight size check for a downloadable file. |
POST | /api/v1/files/delete-solution
| installation:admin
| Delete a solution from the installation. Privileged. |