Phase 3 — Declarative engine (config format, diff/plan, dependency graph). The heart of the Terraform-style behaviour.
Part of #1.
Scope
Definition of done
ct plan against an adopted structure shows an accurate, ordered diff with zero changes when config matches reality.
- Introducing a change in config produces the correct single planned action.
- Dependency ordering is unit-tested with a synthetic graph.
Phase 3 — Declarative engine (config format, diff/plan, dependency graph). The heart of the Terraform-style behaviour.
Part of #1.
Scope
.tsfiles that register resource objects (campus({…}),group({…}), etc.) into a registry. Typed helpers for each resource kind.create/update/delete/no-op. Human-readablect planoutput (default, no changes).group_type,group_status,age_group,target_group,campus,relationship_type) →group→group_hierarchy→group_role→permission→dynamic_group. Delete in reverse.planreports manually-changed or deleted managed resources; new unmanaged groups never produce drift.Definition of done
ct planagainst an adopted structure shows an accurate, ordered diff with zero changes when config matches reality.