Declaration Storage Adapter
API Contract
REST
/api/v1/declaration-storage
6 endpoints
GET
/api/v1/declaration-storage/api/v1/declaration-storage
List stored declaration objects for an organisation
Public
Response Example
{
"data": [
{
"org_id": "org_812",
"declaration_id": "decl_88A1",
"storage_key": "org_812/declarations/decl_88A1.enc",
"size_bytes": 4096,
"uploaded_at": "2026-03-21T09:56:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 9
}
}
GET
/api/v1/declaration-storage/api/v1/declaration-storage/:org_id/:declaration_id
Download the encrypted declaration blob
Public
Response Example
{
"org_id": "org_812",
"declaration_id": "decl_88A1",
"encrypted_blob": "AQIDAHiZ...base64encoded...==",
"size_bytes": 4096,
"downloaded_at": "2026-03-26T09:10:00Z"
}
POST
/api/v1/declaration-storage/api/v1/declaration-storage
Upload an encrypted declaration blob to storage
Public
Request Example
{
"org_id": "org_812",
"declaration_id": "decl_88A1",
"encrypted_blob": "AQIDAHiZ...base64encoded...=="
}
Response Example
{
"org_id": "org_812",
"declaration_id": "decl_88A1",
"storage_key": "org_812/declarations/decl_88A1.enc",
"size_bytes": 4096,
"uploaded_at": "2026-03-26T09:00:00Z"
}
PUT
/api/v1/declaration-storage/api/v1/declaration-storage/:org_id/:declaration_id
Replace stored encrypted blob (e.g. after key rotation)
Public
Request Example
{
"encrypted_blob": "BRJDEXkZ...re-encrypted...=="
}
Response Example
{
"org_id": "org_812",
"declaration_id": "decl_88A1",
"storage_key": "org_812/declarations/decl_88A1.enc",
"size_bytes": 4112,
"updated_at": "2026-03-26T10:00:00Z"
}
DELETE
/api/v1/declaration-storage/api/v1/declaration-storage/:org_id/:declaration_id
Permanently delete a declaration blob from storage
Public
Response Example
{
"org_id": "org_812",
"declaration_id": "decl_88A1",
"deleted": true,
"deleted_at": "2026-03-26T11:00:00Z"
}
POST
/api/v1/declaration-storage/api/v1/declaration-storage/:org_id/:declaration_id/signed-url
Generate a time-limited pre-signed URL for direct declaration access
Public
Request Example
{
"expires_in_seconds": 900
}
Response Example
{
"org_id": "org_812",
"declaration_id": "decl_88A1",
"signed_url": "https://storage.example.com/org_812/declarations/decl_88A1.enc?token=eyJ...&expires=1743082800",
"expires_at": "2026-03-26T09:15:00Z"
}