.env.example documents 22 variables. src/ reads 137, of which 17 are in that file — so 120 are not (the remaining 5 in the file are consumed by Auth.js and the AWS SDK rather than read directly).
Reproduce:
git grep -hoE 'process\.env\.[A-Z][A-Z0-9_]+' -- 'src/*' | sed 's/.*env\.//' | sort -u | wc -l
grep -oE '^#? *[A-Z][A-Z0-9_]+=' .env.example | tr -d '#= ' | sort -u | wc -l
The undocumented ones are mostly service URLs, Kafka topic names and ConfigMap keys that have working defaults derived from VSS_NAMESPACE — which is why nothing appears broken without them, and why the gap went unnoticed. src/lib/cluster-refs.ts resolves most of them in one place.
This matters more now the repository is public: README.md points at .env.example as the configuration reference, and someone deploying against a differently-named cluster has no list of what they can override.
A patch documenting one coherent group (Kafka topics, VST endpoints, alert-bridge, GCS/Firestore) is a good first contribution — no need to do all 120 at once.
.env.exampledocuments 22 variables.src/reads 137, of which 17 are in that file — so 120 are not (the remaining 5 in the file are consumed by Auth.js and the AWS SDK rather than read directly).Reproduce:
The undocumented ones are mostly service URLs, Kafka topic names and ConfigMap keys that have working defaults derived from
VSS_NAMESPACE— which is why nothing appears broken without them, and why the gap went unnoticed.src/lib/cluster-refs.tsresolves most of them in one place.This matters more now the repository is public:
README.mdpoints at.env.exampleas the configuration reference, and someone deploying against a differently-named cluster has no list of what they can override.A patch documenting one coherent group (Kafka topics, VST endpoints, alert-bridge, GCS/Firestore) is a good first contribution — no need to do all 120 at once.