Skip to content

Commit fd30cd9

Browse files
committed
docs(download): add DRS object endpoint to download.md
1 parent 7c7b319 commit fd30cd9

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

sda/cmd/download/download.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,56 @@ curl -H "Authorization: Bearer $token" \
304304
https://HOSTNAME/files/EGAF00000000001/content
305305
```
306306

307+
### DRS Object Endpoint
308+
309+
#### `GET /objects/{datasetId}/{filePath}`
310+
311+
Returns a minimal [GA4GH DRS 1.5](https://ga4gh.github.io/data-repository-service-schemas/preview/release/drs-1.5.0/docs/)
312+
`DrsObject` with a pre-resolved `access_url` pointing to the file content endpoint.
313+
This enables DRS-aware clients (e.g. htsget-rs) to resolve a dataset + file path
314+
to a download URL without knowing the internal file ID.
315+
316+
The path is composite: everything before the first `/` is the dataset ID, everything
317+
after is the file path within the dataset.
318+
319+
- Error codes
320+
- `200` DRS object returned
321+
- `400` Malformed path (missing dataset or file component)
322+
- `401` Invalid or missing token
323+
- `403` Access denied or file does not exist
324+
325+
Example:
326+
327+
```bash
328+
curl -H "Authorization: Bearer $token" \
329+
https://HOSTNAME/objects/EGAD00000000001/samples/sample1.bam.c4gh
330+
```
331+
332+
Response:
333+
334+
```json
335+
{
336+
"id": "EGAF00000000001",
337+
"self_uri": "drs://HOSTNAME/EGAF00000000001",
338+
"size": 1048576,
339+
"created_time": "2026-01-15T10:30:00Z",
340+
"checksums": [
341+
{"checksum": "a1b2c3d4...", "type": "sha-256"}
342+
],
343+
"access_methods": [
344+
{
345+
"type": "https",
346+
"access_url": {
347+
"url": "https://HOSTNAME/files/EGAF00000000001/content"
348+
}
349+
}
350+
]
351+
}
352+
```
353+
354+
The `size` and `checksums` describe the encrypted blob served by `access_url`,
355+
per the DRS 1.5 specification.
356+
307357
### Error Format
308358

309359
All error responses use [RFC 9457 Problem Details](https://www.rfc-editor.org/rfc/rfc9457):

0 commit comments

Comments
 (0)