Developers
Send events in. Verify the record.
Illustrative examples of the API, CLI, and CI action. The interface is subject to change during private preview.
Illustrative — interface subject to change
Event ingest
Send a provenance event for a change. Events are appended to your workspace's ledger and assigned a tier based on how they were authenticated.
curl -X POST https://api.example.invalid/v1/events \
-H "Authorization: Bearer $ATTESTA_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "ai-session",
"repo": "payments-api",
"change": "PR-2041",
"tools": ["Code assistant"],
"occurred_at": "2026-09-02T05:14:00Z"
}'CI attestation
Add one step to your pipeline. It signs an event using the job's workload identity, so no long-lived secret is stored in CI.
- name: Attest change provenance
uses: zicodera/attesta-action@v1
with:
tier: attestedWebhooks
Subscribe to policy results and new evidence. Deliveries are signed so you can verify the sender.
{
"id": "evt_0001",
"type": "policy.failed",
"policy": "payments-human-review",
"change": "PR-2043",
"repo": "payments-api",
"mode": "warn"
}Verification
Anyone holding an evidence pack can recompute the hash chain. The rule is the same one shown on the Platform page.
attesta verify ./evidence-pack.json
# recomputes hash_n = SHA-256(hash_{n-1} + canonicalJSON(payload_n))
# exits non-zero and prints the first broken event on failureAuthentication model
Scoped API keys
Keys are limited to a workspace and to specific actions, such as ingest-only or read-only.
CI workload identity
CI jobs authenticate with short-lived tokens from the CI provider, so no long-lived secret is stored in pipelines.
Read-only git app
The git app requests read-only metadata scopes and cannot push code.