refactor: move data_dir override from env var to [server] TOML field
Reverts the NUMA_DATA_DIR env var added in the previous commit and replaces it with a [server] data_dir TOML field. Numa already has a well-developed config system; adding a parallel env-var mechanism for a single knob was wrong. The principle: TOML is for application behavior configuration. Env vars are for bootstrap values (HOME, SUDO_USER to discover paths before config loads) and standard ecosystem conventions (RUST_LOG). data_dir is neither — it's an app knob, so it belongs in the TOML. Changes: - lib.rs::data_dir() reverts to the platform-specific fallback only - config.rs adds `data_dir: Option<PathBuf>` to ServerConfig - main.rs resolves config.server.data_dir with fallback to numa::data_dir() and passes it to build_tls_config, then stores the resolved path on ctx.data_dir for downstream consumers - tls.rs::build_tls_config takes `data_dir: &Path` as an explicit parameter instead of calling crate::data_dir() behind the caller's back. regenerate_tls and dot.rs self_signed_tls now pass &ctx.data_dir, honoring whatever path the config resolved to - tests/integration.sh Suite 6 uses `data_dir = "$NUMA_DATA"` in its test TOML instead of the NUMA_DATA_DIR env var prefix - numa.toml gains a commented-out data_dir example No behavior change for existing production deployments (the default path is unchanged). Test harness is now fully config-driven, and containerized deploys can override data_dir via mount+config without needing env var injection. 127/127 unit tests pass, Suite 6 passes end-to-end. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -542,8 +542,9 @@ else
|
||||
PROXY_HTTPS_PORT=8443
|
||||
NUMA_DATA=/tmp/numa-integration-data
|
||||
|
||||
# Fresh data dir so we generate a fresh CA for this suite — NUMA_DATA_DIR
|
||||
# env var lets numa write under $TMPDIR instead of /usr/local/var/numa.
|
||||
# Fresh data dir so we generate a fresh CA for this suite. Path is set
|
||||
# via [server] data_dir in the TOML below, not an env var — numa treats
|
||||
# its config file as the single source of truth for all knobs.
|
||||
rm -rf "$NUMA_DATA"
|
||||
mkdir -p "$NUMA_DATA"
|
||||
|
||||
@@ -551,6 +552,7 @@ else
|
||||
[server]
|
||||
bind_addr = "127.0.0.1:$PORT"
|
||||
api_port = $API_PORT
|
||||
data_dir = "$NUMA_DATA"
|
||||
|
||||
[upstream]
|
||||
mode = "forward"
|
||||
@@ -582,7 +584,7 @@ value = "10.0.0.1"
|
||||
ttl = 60
|
||||
CONF
|
||||
|
||||
NUMA_DATA_DIR="$NUMA_DATA" RUST_LOG=info "$BINARY" "$CONFIG" > "$LOG" 2>&1 &
|
||||
RUST_LOG=info "$BINARY" "$CONFIG" > "$LOG" 2>&1 &
|
||||
NUMA_PID=$!
|
||||
sleep 4
|
||||
|
||||
|
||||
Reference in New Issue
Block a user