{ "opencollection": "1.0.0", "info": { "name": "Forithmus Challenge Platform 2fa data-upload API", "version": "1.0.0" }, "items": [ { "info": { "name": "data-upload", "type": "folder" }, "items": [ { "info": { "name": "Upload Test Data", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/challenges/:slug/phases/:phase_id/data/test-data", "params": [ { "name": "slug", "value": "", "type": "path" }, { "name": "phase_id", "value": "", "type": "path" } ], "body": { "type": "multipart-form", "data": [] } }, "docs": "Upload test input data as a zip file. The zip is stored in GCS temp and\na Celery task handles extraction + scanning + GCS upload asynchronously.\nReturns immediately with a processing status.\n\nUses explicit sessions to avoid holding a DB connection during file streaming\nand GCS upload (can be multi-GB)." }, { "info": { "name": "Generate Upload Url", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/challenges/:slug/phases/:phase_id/data/upload-url", "params": [ { "name": "slug", "value": "", "type": "path" }, { "name": "phase_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Generate a signed POST Policy for direct-to-GCS upload.\nClient uploads directly to GCS, bypassing the backend (no buffering)." }, { "info": { "name": "Complete Direct Upload", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/challenges/:slug/phases/:phase_id/data/upload-complete", "params": [ { "name": "slug", "value": "", "type": "path" }, { "name": "phase_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Finalize a direct-to-GCS upload. Verifies the upload_id was issued to this\nuser, confirms the blob exists in GCS, then queues the extraction task." }, { "info": { "name": "Abort Direct Upload", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/challenges/:slug/phases/:phase_id/data/upload-abort", "params": [ { "name": "slug", "value": "", "type": "path" }, { "name": "phase_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancel a direct upload: deletes the partial/complete _temp/ blob and invalidates the session.\nClient should call this if the upload is cancelled or fails." }, { "info": { "name": "Upload Ground Truth", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/challenges/:slug/phases/:phase_id/data/ground-truth", "params": [ { "name": "slug", "value": "", "type": "path" }, { "name": "phase_id", "value": "", "type": "path" } ], "body": { "type": "multipart-form", "data": [] } }, "docs": "Upload ground truth labels as a zip file. The zip is stored in GCS temp\nand a Celery task handles extraction + scanning + GCS upload asynchronously.\nReturns immediately with a processing status.\n\nUses explicit sessions to avoid holding a DB connection during file streaming." }, { "info": { "name": "Upload Eval Container", "type": "http" }, "http": { "method": "POST", "url": "{{baseUrl}}/challenges/:slug/phases/:phase_id/data/eval-container", "params": [ { "name": "slug", "value": "", "type": "path" }, { "name": "phase_id", "value": "", "type": "path" } ], "body": { "type": "multipart-form", "data": [] } }, "docs": "Upload an evaluation Docker container as a .tar.gz file.\nStored in GCS models bucket; registry push is handled by a Celery task.\nReturns immediately with a processing status.\n\nUses explicit sessions to avoid holding a DB connection during file streaming." }, { "info": { "name": "Get Data Status", "type": "http" }, "http": { "method": "GET", "url": "{{baseUrl}}/challenges/:slug/phases/:phase_id/data/status", "params": [ { "name": "slug", "value": "", "type": "path" }, { "name": "phase_id", "value": "", "type": "path" } ] }, "docs": "Check what data has been uploaded for this phase.\nReturns upload status for test data, ground truth, and eval container." }, { "info": { "name": "Delete Data", "type": "http" }, "http": { "method": "DELETE", "url": "{{baseUrl}}/challenges/:slug/phases/:phase_id/data/:data_type", "params": [ { "name": "slug", "value": "", "type": "path" }, { "name": "phase_id", "value": "", "type": "path" }, { "name": "data_type", "value": "", "type": "path" } ] }, "docs": "Delete previously uploaded data for a phase.\ndata_type must be one of: test-data, ground-truth, eval-container." } ] } ], "bundled": true }