5.0 KiB
Internal Component Overview
ConfigKit currently contains the root configkit package, which establishes the
module and package documentation boundary. Its implemented public primitives are:
- immutable semantic
Pathconstruction and strict JSON Pointer parsing; - detached provenance and diagnostic record types with empty
Metadataqueries; - canonical, control-safe diagnostic rendering and structured
LoadErroraccess; - opaque file, byte, reader, and no-input source construction in
source.go, with shared regular-file checks and bounded read mechanics insource_file.go; - a parser-independent ordered tree in
internal/document, with root-private semantic lookup, indexing, and value traversal indocument_walk.go; - the sole upstream YAML integration in
internal/yaml, which translates validated input into that owned tree and exposes no parser types outside its boundary;parse.goowns shared translation into detached, ordered public diagnostics; - a private strict composer in
compose.gothat joins only disjoint document-tree definitions, retains ordered claims and composite mapping origins, reports every conflicting location, and never aliases an input tree; - fixed selected-profile loading in
profile.goand recursive, non-aliasing overlay with displacement records inoverlay.go; overlay records retain origins, while value explanation uses separate history applications; - CLI override validation/preparation in
override.go, parser-neutral values inoverride_value.go, and synthetic-source application inoverride_apply.go, sharing overlay, source, byte, node, and depth policies; - a per-operation private reflection descriptor graph in
schema.gofor supported types, YAML field binding, inlining, secret tags, recursion, and semantic paths; - descriptor-driven canonical projection in
projection.go, detached typed cloning with explicit secret-state modes inclone.go, shared reflection and cycle/limit state invalue_operation.go, and configuration-value comparison indocument_compare.go; validation separately audits sensitivity and secrets; - strict schema-driven decoding over detached defaults in
decode.go, including mapping/sequence semantics, null and numeric policy, safe codec errors, presence, baseline/final trees, and initial default/input origins; - public lifecycle coordination in
load.go, bounded canonical import DFS inimports.go, filesystem context/containment infilesystem.go, directive parsing/restrictions indirectives.go, pattern-directed glob expansion inglob.go, version-report contexts invalidation.go, and detached layered metadata/history assembly inload_metadata.go; - recorded application defaulting and normalization in
resolution.go, including explicitness queries, helper verification, structural mutation audit, coalesced intent, private before/after snapshots, and resolution metadata integration; - post-resolution schema-aware report collection and validator mutation detection in
validation.go, completing the public callback lifecycle after composed input; - opaque typed environment references and per-load name resolution in
secret_reference.go, including credential-free projection/cloning and private validator-state auditing; - explicit bounded startup environment bootstrap and safe partial reporting in
secrets.go; - fixed-point tag/predicate/dependency sensitivity classification in
secret.go; - frozen-snapshot redaction and canonical effective output in
render.go; - bounded immutable input applications, safe historical replay, detached explanation
records, and deterministic human rendering in
explain.go, with the only upstream dumper integration isolated ininternal/yaml/write.go; - a separate maintained
examples/consumerspackage with four sanitized consumer shapes, fixtures, domain validators, and runtime-boundary functions; and - a fail-fast source-candidate checker in
scripts/release-check.sh, with local documentation-link and public import-boundary gates owned by root-package tests.
The configuration contract owns implemented input, schema, decoding, loading lifecycle, path imports, composition, profile/CLI overlay, version checking, recorded resolution, typed secret references/bootstrap, semantic validation, metadata, secret classification, redacted effective rendering, historical explanation, and ownership behavior. The consumer adoption guide owns current application-fit and migration guidance.
The source-extraction inventory records the application foundations used by the implementation:
The architecture policy owns binding boundaries and invariants. The initial target record links current feature owners and preserves deferred scope; it is not an implementation inventory. See the development guide for contributor orientation and validation and the release procedure for source-candidate gates.