Ingest packages
Submit manifests for validation and asynchronous jobs; examples use synthetic fileRefs, not actual uploads.
Request schema from OpenAPI
| Field | Type | Required | Constraints | Technical definition |
|---|---|---|---|---|
sourceRef | string | Yes | {"minLength": 1, "maxLength": 128} | Synthetic source identifier; custody reference in a real contract. |
schemaVersion | string | Yes | {"minLength": 1} | Metadata schema version agreed for admission. |
manifest | array | Yes | {"minItems": 1} | File references and expected SHA-256 values; source bytes are not uploaded by the website. |
Read the operation and next actions
Errors and next actions
A consistent error envelope guides recovery without disclosing sensitive data.
Read detailsReliability, concurrency and recovery
Retry design follows the side effect rather than repeating every request blindly.
Read detailsAPI Explorer — local simulator
Explore requests/responses and failure scenarios using synthetic data; no backend connection.
Read detailsInput, scopes and processing
POST /v1/ingest-packages · scope ingest:write. Tenant/project and correlation contexts are required. POST/PATCH use Idempotency-Key; examples/schemas below are proposed contracts.
States and outputs
RECEIVED → VALIDATING → ACCEPTED / QUARANTINED. Accepted ingest does not imply declaration.
Exceptions and controls
Missing manifests or invalid checksums/schemas return 422; key reuse with changed bodies returns 409.
HTTP example — proposed contract
Request
POST https://records.example.invalid/v1/ingest-packages HTTP/1.1
Authorization: Bearer <example-token>
X-Tenant-Id: synthetic-tenant-001
X-Project-Id: synthetic-project-001
X-Correlation-Id: synthetic-correlation-001
Idempotency-Key: synthetic-key-001
Content-Type: application/json
{
"sourceRef": "synthetic-source-001",
"schemaVersion": "1.0",
"manifest": [
{
"fileRef": "synthetic-file-001",
"sha256": "0000000000000000000000000000000000000000000000000000000000000000"
}
]
}Response · 202
{
"jobId": "synthetic-job-001",
"status": "VALIDATING",
"packageId": "synthetic-package-001"
}Required fields and shared controls
| Item | Proposed rule |
|---|---|
| scope | ingest:write |
| required | sourceRef, schemaVersion, manifest |
| tenant / project | Token and context must match; headers alone are insufficient. |
| idempotency | POST/PATCH: same key/body returns original result; changed body returns 409; confirm retention window. |
| error | code, message, requestId, correlationId, retryable, details; no sensitive data. |
Continue the workflow
Two journeys, one records lifecycle
Connect paper and born-digital records through persistent identifiers, policies and evidence.
Read detailsIntegration quickstart
Exercise ingest → job tracking → registration → verification with synthetic data.
Read detailsIntegrity, provenance and evidence
Each evidence type answers a different question; hashes, timestamps and approvals are not interchangeable.
Read detailsStart with a verifiable scope.
Agree record classes, quality criteria, permissions and evidence before scaling.
Plan assessment