Skip to content

feat(config): add built-in materialization adapters - #158

Merged
LimiNode merged 3 commits into
mainfrom
feat/config-built-in-materializers
Oct 12, 2026
Merged

LimiNode merged 3 commits into
mainfrom
feat/config-built-in-materializers

Conversation

@LimiNode

Copy link
Copy Markdown
Owner

Summary\n- add side-effect-free built-in configuration validation/materialization\n- apply defaults matching public file, unique-file, memory, MDBX, OTLP, and Prometheus Configs\n- validate nested OTLP/Prometheus format objects and reject unavailable/callback-only backends explicitly\n\n## Verification\n- configuration_contract_test\n- full C++11 Release CTest: 62/62 passed\n- git diff --check\n\nNo parser frontend, logger instantiation, or runtime side effects are introduced.

Add a parser-neutral built-in materializer that validates backend field schemas and applies defaults matching the public FileLogger, UniqueFileLogger, MemoryLogger, MdbxLogger, OTLP, and Prometheus configurations. Keep optional backends and callback-only payload exporters fail-closed, and preserve side-effect-free plan materialization with nested format validation.
Merge nested OTLP and Prometheus format defaults recursively, preserve user values, and reject unknown nested label fields. Rebase backend diagnostics to the document logger index and carry required callback bindings in materialized plans so payload backends remain data-only until instantiation.
Accept and validate PrometheusPayloadLogger emit_on_log and emit_on_wait fields, preserving explicit values while materializing the documented defaults. Document the relative diagnostic path contract for backend adapters.
@LimiNode
LimiNode merged commit 465d781 into main Oct 12, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant