From dcda1e603f78cfe5886605f8f76b95eea2dbb88d Mon Sep 17 00:00:00 2001 From: tegwick Date: Tue, 15 Sep 2026 23:38:48 +0200 Subject: [PATCH] Prepare the access-engine repository coordinate without applying the rename. FLEX-WP-0020 T01-T03: fresh preflight is zero-blocker, repository-only scope is FLEX-DEC-2026-013, concurrent work is FLEX-DEC-2026-014. T04 handoff requests are posted; owner work-records are still required. T06 stays behind the exact human confirm string and a post-commit preflight. Assistant: grok Assistant-Session: 01a0a6cb-0334-72c0-83b0-2df57474a0f6 --- README.md | 8 +++ decisions/decisions.md | 36 ++++++++++++++ .../2026-09-15-repository-rename-baseline.md | 47 ++++++++++++++++++ .../2026-09-15-repository-rename-handoffs.md | 49 +++++++++++++++++++ ...X-WP-0020-repository-identity-migration.md | 33 ++++++++++--- 5 files changed, 166 insertions(+), 7 deletions(-) create mode 100644 docs/evidence/2026-09-15-repository-rename-baseline.md create mode 100644 docs/evidence/2026-09-15-repository-rename-handoffs.md diff --git a/README.md b/README.md index 89ef73b..63307ee 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,14 @@ Policy-as-code authorization registry and control plane for NetKingdom-aligned systems. +The live Forge and State Hub coordinate is still `flex-auth` (repository UUID +`fda8ad85-a7d7-4055-8f21-902a533e59df`, Forge ID `42`). `FLEX-WP-0020` will +rename that coordinate to `access-engine` and keep the Go module, binary, +`FLEX_AUTH_*` variables, Helm releases, container package +`coulomb/flex-auth`, and policy/API vocabulary unchanged. Work-record +frontmatter stays `repo: flex-auth` until State Hub rebind. Planned clone: +`https://forgejo.coulomb.social/coulomb/access-engine.git`. + Start with [INTENT.md](INTENT.md) for the project boundary and direction. Research notes and ADRs live in [docs/](docs/) and [docs/adr/](docs/adr/). diff --git a/decisions/decisions.md b/decisions/decisions.md index 466faf1..4f627dc 100644 --- a/decisions/decisions.md +++ b/decisions/decisions.md @@ -1797,3 +1797,39 @@ review of the assertions. - Bears on `FLEX-DEC-2026-011` F1. A PEP cannot verify who answered; it now at least can verify that the answer is about the request it sent. Those are different properties and neither substitutes for the other. + +--- + +## FLEX-DEC-2026-013 — Repository-only scope for the access-engine coordinate + +**Date:** 2026-09-15 +**Status:** accepted +**Workplan:** `FLEX-WP-0020-T03` +**Hub:** `9f2dd7a4-6437-4e59-8403-ae56d9cc1d09` + +Rename the Forge/State Hub repository coordinate to `access-engine`. Retain +the Go module `github.com/netkingdom/flex-auth`, binary/CLI, `FLEX_AUTH_*` +variables, Kubernetes namespace/Services/Helm, container package +`coulomb/flex-auth`, policy/API vocabulary, audiences, and telemetry labels. +Keep the `FLEX-WP-` prefix and every existing State Hub UUID. A broader +product/runtime rebrand needs a later workplan after soak. + +This is the reviewed table already written in `FLEX-WP-0020`. Changing a +`retain` row returns that plan to `proposed`. + +--- + +## FLEX-DEC-2026-014 — Concurrent work may remain open during FLEX-WP-0020 cutover + +**Date:** 2026-09-15 +**Status:** accepted +**Workplan:** `FLEX-WP-0020-T01` / `T05` + +`FLEX-WP-0027-T03` stays `wait` (operator human review of three T03 memos). +`FLEX-WP-0022` T01/T02 stay open (tenant-engine must name the CheckRequest +tenant relation; T03 fixtures landed without a policy change). Neither +changes repository identity, Forge ID, or the source UUID. They do not have +to finish before a repository-coordinate rename, and they must not be +cancelled or rewritten by it. Live Forge apply (`T06`) still needs the exact +human confirmation string and a fresh zero-blocker preflight of the commit +being renamed. diff --git a/docs/evidence/2026-09-15-repository-rename-baseline.md b/docs/evidence/2026-09-15-repository-rename-baseline.md new file mode 100644 index 0000000..3d45c7f --- /dev/null +++ b/docs/evidence/2026-09-15-repository-rename-baseline.md @@ -0,0 +1,47 @@ +# FLEX-WP-0020-T01 — identity baseline (2026-09-15) + +Private preflight file is `/tmp/flex-auth-rename-preflight-0020.json` (mode 0600). +It is not committed. Token material stays there. + +| Field | Value | +| --- | --- | +| State Hub UUID | `fda8ad85-a7d7-4055-8f21-902a533e59df` | +| Forge repository ID | `42` | +| Forge full name | `coulomb/flex-auth` | +| Default branch | `main` | +| Local path | `/home/worsch/flex-auth` | +| Remote | `forgejo-remote:coulomb/flex-auth.git` | +| Clone URL | `https://forgejo.coulomb.social/coulomb/flex-auth.git` | +| Host paths | railiance01 `/home/tegwick/flex-auth`; `bnt-lap001` `/home/worsch/flex-auth` | +| Protected/current aliases | `flex-auth` (canonical) | +| Target slug | `access-engine` (Forge reports none yet; available) | +| Preflight `safe_to_apply` | `true` | +| Blockers | none | +| Queued edge writes | none | +| Warning | `active_work_present` (15 tasks / 8 workplans) | +| Report checksum (this capture) | `4b930464e0b92137902481d39cd89b1b2458a8ea88ad08c7ac0c86f2427e7c76` | +| Signing | no longer the August 29 `preflight_signing_unavailable` blocker | + +Captured `HEAD` at inspection was `6fd3a0cbc400b9128132497fca69d0096259800c`. +A later commit on this workplan requires a fresh T05 preflight before +`forge-renamed`. + +## Active-work disposition (FLEX-DEC-2026-014) + +- `FLEX-WP-0017` and `FLEX-WP-0019` are finished (the August 29 snapshot is stale). +- `FLEX-WP-0027-T03` remains `wait` — human review, not a source-identity change. +- `FLEX-WP-0022` T01/T02 remain open; T03 is fixture-only. Coordinate rename + must not cancel them. +- `FLEX-WP-0020` itself is the cutover plan. + +Working tree at inspection: branch `main`, tracking `origin/main`, clean +before this workplan's source edits. + +## Proposed mutations (from preflight) + +1. Forgejo `name`: `flex-auth` → `access-engine` (`forge-renamed`) +2. State Hub `managed_repos.slug`: `flex-auth` → `access-engine` (`statehub-rebound`) +3. State Hub `managed_repos.remote_url`: `forgejo-remote:coulomb/flex-auth.git` → `https://forgejo.coulomb.social/coulomb/access-engine.git` +4. Slug registry: `flex-auth:canonical` → `flex-auth:alias, access-engine:canonical` + +No runtime Deployment, image, or policy-package mutation is in this list. diff --git a/docs/evidence/2026-09-15-repository-rename-handoffs.md b/docs/evidence/2026-09-15-repository-rename-handoffs.md new file mode 100644 index 0000000..10f545c --- /dev/null +++ b/docs/evidence/2026-09-15-repository-rename-handoffs.md @@ -0,0 +1,49 @@ +# FLEX-WP-0020-T04 — consumer inventory and handoff requests + +Status: requests sent. Owner work-record IDs are not invented here. +Handoff JSON cannot be schema-valid until each owner creates a live +workplan/task; those IDs fill `handoff_id` / `owning_work_record`. +Do not mark external work done from this repository. + +Shared identity for every request: + +- renamed_repository_id: `fda8ad85-a7d7-4055-8f21-902a533e59df` +- old_slug: `flex-auth` +- new_slug: `access-engine` +- Forge ID stays `42` +- runtime/product names stay `flex-auth` (FLEX-DEC-2026-013) + +| Owner | Surface | Required change / verification | Owner work-record | +| --- | --- | --- | --- | +| `railiance-fabric` | fabric-projection | Update `registry/local-repos.yaml`, `registry/railiance-repos.yaml`, live `fabric/**` `repo: flex-auth`; re-ingest; keep `flex-auth.*` runtime graph IDs | pending | +| `ops-warden` | credential-route | Review `registry/routing/catalog.yaml` owner repository field; routing must still resolve; no secret in the reply | pending | +| `reuse-surface` | other | Update federation source URL/path, re-ingest, verify capability continuity | pending | +| `policy-nexus` | other | Update `source-inventory.config.json` remote URL; re-ingest same publication lineage | pending | +| `user-engine` | documentation | Update `wiki/ArchitectureBlueprint.md` absolute source path; adapter/runtime vocabulary stays `flex-auth` | pending | +| `net-kingdom` | deployment | Verify three live `flex-auth-*` Deployments and `sso-mfa/k8s/**`; no runtime rename | pending | +| `tenant-engine` | consumer | Verify docs/client config keep the retained product/runtime contract | pending | +| `sbom-nexus` | sbom | Re-ingest new canonical checkout; snapshots remain related to the UUID above | pending | +| `repo-manager` | other | Reconcile new canonical path; do not rewrite archived UUID-migration evidence | pending | +| `railiance-platform`, `markitect-tool`, `gate-house`, `approval-engine`, `secrets-engine`, `zone-engine` | consumer | Confirm no live repository URL/path remains; retain product/runtime terminology | pending | +| `flex-auth` + Forgejo operator | ci / package | `.forgejo/workflows/image.yaml`, charts, deploy, releases, packages, hooks, Actions, deploy keys, branch protection, redirects, clone URLs. Only repository coordinates change. Image name stays `coulomb/flex-auth`. | this plan | + +Request message IDs (not owner work-records): + +| Owner | Message ID | +| --- | --- | +| tenant-engine (T01 question) | `e8ba6a53-0093-4dc0-ad70-01f6b8c8e76b` | +| tenant-engine (0020 verify) | `08b3edfa-c478-45c9-9b2f-4c0fcdf471e7` | +| railiance-fabric | `10d4b1a2-8976-42a5-8d76-6fc1ce54fe87` | +| ops-warden | `0a1956c5-9fd2-4e52-837e-5bfa8e47e83d` | +| reuse-surface | `08919217-1d82-4600-a2e8-e3d9949fabab` | +| policy-nexus | `d861dc4f-11b5-4c73-a98c-8d261e65d65e` | +| user-engine | `94fd6ef0-28b5-4481-a207-2adabab93893` | +| net-kingdom | `3bc95c76-abac-4f20-95ff-a74dcc1d6fd9` | +| sbom-nexus | `08540a29-ecd4-47bc-a87c-7eecf80f166a` | +| repo-manager | `0a4b1825-99b1-4e1e-a4a0-448b0347b744` | +| railiance-platform | `b55a40cb-eb03-4972-a9bc-aac6e131a63e` | +| markitect-tool | `0dd0d6af-12fd-4b3e-af4e-1f294d615039` | +| gate-house | `231460c6-0235-4c22-9f7d-cff3959496ed` | +| approval-engine | `2523510b-79d6-4123-b550-6386dae4d464` | +| secrets-engine | `15cf351a-bad8-4259-9b6f-b21d183a20ab` | +| zone-engine | `40adbd61-0155-44f8-b6a7-621ff1629c46` | diff --git a/workplans/FLEX-WP-0020-repository-identity-migration.md b/workplans/FLEX-WP-0020-repository-identity-migration.md index c0f1ca9..287f6ab 100644 --- a/workplans/FLEX-WP-0020-repository-identity-migration.md +++ b/workplans/FLEX-WP-0020-repository-identity-migration.md @@ -4,12 +4,12 @@ type: workplan title: "Repository identity migration from flex-auth to access-engine" domain: "infotech" repo: "flex-auth" -status: proposed +status: active flavor: planning owner: "codex" topic_slug: "netkingdom" created: "2026-08-29" -updated: "2026-08-29" +updated: "2026-09-15" reviewed_at: "2026-08-29" reviewed_by: codex reviewed_against_commit: "7d7b4531d15a2dde7aaa28b9360a13e77b28b2a9" @@ -137,7 +137,7 @@ the two live workplans; it must not silently cancel or rewrite them. ```task id: FLEX-WP-0020-T01 -status: todo +status: done priority: high state_hub_task_id: "bb989019-50a7-5273-ba09-b2df2e2602a4" ``` @@ -156,11 +156,16 @@ Owner: `flex-auth`. Gate: repository UUID, Forge ID, branch, commit, and clean-state evidence are recorded and match a fresh State Hub preflight. +2026-09-15: captured in `docs/evidence/2026-09-15-repository-rename-baseline.md`. +Signing is no longer a blocker. `safe_to_apply=true`, zero blockers, warning +`active_work_present` disposed by `FLEX-DEC-2026-014`. A later commit still +needs a T05 preflight before `forge-renamed`. + ## 2. Prepare repository metadata and work-record frontmatter ```task id: FLEX-WP-0020-T02 -status: todo +status: done priority: high state_hub_task_id: "102e9dc7-4724-5e80-84c4-092e6ecfbb2b" ``` @@ -179,11 +184,14 @@ Owner: `flex-auth`. Gate: work-record parsing succeeds and no existing UUID field was removed, replaced, or invented. +2026-09-15: README states the planned `access-engine` clone URL and that +frontmatter stays `repo: flex-auth` until rebind. No UUID fields rewritten. + ## 3. Decide product and runtime naming separately ```task id: FLEX-WP-0020-T03 -status: todo +status: done priority: high state_hub_task_id: "5095ddbc-b69c-5a52-b97f-08fca9b610c3" ``` @@ -209,11 +217,13 @@ rollback limits are reviewed. Gate: every item has a decision record and independently deployable changes have their own workplan or residual handoff. +2026-09-15: accepted as `FLEX-DEC-2026-013` / hub `9f2dd7a4-6437-4e59-8403-ae56d9cc1d09`. + ## 4. Inventory consumers and create owned handoffs ```task id: FLEX-WP-0020-T04 -status: todo +status: progress priority: high state_hub_task_id: "9bb138e1-5edb-5714-8d89-3b1b7039a7ce" ``` @@ -239,6 +249,10 @@ Owner: `flex-auth` for inventory and handoff creation only. Gate: every discovered external change has one named owning repository and durable handoff ID; unknown ownership blocks the live rename. +2026-09-15: inventory in `docs/evidence/2026-09-15-repository-rename-handoffs.md`. +Owner work-record IDs are requested, not invented. T06 stays blocked on those +IDs plus the human confirm string. + Reviewed inventory baseline: | Owner | Required source/verification surface | @@ -259,7 +273,7 @@ Reviewed inventory baseline: ```task id: FLEX-WP-0020-T05 -status: todo +status: wait priority: high state_hub_task_id: "86fecbb6-b008-5354-8d70-0f4ba5077a58" ``` @@ -280,6 +294,11 @@ window, rollback limits, and confirmation `rename:fda8ad85-a7d7-4055-8f21-902a53 Gate: a current private preflight and explicit human approval exist. Never commit the private preflight file or its token. +2026-09-15: signing is provisioned; a private preflight of `6fd3a0c` was +zero-blocker. Re-run after this source commit. Human confirmation of +`rename:fda8ad85-a7d7-4055-8f21-902a533e59df:flex-auth:access-engine` is still +required before T06. Do not start the journal from this session. + ## 6. Execute the Forgejo repository rename ```task