Architecture session: queue topology, log schema, REC templates, config refinements

- Rename env.toml to env_{dev,qa,prod}.toml for self-documentation; enforce via gitignore
- Config loader selects env file via BEDS_ENV environment variable, defaults to dev
- Set wbid to "ms" in beds.toml
- Define queue topology: rel/rec .read .write .obj, log, adm, mig
- Define log event schema: compound event_id (node.env.guid), parent_id, depth,
  level/level_val, resource, service, env, node, file, method, line, trace, message, created
- Add example_rec.toml — canonical self-documenting REC template for future developers
- Add mst_logger_rec.toml — logger collection template derived from log event schema

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-02 17:07:18 -07:00
parent 850993edb1
commit 8a89fe3403
5 changed files with 711 additions and 3 deletions

View File

@@ -10,9 +10,12 @@ pub enum ConfigError {
}
pub fn load() -> Result<BedsConfig, ConfigError> {
let env = std::env::var("BEDS_ENV").unwrap_or_else(|_| "dev".to_string());
let env_file = format!("config/env_{}.toml", env);
let cfg = Config::builder()
.add_source(File::new("config/beds.toml", FileFormat::Toml))
.add_source(File::new("config/env.toml", FileFormat::Toml).required(false))
.add_source(File::new(&env_file, FileFormat::Toml).required(false))
.build()?;
Ok(cfg.try_deserialize()?)