pub fn load(config_dir: &Path) -> Result<LoadedConfig, Error>Expand description
Load a vane config directory.
Order of operations:
- If
<config_dir>/.envexists, rundotenvy::from_pathon it. Pre-existing OS env keys win — operators who set values via systemd /EnvironmentFile=/ docker-eflag override what’s in.env. A missing.envis not an error; many deployments rely entirely on OS-level env. - Scan
<config_dir>/rules/*.jsonviascan_rules_dir. - Read
VANE_*deployment constants intoEnv.
§Errors
<config_dir>/rules/does not exist or is not a directory (propagated fromscan_rules_dir).- Any
.jsonunderrules/fails to parse asRawRuleFile. - Any
VANE_*env var has an invalid value (non-integer, not"0"/"1"for booleans, malformedSocketAddr, etc.).
Not an error:
.envfile is missing.<config_dir>/config.jsonis missing or malformed (it is not parsed at this stage).