40 lines
2.3 KiB
Markdown
40 lines
2.3 KiB
Markdown
# Internal Component Overview
|
|
|
|
ConfigKit exposes one supported root `configkit` package. The root owns public
|
|
named types, declaration comments, constructors, and explicit conversion/wrapper
|
|
code. It delegates loading and frozen inspection to `internal/engine` through
|
|
private state; public signatures and fields do not expose engine types.
|
|
|
|
Implemented component owners:
|
|
|
|
- `internal/engine` owns source acquisition, composition, schema inspection,
|
|
decoding, lifecycle coordination, callback auditing, provenance/history,
|
|
secret resolution and bootstrap, and safe inspection rendering. It never
|
|
imports the root package.
|
|
- Root `Source`, `Path`, `Secret`, records, lifecycle callbacks, results, and
|
|
bootstrap reports are root-defined wrappers or records. Callback wrappers pass
|
|
only live engine context during a callback; `Result.Config` is detached and its
|
|
private inspection remains frozen independently.
|
|
- Root conversion files explicitly cross the path, record, callback, secret, and
|
|
error boundaries. There are no public aliases, anonymous engine embeddings, or
|
|
public engine bridge methods.
|
|
- `internal/document` owns the parser-independent ordered tree and cloning.
|
|
`internal/yaml` is the sole upstream YAML adapter and parser/dumper boundary.
|
|
- Engine mechanism tests own source, composition, decoding, callback, provenance,
|
|
secret, history, rendering, and bootstrap behavior. Root tests own public API
|
|
compatibility, facade integration, documentation links, and dependency/public
|
|
boundary checks. Consumer examples remain under `examples/consumers`.
|
|
|
|
Dependency direction is root to engine to document/YAML support. The root may
|
|
import only `internal/engine` among project internal production packages; engine
|
|
and its supporting packages do not import root. The root boundary test enforces
|
|
these constraints and rejects exported aliases, fields, or signatures involving
|
|
internal types.
|
|
|
|
The [configuration contract](../config.md) owns implemented YAML and lifecycle
|
|
semantics. The [consumer adoption guide](../consumers/README.md) owns application
|
|
guidance. The [architecture policy](../policy/architecture.md) owns contributor
|
|
boundaries, and [ADR 0006](../adr/0006-public-facade.md) records the facade
|
|
decision. See the [development guide](../development.md) for validation commands
|
|
and [release procedure](../release.md) for source-candidate gates.
|