Engineering problem
Turn bounded host and synthetic security telemetry into inspectable findings while keeping agent permissions separate from operator authority.
Requirements & constraints
Atomic event batches, explicit replay handling, bounded memory and storage, and an investigation path that never grants an agent host authority.
Architecture & technologies
Rust / Axum HTTP; SQLite WAL ledger; AEF1 varint event encoding; flate2 retained blocks; SHA-256 evidence hashes; journald collector. The replay uses an in-memory engine.
Security & trust boundaries
Operator authentication and CSRF protect console mutations. Task-bound grants have resource, action, lifetime and use-count limits. Ingest identities cannot impersonate trusted journal collectors.
Original engineering
Repository history records charlesderek implementing the SIEM engine, normalized event codec, durable admission and console. Scope is this independently implemented subsystem; dependencies retain their own authorship.
Working implementation
Batch validation, idempotency fencing, five detection rules, evidence-backed findings, proposal review, bounded retention, scoped capabilities, and an operational console are present in source.
Experiments & missing capabilities
Datacenter orchestration and research screens do not establish production orchestration. No production scale or load test is claimed. Cross-platform host collection is not verified by this replay.
Failure modes & concurrency
Invalid batches and conflicting replays roll back; exhausted capability grants deny access. SQLite transactions serialize ledger changes. HTTP tests exercise simultaneous last-use consumption.
Testing & evidence
Baseline executed locally: 39 library tests and 9 HTTP integration tests passed on Linux. Fixed-clock Rust replay exports 12 synthetic events, correlated findings, and allow/deny capability decisions.
Observable improvement
This cycle replaces ambiguous source:key replay identities with an unambiguous separator and normalizes legacy retained identities on restore. Colon-containing source/key pairs previously collided. Regression and migration tests verify independent identities and retained replay protection.
Deployment model
Single local Rust process with SQLite and a local operator console. The public portfolio hosts captured fixture output; no production agent or operator endpoint is exposed.
Decisions & alternatives
A bounded single-ledger model makes transactional behavior inspectable. A distributed event bus would add availability and ordering tradeoffs that this demonstration does not validate.
Demonstration & limitations
Use the Evidence Lab below to inspect actual replay output. Data is synthetic; no host journald collection, privileged response, or production performance claim is part of this demonstration.