Files
cairnobs/hack
jcoffey-dev 200f801e2c Clear the Dependabot findings
Dependabot alerts were switched on for this repo today and reported 12 open
findings. Ten are fixed here; the other two are addressed below.

gRPC 1.83.0 -> 1.83.1, in all nine modules that require it. This is
GHSA-vp52-pcj8-j9qc / CVE-2026-84304, heap memory exhaustion via HTTP/2 DATA
frame fragmentation, affecting <= 1.83.0. It matters more than the version
delta suggests: ingest/ is a gRPC listener deliberately exposed to the internet
on :4317, so a remote OOM is reachable. mTLS narrows that to holders of a
client certificate, which is why this was not an emergency, but the fix is one
patch release away and there is no reason to carry it.

golang.org/x/oauth2 0.21.0 -> 0.27.0 in deploy/operator, an indirect
dependency (GHSA-6v2p-p543-phr9). enterprise/ was already past it at 0.36.0.

npm cookie 0.6.0 -> 0.7.2, via an overrides entry rather than a dependency
bump. @sveltejs/kit requires ^0.6.0 and still does at 2.70.3, the latest
release, so there is no version of kit that resolves this on its own -- an
override is the only route that does not involve waiting on upstream.

Three incidental changes came out of `go mod tidy` and are not mine:
genproto/googleapis/rpc moved forward as a transitive of the new grpc; pgx/v5
was reclassified from indirect to direct in enterprise/, which is simply
correct, since audit.go and cmd/enterprise-auth import it; and the proto
replace directive shuffled between require blocks at the same version.

The twelfth finding, lru (GHSA-rhfx-m35p-ff5j), is not fixed and is not
fixable here -- see the note in the pull request. It is CVSS 0, a Stacked
Borrows soundness issue in IterMut, and reaching a patched version means
tantivy 0.22 -> 0.26, which is a search engine migration rather than a
dependency bump.

Verified: all ten Go modules build, 40 test packages pass, the web app builds
and svelte-check reports 0 errors across 288 files.
2026-09-03 11:12:35 -07:00
..
2026-08-21 20:53:32 -07:00
2026-08-21 20:53:32 -07:00

hack

Local developer tooling that isn't part of any shipped component — scripts you run against your own machine/dev stack, not code that ends up in a container image (except dev-certs' output, which mounts into the ingest container).

Not one of the top-level directories in the original monorepo scaffold — added because dev-only mTLS cert generation didn't have a natural home in /deploy (real deployment manifests), /transport, or any other existing component. /hack is the conventional name for this in a lot of larger Go monorepos (Kubernetes among them).

  • dev-certs/ — generates a throwaway CA + server/client cert pair for local mTLS between the agent and ingest. See /docs/phase-0-runbook.md for when to run it.
  • windows-fixture/ — sends synthetic Windows Event Log-shaped records directly to ingest, bypassing the real Windows agent. Tests whether the pipeline handles Windows-shaped data; doesn't test the real EvtSubscribe/ETW integration, which needs actual Windows. See /docs/phase-1-runbook.md.
  • demo-simulator/ — the public demo's synthetic world: a fictional fleet whose agents check in, report CPU/memory/disk, and ship realistically shaped logs for eight services. Backfills a window of history, then keeps generating in real time. Distinct from benchmark-fixture/ (volume, for the Phase 2 latency benchmark) and windows-fixture/ (correctness, for the Windows ingest path).
  • check-web-routes.sh — asserts web/nginx.conf's hand-maintained route allowlists still match web/src/routes. nginx.conf 404s unknown paths, so it has to name the routes that have no prerendered file to match (dynamic ones, and any route without prerender = true). Drift here breaks production only — dev and npm run preview never read nginx.conf — so this runs in CI, like check-tenant-boundary.sh.
  • demo-seed/ — the rest of the demo deployment: its reset script, dashboards, alert rules, and the systemd unit that runs demo-simulator.