grith.aidocs

Audit

Browse, export, and aggregate the audit log over REST.

The audit log over REST. Same data as grith audit.

MethodPathSummaryFlags
GET/auditList audit events (paginated).
GET/audit/exportExport audit events as JSON or CSV.
GET/audit/exfil-statsAggregate exfiltration analytics over the recent window.
GET/audit/{id}Fetch one audit record.
POST/ipc/audit/ingestInternal IPC: ingest a batch of audit records.
IPC

Query parameters (list)

ParamTypeDefaultWhat
limitint20Page size (max 100).
cursorstringPagination cursor from a previous response.
sessionuuidFilter to one session.
sinceISO 8601 / durationEarliest event time (e.g. 1h, 2026-05-13T00:00:00Z).
decisionallow|queue|denyFilter by decision.

Response shape

{
  "items": [
    {
      "id": "uuid-...",
      "ts": "2026-05-14T09:14:23Z",
      "session": "abc12345-...",
      "operation": "file_read",
      "target": "/home/you/.ssh/config",
      "decision": "queue",
      "resolved": "deny",
      "composite_score": 4.2,
      "filters": [...],
      "profile": "claude-code",
      "pid": 17421,
      "command": "claude"
    }
  ],
  "next_cursor": "opaque-..."
}

Export

GET /audit/export?format=json
GET /audit/export?format=csv

Streams the full record set (subject to limit, default 1000) in the requested format. Use for ETL into a SIEM or data warehouse.

Exfil stats

GET /audit/exfil-stats

Aggregate analytics over the recent window. Shape:

{
  "window_size": 500,
  "top_destinations": [
    { "host": "api.example.com", "count": 12, "decision_split": { "allow": 10, "deny": 2 } }
  ],
  "canary_fires": [
    { "canary_id": "ca-7f1...", "label": "aws-prod-decoy", "ts": "..." }
  ],
  "top_sessions_by_queue_events": [...]
}

See also

Last updated: 2026-05-14Edit this page on GitHub →
© 2026 grith. All rights reserved.