What leaves your cluster
The indexer runs as a CronJob from a pinned graphify release (
0.9.103, verified deterministic: two runs of the same commit produce the same graph), as non-root with all capabilities dropped. The report is capped at 64 KiB and a graph at 32 MiB; five snapshots per repository are kept and older ones pruned.
Turn it on
In the Edge chart (changeguard-operator), set the repositories to index and enable the indexer:
POST /api/ingest/codegraph with the environment’s agent key, under the same enrollment boundary as every other ingest; a graph with no nodes or with id-less nodes is rejected (400) and never replaces a good snapshot.
The first graph appears after the first scheduled run. Until then the change record’s Code Graph panel says what would index it.
Where you use it
- A change record that names an indexed repository (matched by its
owner/name): the panel shows what is indexed (repository, snapshot, symbol and relation counts, when), a search box, matching symbols with keyboard-operable expansion, and each symbol’s direct relations with their files. Search is substring, not semantic. - Root-cause analysis: the graph is cited as the code behind the change; it never stands in for runtime or CI evidence.
- MCP clients:
changeguard_code_graph_searchandchangeguard_code_graph_nodeon the ChangeGuard MCP server.