One file this export published, verified against the digest in the export row
const url = 'https://example.com/v1/entities/example/exports/example/artifacts/example?disposition=attachment';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/entities/example/exports/example/artifacts/example?disposition=attachment'Return one published journal file, the form of these books other tools can read.
The name is a key into the export’s immutable artifact list, not a path. A name the export did not record
is a 404 before any path is built from it, and the file is read only from under this entity’s configured
export root. It is re-hashed against the sha256 the row recorded before any byte is returned. That
digest is the claim that these bytes passed the pinned verifier, so a file that no longer matches is refused
rather than served with a warning (:mod:haddon.api.exported).
An export published elsewhere, for example by bin/haddon-export into an operator’s own directory, is
recorded here but its bytes are not served: they are not under the root this service serves from.
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The entity this path is relative to
The entity this path is relative to
Query Parameters
Section titled “Query Parameters”A journal is plain text, so both are honoured
A journal is plain text, so both are honoured
Responses
Section titled “Responses”One published journal file, re-hashed against what was recorded
Bad Request
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Unauthorized
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Forbidden
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Not Found
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Conflict
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Precondition Failed
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Unprocessable Content
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Internal Server Error
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}Service Unavailable
object
Example generated
{ "error": { "code": "example", "message": "example", "retryable": true, "details": [ {} ], "request_id": "example", "next_action": {} }}