config source / parsed config
Resolver output
~/.config/omop/config.toml
load_stack_config()
StackConfig
cross-references validated
Resolver(config)
Resolver
four independent lookups
resolve_connection(name)
ResolvedConnection
url
: str (plaintext)
safe_url
: str (redacted)
create_engine()
resolve_database(name)
ResolvedDatabase
connection
: ResolvedConnection
cdm_schema, vocab_schema, results_schema
schema_translate_map(), create_engine(role=...)
resolve_tool(name)
ResolvedToolConfig
extra
: dict (raw, untyped)
no validation against a package's own fields
resolve_package_config(cls)
cls instance
typed & validated against cls
PackageConfigBase.get_config() delegates here