Skip to content

Conversation

@grsr
Copy link
Collaborator

@grsr grsr commented Nov 2, 2025

DRS Upload and Delete Extensions

This PR adds optional upload, delete and access method update endpoints to the DRS specification, enabling complete DRS object lifecycle management. Existing DRS servers remain fully compliant without implementing these extensions.

New Endpoints

Upload

  • POST /upload-request - Negotiate upload methods and credentials for file uploads
  • POST /objects/register - Register uploaded files or existing data as DRS objects

Delete

  • POST /objects/{object_id}/delete - Delete single DRS object with optional storage data removal
  • POST /objects/delete - Bulk delete DRS objects with optional storage data removal

Update Access Methods

  • POST /objects/{object_id}/access-methods - Update access methods for a single DRS object
  • POST /objects/access-methods - Update access methods for multiple DRS objects

Service Discovery

New service-info flags for granular capability advertisement:

  • uploadRequestSupported / objectRegistrationSupported
  • deleteSupported / deleteStorageDataSupported
  • accessMethodUpdateSupported / validateAccessMethodUpdate
  • Bulk operation limits: maxUploadRequestLength, maxRegisterRequestLength, maxBulkDeleteLength, maxBulkAccessMethodUpdateLength

This approach supports GA4GH Passports, Bearer tokens, and API keys for authentication. We use POST methods rather than DELETE to allow passports to be used in deletion requests.

The details and motivation for the proposal are included in the documentation for the new endpoints, which are rendered here: https://ga4gh.github.io/data-repository-service-schemas/preview/feature/issue-416-drs-upload/docs/

NB: The link to the rendered documentation is not updating and shows stale content, please refer to the files in the most recent commit. The main docs are linked below:

The corresponding issue is #417 but please also refer to the discussion for issue #416, which this PR should be considered a continuation of.

@grsr grsr mentioned this pull request Nov 2, 2025
@grsr
Copy link
Collaborator Author

grsr commented Nov 4, 2025

I have made a flurry of updates including some changes to minor details of the spec, and added more docs on implementation considerations, I think this proposal is now fairly stable and I'd very much welcome any comments or feedback. I will present this proposal in the Cloud WS call on November 10th.

@grsr grsr changed the title add proposed DRS upload and delete specification and documentation DRS upload and delete optional extensions Nov 4, 2025
@grsr grsr marked this pull request as draft November 4, 2025 21:32
@grsr grsr self-assigned this Nov 5, 2025
@grsr grsr requested a review from briandoconnor November 5, 2025 23:33
@grsr grsr changed the title DRS upload and delete optional extensions OpyDRS upload and delete optional extensions Nov 9, 2025
@grsr grsr changed the title OpyDRS upload and delete optional extensions Optional DRS upload and delete extensions Nov 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants