Every input. Every source. Every data hash.
Record the exact inputs an agent consumed before making a decision: Salesforce records, PagerDuty alerts, Slack messages, database queries. Each input captures source, source type, query, summary, and a SHA-256 data hash for integrity verification — without storing the sensitive data itself.
POST /api/decision-traces
{
"traceId": "tr_abc123",
"action": "crm.update",
"scope": "crm:write",
"decision": "allowed",
"intent": "Update customer status based on support ticket",
"inputs": [
{
"source": "salesforce",
"sourceType": "crm",
"query": "GET /contacts/C-1234",
"summary": "Customer record with open ticket",
"dataHash": "sha256:a1b2c3..."
},
{
"source": "pagerduty",
"sourceType": "incident",
"query": "GET /incidents/INC-567",
"summary": "P2 incident, 4h old",
"dataHash": "sha256:d4e5f6..."
}
],
"rationale": "Customer has open P2 incident requiring status update"
}