Where: .env.example vs. src/config.ts.
What's wrong: .env.example is otherwise quite thorough (it documents
Stellar/HTTP/rate-limit/IP-whitelist/request-signing/APM/circuit-breaker/
logging/CSRF/secrets-management vars in detail), but several fields
config.ts actually resolves from the environment have no corresponding
entry:
TX_MAX_RETRIES: numEnv("TX_MAX_RETRIES", 4),
TX_RETRY_BASE_DELAY_MS: numEnv("TX_RETRY_BASE_DELAY_MS", 200),
TX_RETRY_MAX_DELAY_MS: numEnv("TX_RETRY_MAX_DELAY_MS", 10000),
DB_POOL_MIN: numEnv("DB_POOL_MIN", 2),
DB_POOL_MAX: numEnv("DB_POOL_MAX", 10),
DB_POOL_ACQUIRE_TIMEOUT_MS: numEnv("DB_POOL_ACQUIRE_TIMEOUT_MS", 5000),
DB_POOL_HEALTH_CHECK_INTERVAL_MS: numEnv("DB_POOL_HEALTH_CHECK_INTERVAL_MS", 30000),
CRON_TIMEZONE: optionalEnv("CRON_TIMEZONE", "UTC"),
CRON_FAILURE_THRESHOLD: floatEnv("CRON_FAILURE_THRESHOLD", 0.5),
SHUTDOWN_TIMEOUT_MS: numEnv("SHUTDOWN_TIMEOUT_MS", 30000),
None of TX_MAX_RETRIES, TX_RETRY_BASE_DELAY_MS, TX_RETRY_MAX_DELAY_MS,
DB_POOL_MIN, DB_POOL_MAX, DB_POOL_ACQUIRE_TIMEOUT_MS,
DB_POOL_HEALTH_CHECK_INTERVAL_MS, CRON_TIMEZONE, or
CRON_FAILURE_THRESHOLD/SHUTDOWN_TIMEOUT_MS appear in .env.example
(these are separate from the DB_HOST/DB_PORT/DB_NAME/DB_USER/
DB_PASSWORD knexfile.ts variables already filed separately — these are
config.ts-resolved pool-sizing knobs for the Stellar RPC connection
pool in lib/db-pool.ts, not the Postgres migration connection). An
operator tuning transaction retry behavior, RPC pool sizing, cron
timezone, or graceful-shutdown timeout has no documented starting point or
default value visible without reading config.ts source directly.
Suggested fix: add these to .env.example with their real defaults,
matching the documentation style already used for every other section.
Where:
.env.examplevs.src/config.ts.What's wrong:
.env.exampleis otherwise quite thorough (it documentsStellar/HTTP/rate-limit/IP-whitelist/request-signing/APM/circuit-breaker/
logging/CSRF/secrets-management vars in detail), but several fields
config.tsactually resolves from the environment have no correspondingentry:
None of
TX_MAX_RETRIES,TX_RETRY_BASE_DELAY_MS,TX_RETRY_MAX_DELAY_MS,DB_POOL_MIN,DB_POOL_MAX,DB_POOL_ACQUIRE_TIMEOUT_MS,DB_POOL_HEALTH_CHECK_INTERVAL_MS,CRON_TIMEZONE, orCRON_FAILURE_THRESHOLD/SHUTDOWN_TIMEOUT_MSappear in.env.example(these are separate from the
DB_HOST/DB_PORT/DB_NAME/DB_USER/DB_PASSWORDknexfile.ts variables already filed separately — these areconfig.ts-resolved pool-sizing knobs for the Stellar RPC connectionpool in
lib/db-pool.ts, not the Postgres migration connection). Anoperator tuning transaction retry behavior, RPC pool sizing, cron
timezone, or graceful-shutdown timeout has no documented starting point or
default value visible without reading
config.tssource directly.Suggested fix: add these to
.env.examplewith their real defaults,matching the documentation style already used for every other section.