Repository navigation
Conversation
Bccorb
force-pushed
the
docs/stream-audit-events-siem-guide
branch
from
November 8, 2026 02:31
450802f to
2e485fd
Compare
Covers how audit sinks deliver (own cursor, retry forever, at least once, retention held by every sink until it is deleted), OTLP and syslog settings, setup through the console, CLI and admin API, recipes through an OpenTelemetry Collector to Splunk, Elastic and Datadog and syslog to rsyslog, the event field reference for the export line, OTLP records and syslog messages, and a hash chain verifier proven against a real export and the matching OTLP and syslog records. Closes #155
Bccorb
force-pushed
the
docs/login-hooks-custom-claims-guide
branch
from
November 8, 2026 02:46
a5d8f98 to
3b213f4
Compare
Bccorb
force-pushed
the
docs/stream-audit-events-siem-guide
branch
from
November 8, 2026 02:46
2e485fd to
5d7f5f5
Compare
v0.23.0 refuses syslog sinks until their records carry the registered structured data ID (seamless-auth-api#586).
This was referenced Nov 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #155. Adds
operate/stream-audit-events-siem.mdx: audit sinks over OTLP and syslog, Collector recipes, the event field reference, and verifying the hash chain from what the SIEM holds.Merge with the auth API v0.23.0 release, not before. Audit sinks need API v0.23.0, which is held (fells-code/seamless-auth-api#566). The page opens with a caution, and its versions table marks the console page (fells-code/seamless-auth-admin-dashboard#343) and CLI commands (fells-code/seamless-cli#359) as unreleased. The export and integrity check it also uses are released.
Stacked on #166 (base
docs/login-hooks-custom-claims-guide), which is stacked on #165. Merge in that order. This one adds the webhooks guide's links to the new page.What it covers
seq), start after the newest event or replay withstartAfterSeq, credentials only as*_AUDIT_SINK_SECRETenv var names, and retention held by every sink, disabled ones included, until it is deleted (Brandon's decision of 2026-11-07).debugexporter to check arrival, thensplunk_hec,elasticsearchanddatadog, and rsyslogimtcpwith TLS for syslog.seamless-auth-events/1line (meanings fromAuthEventSchema), the OTLP record and attributes, and each syslog message part.seamless@<enterprise number>with a caution that it changes before release, never the RFC 5612 documentation number the branch uses as a placeholder.payload(onlypayloadis hashed, so a SIEM copy with an edited field would otherwise pass). It tolerates repeats, since delivery is at least once. A note on what a pass proves and how to compare withGET /admin/auth-events/integrity.understand/security.mdxmentions sinks, marked as v0.23.0 and unreleased.How the script was proven
On
origin/feat/audit-sinks, a temporary spec (not committed) ran against its own Postgres 18 container: it created an OTLP sink and a syslog sink pointed at local listeners, wrote three audit events (one with a non-ASCII user agent, onelogin_suspicious), delivered both sinks and ran the export. The script passes on the export, on the three lines taken from the OTLP bodies, and on the three taken from the octet-framed syslog messages, and with a duplicated line and a test record mixed in. It fails on a changed readable field (fields differ from payload), a changed payload (hash_mismatch), a dropped line (sequence_gap) and a wrong anchor. The export is in the page as the sample. The container and spec were removed afterwards.Vendor and protocol facts, each checked on 2026-11-07
/v1/logs, JSON over HTTP: https://github.com/open-telemetry/opentelemetry-collector/blob/main/receiver/otlpreceiver/README.mdcert_file,key_file): https://github.com/open-telemetry/opentelemetry-collector/blob/main/config/configtls/README.mddebugexporter andverbosity: https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/debugexporter/README.mdsplunk_hecexporter (token,endpoint,source,sourcetype,index, logs beta): https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/splunkhecexporter/README.mdelasticsearchexporter (endpoint/endpoints/cloudid,api_key,logs_index, logs beta): https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/elasticsearchexporter/README.mddatadogexporter (api.key, logs beta): https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/README.md, andapi.sitedefaulting todatadoghq.com: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/datadogexporter/examples/collector.yamlgtls,StreamDriver.Mode="1",Authmode="anon", port 6514): https://docs.rsyslog.com/doc/tutorials/tls_cert_server.html, andimtcpparameters: https://docs.rsyslog.com/doc/configuration/modules/imtcp.htmlFor review
datadogexporter. Datadog's own page now leads with the Collector's OTLP HTTP exporter tohttps://otlp.<site>; the page links it but does not give that config, because the exporter name there (otlp_http) differs from the one I know (otlphttp) and I could not settle which Collector versions accept which.Testing
npm run typecheck: 0 errors, 0 warnings, 0 hints.npm run lint: exit 0.npm run build: 77 pages built. The pre-commit hook ran the build again.migrate-from-auth0andsecurityresolves indist. The page is indist/llms.txtand the sitemap.npm run check:matrix, any real SIEM or Collector, and nothing against a released API (none can be until v0.23.0).