Logical architecture
30 components across six planes, all in one repo.
The agentic plane never reaches into the storage plane directly. It calls the detection plane and a governed query API.
- CloudTrailraw JSON
- CollectorOCSF 1.3
- Kafkaper tenant
- DetectHELIQL → RW
- Classifier<5 ms ONNX
- LLM + MCPnovel only
- EnvelopeEd25519
- Workbenchanalyst
Plane 01 · control
Workbench plane
Where analysts work. Reads the same artifacts; keeps no second copy.
- WorkbenchNext.js 16 · Bun · Tailwind v4Queue, cases, hunt, Simulate and Load labs, and this site. Zustand, Better Auth.apps/workbench
- Control-plane APIRust · axum 0.8 · utoipaREST and WebSocket API for events, baselines, warm SQL and fired detections.crates/attest-control-plane
- ws-gatewayRust · tokioStreams an agent's reasoning trace to the case view as it runs.apps/ws-gateway
Plane 02 · data
Agentic plane
Agents decide and sign. They never open a database or a credential.
- OrchestratorRust · tokioHybrid loop: classify, escalate when novel, sign the result.crates/attest-orchestrator
- Triager classifierXGBoost · tract-onnxFeature extractor plus ONNX model in-process, under 5 ms, with SHAP-style attributions.crates/attest-onnx-runtime
- Calibration sidecarPython · uvIsotonic calibration and novelty parameters; training harness.ml/triager
- Inference routerAnthropic · OpenAI-compatibleOne LLM client for the escalation path: Claude, or a local model server.crates/attest-inference-router
- MCP gatewayRust · axumThe only door for agent tool calls. Inspects requests and results.crates/attest-mcp-gateway
- Policy engineRustPer-role tool allowlists, confidence floors, exfil caps, injection checks.crates/attest-policy-engine
- Shadow checkRustDeterministic second opinion before any auto-close.crates/attest-shadow-check
- Attestation + attest CLIed25519-dalek · SHA-256Signed, hash-chained envelopes; verify, replay and pin-check offline.crates/attest-attestation
- Hunter · Responder · CoordinatorAgentsplannedFurther agent roles. Policies exist; the agents are design only.
Plane 03 · data
Detection plane
Write a rule once; compile it to the stream or to a hunt.
- HELIQL compilerRust · pestDetection language compiled to RisingWave materialized views. Imports Sigma.crates/attest-heliql
- Detection runtimeRustDeploys compiled rules and publishes fired alerts to Kafka.crates/attest-detection-runtime
- 10 detectionsAWS · Okta · M365MITRE-mapped reference rules in the repo. AWS rules run live today.detections
Plane 04 · data
Storage plane
Open formats you own. Leave with your data in a day.
- Apache Iceberg + Parqueticeberg 0.9 · arrow 58Warm tier on MinIO locally, S3 in production.crates/attest-storage-iceberg
- ClickHouses3() over ParquetHunting queries over the same warm files, no ETL copy.crates/attest-storage-clickhouse
- Cold archiveS3 GlacierplannedSeven-year compliance retention.
Plane 05 · data
Streaming plane
Raw logs in, normalized OCSF on a bus within seconds.
- Edge collectorRust · axum 0.8CloudTrail JSON in, OCSF 1.3 out.crates/attest-collector
- Kafka / Redpandardkafka 0.36Event bus, one topic per source, partitioned by tenant.docker-compose.yml
- RisingWaveStreaming SQLRecent events and 30-day entity baselines as materialized views.infra/risingwave
- ArroyoStreaming SQLMulti-step sequences (login then S3 access) and Parquet ETL.infra/arroyo
- Okta · M365 · EDR collectorsOCSF 1.3plannedMore sources on the same normalizer.
Plane 06 · control
Control plane
Identity, config and infrastructure. Everything is in Git.
- Identity + sessionsBetter Auth · Postgres 18Analyst accounts and sessions; Alembic migrations.infra/db
- GitOpsGitHub Actions · DependabotDetections, agent definitions and pipelines are versioned and CI-tested..github
- InfrastructureDocker Compose · RailwayOne compose file locally, one Railway project in the cloud.infra/railway
- ObservabilityOpenTelemetry · Tempo · SentryTraces across Rust services; frontend errors with PII stripped.crates/attest-telemetry
- Enterprise identityOIDC · SCIMplannedSSO and provisioning via Okta, Entra or Auth0.
- Per-tenant keysBYOK · KMSplannedCustomer-held encryption keys per tenant.
- Terraform + HelmEKS · GKE · AKSplannedSame containers deployed into your cloud or an air-gapped site.
Path of a single ConsoleLogin
One event fans out to the hot tier, the warm lake and the detection runtime. If a rule fires, it ends as a signed envelope in the workbench.