Introduction
Cbox SIEM for Laravel
Cbox SIEM for Laravel is the delivery engine that ships normalized security events to real SIEMs — Splunk HEC, Elastic (ECS), Graylog (GELF), ArcSight/syslog (CEF), or any HTTP JSON collector — durably and safely.
It is the Laravel wrapper over the framework-agnostic
cboxdk/siem core. The two tiers split cleanly:
The two-tier story
cboxdk/siem(core) owns the shape of the data: the normalizedSiemEventvalue object and the pure, deterministic formatters that turn one event into the exact bytes each SIEM ingests. It is zero-dependency and does no I/O — it never dials a network or holds a secret.cboxdk/laravel-siem(this package) owns delivery: a transactional outbox, a queued pump that batches and ships, SSRF-guarded HTTP egress, encrypted destination secrets, per-field PII redaction, retry/backoff/dead-letter, and a per-stream circuit breaker.
A third tier consumes this one: an audit binding (in
cboxdk/laravel-id) writes an audit record
and an outbox row in the same transaction, so its audit trail streams to a
customer's SIEM at-least-once. That binding is not part of this package.
Mental model
your app ──emit──▶ StreamDispatcher ──insert (in your txn)──▶ outbox (stream_deliveries)
│
queued PumpStreamDeliveries (per stream)
│
redact ─▶ core formatter ─▶ HttpStreamSink ─▶ your SIEM
(SSRF-guarded, TLS-on, batched)
Delivery is deny-by-default: with no enabled LogStream, nothing is written
and nothing is sent. Delivery is at-least-once and unordered — see
outbox and semantics.
Sections
- Quickstart — configure a stream and deliver in one read.
- Requirements — PHP, Laravel, and dependency versions.
- Core concepts — the delivery engine and its semantics.
- Cookbook — stream to Splunk, stream to Elastic.
- Extension points — custom sinks and destinations.
- Security — egress/SSRF, secrets, and redaction.
Where things live
This package documents only its own delivery layer. The event model, the
formatters, and their escaping/threat model are documented in
cboxdk/siem.