Files
ConfigKit/docs/internal/overview.md

4.6 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 Path construction and strict JSON Pointer parsing;
  • detached provenance and diagnostic record types with empty Metadata queries;
  • canonical, control-safe diagnostic rendering and structured LoadError access;
  • opaque file, byte, reader, and no-input source construction in source.go, with shared regular-file checks and bounded read mechanics in source_file.go;
  • 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; parse.go owns shared translation into detached, ordered public diagnostics;
  • a private strict composer in compose.go that 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.go and recursive, non-aliasing overlay with displacement records in overlay.go; overlay records retain origins, while value explanation uses separate history applications;
  • detached parser-neutral CLI override validation and synthetic-source application in override.go, sharing overlay, source, byte, node, and depth policies;
  • a per-operation private reflection descriptor graph in schema.go for 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;
  • 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 in imports.go, pattern-directed glob expansion in glob.go, version-report contexts in validation.go, and detached layered metadata/history assembly in load_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 in internal/yaml/write.go;
  • a separate maintained examples/consumers package 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.