Do you log security events?
Yes, and there are two ways to get them out. Collector path: structured JSON to stdout (set LOG_FORMAT=json; default in production overlay), which Vector, Fluent Bit, OpenTelemetry Collector, or Datadog Agent picks up like any other workload. Direct path: bolt-api ships an authenticated forwarder with backends for Splunk HEC, Microsoft Sentinel via the HMAC-signed collector API, Microsoft Sentinel via a Data Collection Rule with AAD OAuth2 and automatic token refresh, and syslog over TCP. The direct forwarder is off by default and no shipped values file turns it on, so plan it as a deployment step. It sends best-effort with no retry buffer today, so if you need guaranteed delivery under a transient SIEM outage, put a collector in front. SIEM export guide is shared during pilot evaluation.
What events are logged?
Two different things travel under the word logging here, and the distinction is the whole answer. SEALED INTO THE MERKLE CHAIN: authorization decisions, retrieval access on every exit path, Aeira search on every exit path (denied, router-allowed and keyword-allowed alike), tool executions, model calls, agent decisions, admin policy changes, the security-relevant identity transitions (sign-in success and failure, sign-out, session delegation, delegated-session revocation, and session attach both accepted and refused), and the privileged key and identity operations (KMS rotation, crypto-shred, PII reveal, SCIM token issue and revoke). Failures are sealed alongside successes, deliberately: a chain that shows only successes cannot tell nobody-tried from somebody-tried-a-thousand-times, and a refused session attach is the exact shape of a session-fixation attempt. Aeira search cannot serve a result it did not record: the audit sink is required to run a search at all, so the failure mode is a 503 rather than a silent unaudited answer. EXCLUDED ON PURPOSE, and pinned that way by tests so the decision cannot drift: OAuth access-token refresh, which grants no new authority (same user, same session, same already-consented scopes) and fires roughly hourly per active session, and the read-only SCIM token list. Sealing those would bury the transitions that do change authority. NOT SEALED TODAY, and a gap rather than a choice: the audit-seal operation itself, which still emits only a structured log line. Also unsealed: Aeira's catalog routes (browse, entity, graph, kinds), Bolt's connector-side search endpoints, and agent-run state transitions, which are written to a run-history table rather than the chain. Audit lines are tagged event_type=security for SIEM-side index separation.
Is the audit log tamper-evident?
Yes. Bolt-api maintains a Merkle-sealed audit chain in Postgres. Operators (or scheduled jobs) can call an admin endpoint to roll a date range into a signed Merkle root, and verify integrity via a corresponding verify endpoint. Recommended pattern: nightly seal plus export root to write-once storage (S3 Object Lock, Azure Immutable Blob, GCS Bucket Lock).
How long are logs retained?
Customer-owned retention via their SIEM or log archive. Recommended minimums by framework: SOC 2 CC7 1 year, HIPAA 164.312(b) 6 years, GDPR Art. 30 at least 1 year, SEC 17a-4 6 years (WORM), PCI-DSS 10.7 1 year with 3 months online.