Skip to content

chore: bootstrap eqrm/ct-structure — adopt the real Equippers scaffold #23

Description

@2000game

Create eqrm/ct-structure — the private repo holding Equippers' actual desired-state config + state files, per the two-repo layout decided in #1 (tool ≠ infra, mirroring Terraform). Until this exists, ct-cli manages nothing real. Part of the Phase 6 epic.

Depends on (as of 2026-07-09): portable configs (#20) and Phase 5 are merged; still blocking are environments (#22), the grant scope-dimension bug (#49), and first-page-only pagination (#50). Adoption of ~48 resources has already begun; #52's blueprint rewrite (item E) lands here.

Scope

  • Create the private repo: npm install dependency on ct-cli (or the released binary once feat: automated releases — install ct from the GitHub Releases page #9 lands), config/ TS entrypoint, ct-state.*.json, README with the operating model.
  • Selective adoption of the real prod scaffold per the scoping principle (rights-bearing structure only, no operational teams): campuses; the shared group types / age groups / target groups / statuses actually used structurally; the per-campus lead/area groups + hierarchy; permission grants on the structural roles; existing auto-groups that belong to the scaffold.
  • Express the per-campus part as a blueprint function (exercises feat: Phase 5 — Blueprints (parametrized campus blueprint, auto-groups) #7's deliverable on real data); leave adopted one-offs as plain declarations.
  • Decide + implement the managed-marker open decision from epic: Campus Management tool — ChurchTools structure-as-code CLI #1 (config-only vs a visible CT marker like a name prefix/tag) — document the choice either way.
  • .gitignore/secret hygiene: tokens never in the repo; state files (which contain no secrets, only ids + snapshots) committed.

Acceptance criteria

  • ct plan --env prod in ct-structure is a clean no-op after adoption (proves the config faithfully describes reality).
  • ct plan --env dev shows the create-set for a fresh instance (or dev is populated and also no-op — decide the dev baseline).
  • A new campus instantiated from the blueprint produces a correct, ordered plan.
  • README documents: how to propose a change (PR), how state is handled, what is deliberately unmanaged.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions