Signal Forge
A polished observability explorer that pushes Trestle's SQLite backend through deterministic batch ingestion, typed telemetry and bounded server-side queries using only the public HTTP API.
What it proves
Repeatable scale tests
One command appends exactly 10k, 100k or 1m deterministic events in atomic 1,000-record transactions.
Public API only
The CLI and same-origin Node server use a scoped service credential. Neither opens SQLite nor imports Trestle internals.
Real query UX
The dashboard filters, sorts, paginates and inspects structured signals across services, hosts and deployments.
Run the example
git clone https://github.com/trestle-cv/dogfood-signal-forge
cd dogfood-signal-forge
# Start a disposable SQLite-backed Trestle instance first.
export TRESTLE_URL=http://127.0.0.1:17433
export TRESTLE_ADMIN_EMAIL=admin@example.test
export TRESTLE_ADMIN_PASSWORD='choose-a-real-password'
npm run bootstrap
npm run seed -- events 10000
npm startOpen http://127.0.0.1:4174. Increase the seed count to 100000 or 1000000 when you are ready to test sustained ingestion. The repository commits no generated data.
Architecture and authority
browser -> Signal Forge server -> Trestle HTTP API -> Trestle SQLite
CLI ---------------------------> Trestle HTTP APIThe browser sees only a narrow same-origin /api/ surface. Bootstrap creates five typed collections and saves a copy-once service credential with owner-only permissions. Large overview totals are materialized during ingestion because The dogfood run targets Trestle without aggregate queries, so large overview totals are materialized during ingestion.
Measured dogfood run
The initial exercise seeded 10,000, 100,000 and 1,000,000 events for 1.11 million total records. Signal Forge records elapsed time and throughput for each seed, while its status command verifies collection counts without bypassing Trestle's API boundary.