{"ok":true,"service":"uploadBase","endpoints":[{"method":"GET","path":"/health","authRequired":false,"response":{"ok":true,"service":"uploadBase"}},{"method":"GET","path":"/ready","authRequired":false,"response":{"ok":true,"service":"uploadBase","storage":"ready"}},{"method":"GET","path":"/api/help","authRequired":false,"response":"This deterministic JSON document."},{"method":"PUT","path":"/api/files/<relative-path>","authRequired":true,"authHeaders":["Authorization: Bearer <upload-key>","X-Upload-Key: <upload-key>"],"requestBody":"Raw file bytes up to 2147483648 bytes. Multipart form data is not supported.","maxBytes":2147483648,"maxBytesConfig":"UPLOADBASE_MAX_BYTES","query":{"overwrite":"Optional. Use overwrite=1 or overwrite=true to replace an existing file."},"successResponse":{"ok":true,"path":"<relative-path>","bytes":12,"sha256":"<hex-encoded-sha256>"},"example":{"request":"curl -X PUT http://127.0.0.1:3187/api/files/reports/example.txt -H 'Authorization: Bearer <upload-key>' --data-binary @example.txt","response":{"ok":true,"path":"reports/example.txt","bytes":12,"sha256":"<hex-encoded-sha256>"}}}],"errors":{"unauthorized":"Missing or invalid upload key.","invalid_path":"The relative upload path is empty, absolute, malformed, or resolves outside the upload base.","conflict":"The target file already exists and overwrite was not explicitly requested.","payload_too_large":"The raw request body exceeds the configured 2147483648 byte limit."}}