BETA In open beta. Install live. Lock $5/mo for your first 12 months. See pricing →

Hydrate Enterprise audit log

Hydrate Enterprise writes an append-only audit stream from the self-hosted Sync Hub. The log is designed for security review, incident response, and change accountability inside the customer’s perimeter.

The Sync Hub is the system of record. Exports to a SIEM are push-style copies of the same event stream.

Schema

Example event:

{
  "event_id": "01JZ6Y8T9G9P0J6EQW8X8M5N7D",
  "timestamp_utc": "2026-05-17T08:42:13.481Z",
  "actor_user_id": "usr_01JZ6Y73D6P2C3Q9P4K6V1V2AB",
  "actor_email": "[email protected]",
  "actor_workstation_id": "wkstn-mbp-145",
  "event_type": "canon.pin",
  "target_kind": "canon",
  "target_id": "canon_01JZ6Y7Y1NT27Z19WV9E3YJ5Y7",
  "project_slug": "payments-api",
  "before": {
    "pinned": false
  },
  "after": {
    "pinned": true
  },
  "ip_address": "10.44.18.23",
  "user_agent": "hydrate/1.0.0 darwin-arm64",
  "sync_hub_node_id": "hub-prod-eu-west-1a",
  "hmac_signature": "hmac-sha256-v1:2026-05-17:5b982a0d7f7a0c7b6a0a1d6d7d3f8c8c0b6a9d5c8d8e2b9c0f1a2b3c4d5e6f7a"
}
FieldDescription
event_idULID generated by the Sync Hub for this audit event.
timestamp_utcISO-8601 UTC timestamp written by the Sync Hub.
actor_user_idStable Hydrate user ID for the authenticated actor.
actor_emailHuman-readable actor email from SSO or local enterprise identity.
actor_workstation_idCustomer-controlled workstation identifier reported by the Hydrate client.
event_typeEvent enum value from the catalogue below.
target_kindLogical object type: canon, fact, project, or sync.
target_idStable ID of the target object, where applicable.
project_slugCustomer project namespace affected by the event.
beforeJSON snapshot of relevant fields before the change, or null for create/read events.
afterJSON snapshot of relevant fields after the change, or null for delete/read events.
ip_addressSource IP as seen by the Sync Hub or trusted reverse proxy.
user_agentHydrate client or administrative client identifier.
sync_hub_node_idCustomer-assigned node ID that wrote the event.
hmac_signatureVersioned HMAC-SHA256 signature over the canonical event payload.

Event-type catalogue

Canon events

Event typeWhen it firesWhat it recordsWho can see it
canon.addA user creates a new canon item.Actor, project, canon ID, content metadata, and initial state.Project admins, security auditors, and users with project audit permission.
canon.removeA user removes a canon item.Actor, project, canon ID, and removed state.Project admins, security auditors, and users with project audit permission.
canon.editA user edits canon text or metadata.Actor, project, canon ID, before and after snapshots.Project admins, security auditors, and users with project audit permission.
canon.pinA user pins canon as high-priority context.Actor, project, canon ID, and pinned state transition.Project admins, security auditors, and users with project audit permission.
canon.unpinA user removes pinned status from canon.Actor, project, canon ID, and pinned state transition.Project admins, security auditors, and users with project audit permission.

Fact events

Event typeWhen it firesWhat it recordsWho can see it
fact.addA fact is created by extraction, import, or manual entry.Actor or system source, project, fact ID, category, and initial text metadata.Project admins, security auditors, and users with project audit permission.
fact.removeA fact is deleted or forgotten.Actor, project, fact ID, and removed state.Project admins, security auditors, and users with project audit permission.
fact.editA fact is manually corrected or reclassified.Actor, project, fact ID, before and after snapshots.Project admins, security auditors, and users with project audit permission.
fact.mergeTwo or more facts are merged into one canonical fact.Actor, project, source fact IDs, resulting fact ID, and merge rationale when provided.Project admins, security auditors, and users with project audit permission.
fact.exportA user exports facts from a project.Actor, project, export format, row count, and destination class.Project admins, security auditors, and users with project audit permission.

Project events

Event typeWhen it firesWhat it recordsWho can see it
project.createAn admin creates a project namespace.Actor, project slug, project ID, and initial policy settings.Organization admins and security auditors.
project.deleteAn admin deletes or archives a project.Actor, project slug, project ID, and deletion mode.Organization admins and security auditors.
project.inviteAn admin invites a user or group to a project.Actor, invited identity, role, project slug, and invite state.Organization admins, project admins, and security auditors.
project.revokeAn admin revokes project access.Actor, removed identity, previous role, and project slug.Organization admins, project admins, and security auditors.

Sync events

Event typeWhen it firesWhat it recordsWho can see it
sync.pushA workstation pushes local changes to the Sync Hub.Actor, workstation ID, project, object counts, and commit/checkpoint IDs.Project admins, security auditors, and the actor.
sync.pullA workstation pulls changes from the Sync Hub.Actor, workstation ID, project, object counts, and checkpoint IDs.Project admins, security auditors, and the actor.
sync.conflict_resolvedA user or policy resolves a sync conflict.Actor or policy, project, conflicting IDs, chosen value, and discarded value metadata.Project admins, security auditors, and affected contributors.

Authentication events

Event typeWhen it firesWhat it recordsWho can see it
auth.loginA user successfully authenticates to the Sync Hub.Actor, SSO subject, IP, user agent, and auth method.Organization admins and security auditors.
auth.logoutA user explicitly logs out or a session is ended.Actor, session ID, IP, and user agent.Organization admins and security auditors.
auth.token_issuedA Sync Hub token or workstation token is issued.Actor, token class, workstation ID when applicable, and expiry.Organization admins and security auditors.
auth.token_revokedA token is revoked by a user, admin, or policy.Actor, token class, revocation reason, and previous expiry.Organization admins and security auditors.

Administrative events

Event typeWhen it firesWhat it recordsWho can see it
admin.config_changeAn admin changes Sync Hub configuration.Actor, changed keys, previous values when safe, and new values when safe.Organization admins and security auditors.
admin.retention_policy_changeAn admin changes audit or data retention.Actor, project, previous retention period, and new retention period.Organization admins and security auditors.
admin.user_role_changeAn admin changes a user’s organization or project role.Actor, target user, previous role, new role, and scope.Organization admins and security auditors.

Tamper-evidence

Each audit event is signed with HMAC-SHA256 using a per-day rotating key held by the Sync Hub. The signature covers a canonical JSON serialization of every field except hmac_signature.

The signature format is:

hmac-sha256-v1:<yyyy-mm-dd>:<hex signature>

The Sync Hub keeps active signing keys for the current day and verification keys for the retention window. A downstream SIEM can verify received events with the exported verification key material or by calling a customer-local verification endpoint. If an event is edited, reordered into an invalid chain, or replayed with a mismatched payload, verification fails.

Customers that need stronger evidence can enable chained signing, where each event includes the previous event’s signature in the HMAC input. Chained signing makes deletion or reordering detectable during batch export verification.

Retention

Default retention on the Sync Hub is 90 days.

Retention is configurable per project:

hydrate admin retention set <project> <days>

The Sync Hub enforces retention on its local audit database. SIEM export is push-style and may retain copies longer according to the customer’s SIEM policy.

Right-to-erasure requests under GDPR or CCPA purge actor PII fields (actor_email, SSO subject metadata, and workstation labels where they identify a person) and replace them with a tombstone marker. Hydrate preserves event_id, timestamp_utc, event_type, target_kind, target_id, project_slug, and non-identifying integrity metadata so the audit trail remains coherent.

Export formats

FormatUse caseIntegrity
syslog RFC 5424 over TLSSIEM ingestion for Splunk, Sentinel, QRadar, and syslog collectors.Event-level HMAC signature included as structured data.
JSON over HTTPS POSTCustomer-owned webhook ingestion.HMAC-signed request body plus per-event HMAC signatures.
Splunk HTTP Event CollectorDirect Splunk ingestion.Event body wrapped in Splunk event format with Hydrate fields preserved.
S3 batch dumpHourly archival export to customer object storage.AES-256-GCM encrypted archive delivered through a signed URL or customer bucket credentials.

What this is NOT

Hydrate audit logging is not a real-time analytics surface. Queries hit the Sync Hub’s audit database, not a streaming analytics pipeline.

Hydrate audit logging is not encrypted at rest by default on the Sync Hub. It relies on customer disk encryption such as LUKS, BitLocker, FileVault, or cloud-provider volume encryption unless --encrypt-at-rest is enabled. Enabling Sync Hub application-layer encryption at rest adds approximately 5-8% write latency.

Hydrate audit logging is not a SIEM replacement. It is the source event stream for Hydrate activity and should be paired with the customer’s existing SIEM, alerting, case management, and retention tooling.