Add maintained consumer migration examples
This commit is contained in:
@@ -585,6 +585,24 @@ introduce typed secret references.
|
||||
Descriptors are reused by typed decoding, projection, and cloning so those operations
|
||||
cannot acquire different field bindings.
|
||||
|
||||
### Canonical module options
|
||||
|
||||
Applications with a known module catalog represent each configured item as an object
|
||||
with an explicit module identifier and an options mapping. Ordinary typed structs,
|
||||
including a small union of optional option fields, use the same strict binding above;
|
||||
application validation decides which fields and combinations apply to each module.
|
||||
String shorthand, a library module registry, and custom structural decoder hooks are
|
||||
not supported alternatives.
|
||||
|
||||
When a runtime-selected catalog genuinely requires dynamic options,
|
||||
`map[string]any` retains ConfigKit's canonical dynamic scalars. In particular,
|
||||
integers are `int64`; application validation owns allowed keys, value constraints,
|
||||
range checks, and conversion to runtime `int` or catalog objects. ConfigKit does not
|
||||
provide generic subtree conversion, and consumers must not add a YAML marshal/decode
|
||||
round trip to exercise supported behavior. The
|
||||
[consumer adoption guide](consumers/README.md) contains compiled typed and dynamic
|
||||
examples.
|
||||
|
||||
## Defaults and typed decoding
|
||||
|
||||
The private decoder starts from an independently owned clone of the application's
|
||||
|
||||
Reference in New Issue
Block a user