Manifest API
Alpha
DSAR is currently in alpha. APIs, package surfaces, configuration, and documentation may change as the project evolves.
GET /requests/:id/manifest
Get the fulfilment manifest for a request.
Response (200):
POST /requests/:id/manifest/validate
Record the manifest review decision for the latest fulfilment manifest attached to the request.
Request body:
action(string, required):"approved"|"rejected"
This matches the current backend validation body schema used by
POST /requests/:id/manifest/validate.
Response (202):
POST /requests/:id/manifest/artifact/upload
Upload a binary file as a fulfilment manifest artifact. The file is persisted to the configured storage adapter and a record is added to the manifest's artifacts array.
Request headers:
x-artifact-filename(string, required): URL-encoded filenamex-artifact-content-type(string, required): MIME type of the filex-artifact-title(string, optional): Human-readable title (defaults to filename)x-artifact-type(string, optional): Artifact category —profile_data,account_data,support_tickets,audit_logs, orother(defaults toother)
Request body: Raw binary file content
Response (202):
Error codes:
MANIFEST_ARTIFACT_UPLOAD_FAILED(DSAR-BE-1206): Storage not configured, empty body, or storage write failure
GET /requests/:id/manifest/artifact/download
Download a manifest artifact file from storage.
Query parameters:
artifactId(string, required): The manifest artifact identifier returned by upload or replace operations
Response (200): Binary file content with appropriate Content-Type and Content-Disposition headers.
Error codes:
MANIFEST_ARTIFACT_DOWNLOAD_FAILED(DSAR-BE-1207): Key not found, key doesn't match request, or storage read failure
PUT /requests/:id/manifest/artifact/:artifactId/replace
Replace an existing manifest artifact in-place. Used for the redaction workflow: download an artifact, redact sensitive data locally, and re-upload the modified version.
Request headers:
x-artifact-filename(string, required): URL-encoded filenamex-artifact-content-type(string, required): MIME type of the replacement file
Request body: Raw binary file content
Response (202):
Error codes:
MANIFEST_ARTIFACT_REPLACE_FAILED(DSAR-BE-1208): Artifact ID not found in manifest, empty body, or storage overwrite failure