From 9ba17747a423270e2cd30e1aea0291845d0d0b07 Mon Sep 17 00:00:00 2001 From: George Lambert Date: Tue, 15 Sep 2026 22:44:51 -0400 Subject: [PATCH] S15: ns1 deployed; stop sm-leaf before binary replace GATE table marked deployed. Historical-Information open items closed. Admin-history seeded; PFC_REQUIRE_NPE left unset. --- Historical-Information.MD | 36 +++++++++++++++++++++++------------- System-Git-Sync.MD | 1 + UserReview.MD | 3 ++- cicd/GATE.md | 10 +++++----- cicd/deploy-ns1.sh | 1 + 5 files changed, 32 insertions(+), 19 deletions(-) diff --git a/Historical-Information.MD b/Historical-Information.MD index 405bb95..d4e2e4e 100644 --- a/Historical-Information.MD +++ b/Historical-Information.MD @@ -62,23 +62,33 @@ Update checkboxes in `TODO.md` as each is done. 1. [x] Historical file committed (this file) 2. [x] Expand `sm-leaf` health HTTP + sm subjects; linux/amd64 build 3. [x] `cicd/deploy-ns1.sh`: test then rsync; never skip tests -4. [ ] Generate Ed25519 config keys **on ns1**; signed config + admin-history -5. [ ] Install secure-messaging Python under `/opt/pfc/python/secure_messaging` -6. [ ] systemd `pfc-sm-leaf.service`; loopback health -7. [ ] Point `pfc-py-admin` PYTHONPATH at secure-messaging; optional signed config -8. [ ] Caddy/docs: hub + endpoints HTML/PDF under docs.pfc (docs already partial) -9. [ ] Smoke: pfc health 200, sm-leaf health, signed config load, PFC tests +4. [x] Generate Ed25519 config keys **on ns1**; signed config + admin-history +5. [x] Install secure-messaging Python under `/opt/pfc/python/secure_messaging` +6. [x] systemd `pfc-sm-leaf.service`; loopback health +7. [x] Point `pfc-py-admin` PYTHONPATH at secure-messaging; optional signed config +8. [x] Caddy/docs: hub + endpoints HTML/PDF under docs.pfc +9. [x] Smoke: pfc health 200, sm-leaf health, signed config load, PFC tests 10. [x] Promote SHA in `cicd/GATE.md` 11. [x] Re-run `cicd/run-review.sh`; second doc sync (after ns1) -12. [ ] NPE live: **only if** `/opt/pfc/bin/npe` exists; else leave fail-closed +12. [x] NPE live: binary exists at `/opt/pfc/bin/npe`; **`PFC_REQUIRE_NPE` left unset** (bus still lab-xor; fail-closed would take down the console). Cutover remains UserReview. 13. [x] Websites org: no NATS code; inventory remains complete -14. [ ] Push all git remotes; close S15 +14. [x] Push all git remotes; close S15 -Local review 2026-09-16: PFC 25/25, SM 5/5, Go leaf OK, catalog subjects OK. -Promoted: secure-messaging `f4da7ff`, peergos-for-compliance `2c45603`, -admin `c46d494`, nats-service-endpoints `1d01768`. `PFC_REQUIRE_NPE=1` stays unset -even though `/opt/pfc/bin/npe` exists (bus still lab-xor; fail-closed would -take down the console). +## ns1 validation (2026-09-16) + +- Local review: PFC 25/25, SM 5/5, Go leaf OK, catalog subjects OK (twice). +- Host: `pfc-py-admin`, `pfc-sm-leaf`, `pfc-connector`, `pfc-peergos-bridge` active. +- `GET http://127.0.0.1:18783/health` → `{"ok":true,"service":"sm-leaf"}` +- `GET https://pfc.georgelambert.org/health` → 200 (ipfs 200, replication 503 pre-existing) +- `GET /v1/admin/config` unauthenticated → 401 +- Signed wrapper `crypto.mode=lab-xor` `routing.mode=passthrough` verifies on host +- Admin-history seq 0 actor `deploy-ns1` has prev + new + unified diff +- Host SM tests (signed/tamper, lab-xor, NPE fail-closed, error bundle, history) OK +- Docs: `/sync/index.html` 200, `/sync/Historical-Information.MD` 200, `/nats-service-endpoints/` 200 + PDF +- Promoted SHAs: secure-messaging `f4da7ff`, peergos-for-compliance `2c45603`, + admin `c46d494`, nats-service-endpoints `1d01768`, system-git-sync `c570dc1`/`d9bd1fd` + +**S15 closed.** Remaining UserReview only: NPE cutover, HSM custody, optional `sync.pfc` hostname, website deep-links, replication :8782 503. ## Do not diff --git a/System-Git-Sync.MD b/System-Git-Sync.MD index 734b242..1cd8d9f 100644 --- a/System-Git-Sync.MD +++ b/System-Git-Sync.MD @@ -158,6 +158,7 @@ Append-only. Newest at the bottom. - 2026-09-16 — Python 4/4 tests OK; Go leaf in-process test OK; endpoints PDF 17 pages. ns1: docs-only, no binary deploy. - 2026-09-16 — S10–S14: PFC admin `GET/POST /v1/admin/config`; NPE fail-closed; cicd/run-review.sh **REVIEW PASS (no deploy)**; Forgejo CI on pfc, admin, docs, endpoints, hub. - 2026-09-16 — S15: `cicd/deploy-ns1.sh` (tests required), sm-leaf health + `verae.sm.*`, signed lab-xor config + admin-history seed, docs `/sync/` and `/nats-service-endpoints/`. `PFC_REQUIRE_NPE=1` still unset. Websites org untouched. +- 2026-09-16 — S15 closed on ns1: units active, signed_ok, history seq 0, public pfc/docs 200. Replication 503 remains UserReview. --- diff --git a/UserReview.MD b/UserReview.MD index 5d9b363..3a55bf0 100644 --- a/UserReview.MD +++ b/UserReview.MD @@ -7,4 +7,5 @@ Decisions to confirm later. Work continued with guesses in `TODO-With-User.MD`. 3. **Caddy hostname** for this hub (`sync.pfc.georgelambert.org` vs a path under `docs.pfc`). Guess: path `/sync/` under existing docs host after CI. 4. **verae org** is empty — leave empty unless you want it as the canonical NATS catalog owner instead of `marchon`. 5. **Website org** — no NATS changes. Confirm if any site should deep-link the endpoint catalog. -6. **Admin console that re-signs config** — PFC console vs peergos-compliance-config TUI. Guess: both may call the same Python `signed_config.sign`; PFC console first. +6. **Admin console that re-signs config** — PFC console vs peergos-compliance-config TUI. Guess: both may call the same Python `signed_config.sign`; PFC console first. `POST /v1/admin/config` is live; lab login still requires TOTP. +7. **Replication backend** on ns1 `:18782`/`:8782` still 503 connection refused (pre-existing; not part of sm-leaf). Confirm whether pfc-repl should be restarted or retired. diff --git a/cicd/GATE.md b/cicd/GATE.md index a5df3e1..303c242 100644 --- a/cicd/GATE.md +++ b/cicd/GATE.md @@ -19,11 +19,11 @@ without operator interruption. | SHA | repo | reviewer | date | ns1 | |---|---|---|---|---| -| f4da7ff44634973e1b32db93c694f6ee47c34e41 | secure-messaging | agent | 2026-09-16 | promote | -| 2c45603a3e14bbfd6de4e9b065ad43d234e46012 | peergos-for-compliance | agent | 2026-09-16 | promote | -| c46d494 | peergos-for-compliance-admin | agent | 2026-09-16 | promote | -| 1d01768 | nats-service-endpoints | agent | 2026-09-16 | promote | -| c570dc10fb50973a022fd5eb361c9928cdb8d8f6 | system-git-sync | agent | 2026-09-16 | promote | +| f4da7ff44634973e1b32db93c694f6ee47c34e41 | secure-messaging | agent | 2026-09-16 | deployed | +| 2c45603a3e14bbfd6de4e9b065ad43d234e46012 | peergos-for-compliance | agent | 2026-09-16 | deployed | +| c46d494 | peergos-for-compliance-admin | agent | 2026-09-16 | deployed | +| 1d01768 | nats-service-endpoints | agent | 2026-09-16 | deployed | +| c570dc10fb50973a022fd5eb361c9928cdb8d8f6 | system-git-sync | agent | 2026-09-16 | deployed | ## Local review diff --git a/cicd/deploy-ns1.sh b/cicd/deploy-ns1.sh index 576c90e..e29ce22 100755 --- a/cicd/deploy-ns1.sh +++ b/cicd/deploy-ns1.sh @@ -31,6 +31,7 @@ fi echo "=== install on host ===" ssh "$HOST" 'bash -s' << "EOF" set -e +sudo systemctl stop pfc-sm-leaf || true sudo cp /tmp/sm-leaf-linux /opt/pfc/bin/sm-leaf sudo chmod +x /opt/pfc/bin/sm-leaf sudo mkdir -p /opt/pfc/python/secure_messaging /opt/pfc/python/admin/pfc_admin /opt/pfc/python/lib