Skip to main content

Event Types

Reference for chain-of-custody event types returned by GET /api/collections/{id}/events.

note

These are persisted chain-of-custody events, not Server-Sent Events. Each event records who did what, when, and the resulting collection state. They are returned newest-first as a JSON array.

Event Type Reference

The event_type field is one of the following (the ChainOfCustodyEventType enum):

Event TypeWhen
collection_createdA collection is created
credentials_validatedCredential validation completed
collection_startedWorker begins execution
collection_pausedCollection paused
collection_resumedCollection resumed / re-queued
collection_completedAll endpoints finished
data_collectedData/files collected from an endpoint
endpoint_skippedAn endpoint was skipped
analyst_assignedAn analyst was assigned
analyst_reviewedAn analyst reviewed the collection
analyst_signed_offAn analyst signed off
zip_createdDelivery ZIP created
sas_url_generatedDownload SAS URL generated
customer_notifiedCustomer notified (also used for download-info access)
collection_deliveredCollection delivered
collection_archivedCollection soft-deleted/archived
error_occurredAn error was recorded
credentials_revokedCredentials revoked
collection_cancelledCollection cancelled

Common Shape

Every event in the events array has the same envelope (see Timeline Events):

{
"id": "evt_001",
"event_type": "collection_created",
"actor_name": "Jane Smith",
"actor_type": "customer",
"timestamp": "2024-01-15T10:30:00Z",
"new_state": "pending",
"event_data": { "...": "event-specific payload" }
}

Representative event_data Payloads

The event_data object varies by event_type. Examples below are illustrative — exact keys depend on what the producing route recorded.

collection_created

{
"connector_id": "conn_slack001",
"credential_id": "cred_abc123",
"priority": "high",
"scope_config": { "...": "..." }
}

analyst_signed_off

{
"analyst_name": "John Doe",
"notes": "Verified all files.",
"checklist": {
"filesCollected": true,
"hashesVerified": true,
"apiLogsReviewed": true,
"chainComplete": true
},
"files_collected": 234
}

collection_archived

{
"action": "soft_delete",
"deleted_by_analyst_name": "John Doe",
"collection_snapshot": {
"status_at_deletion": "completed",
"case_reference": "CASE-2024-001"
}
}

Tracking Live Progress

There is no push channel for collection progress. To follow a running collection, poll GET /api/collections/{id} for the status and progress block, and read this timeline for the audit trail.