3.4 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 and bounded reads;
- a parser-independent ordered tree in
internal/document; - the sole upstream YAML integration in
internal/yaml, which translates validated input into that owned tree and exposes no parser types outside its boundary; - 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; - 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, detached typed cloning, cycle/limit
enforcement, and structural comparison in
projection.go; and - 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; and - public lifecycle coordination in
load.go, bounded canonical import DFS inimports.go, pattern-directed glob expansion inglob.go, version-report contexts invalidation.go, and detached layered metadata/history assembly inload_metadata.go; and - 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; and - post-resolution schema-aware report collection and validator mutation detection in
validation.go, completing the public callback lifecycle after composed input; - fixed-point tag/predicate/dependency sensitivity classification in
secret.go; and - frozen-snapshot redaction and canonical effective output in
render.go, with the only upstream dumper integration isolated ininternal/yaml/write.go.
The configuration contract owns implemented input, schema, decoding, loading lifecycle, path imports, composition, profile overlay, version checking, recorded resolution, semantic validation, metadata, secret classification, redacted effective rendering, and ownership behavior.
The source-extraction inventory records the application foundations assigned to future implementation work:
This document will inventory additional components and link to their current contracts and focused internal documentation as they are introduced.
The architecture policy owns binding boundaries and invariants. The initial target design describes planned behavior; it is not an inventory of implemented features. See the development guide for contributor orientation and validation.