S15: ns1 deployed; stop sm-leaf before binary replace
Some checks are pending
review / inventory (push) Waiting to run

GATE table marked deployed. Historical-Information open items closed.
Admin-history seeded; PFC_REQUIRE_NPE left unset.
This commit is contained in:
George Lambert 2026-09-15 22:44:51 -04:00
parent d9bd1fd175
commit 9ba17747a4
5 changed files with 32 additions and 19 deletions

View file

@ -62,23 +62,33 @@ Update checkboxes in `TODO.md` as each is done.
1. [x] Historical file committed (this file) 1. [x] Historical file committed (this file)
2. [x] Expand `sm-leaf` health HTTP + sm subjects; linux/amd64 build 2. [x] Expand `sm-leaf` health HTTP + sm subjects; linux/amd64 build
3. [x] `cicd/deploy-ns1.sh`: test then rsync; never skip tests 3. [x] `cicd/deploy-ns1.sh`: test then rsync; never skip tests
4. [ ] Generate Ed25519 config keys **on ns1**; signed config + admin-history 4. [x] Generate Ed25519 config keys **on ns1**; signed config + admin-history
5. [ ] Install secure-messaging Python under `/opt/pfc/python/secure_messaging` 5. [x] Install secure-messaging Python under `/opt/pfc/python/secure_messaging`
6. [ ] systemd `pfc-sm-leaf.service`; loopback health 6. [x] systemd `pfc-sm-leaf.service`; loopback health
7. [ ] Point `pfc-py-admin` PYTHONPATH at secure-messaging; optional signed config 7. [x] Point `pfc-py-admin` PYTHONPATH at secure-messaging; optional signed config
8. [ ] Caddy/docs: hub + endpoints HTML/PDF under docs.pfc (docs already partial) 8. [x] Caddy/docs: hub + endpoints HTML/PDF under docs.pfc
9. [ ] Smoke: pfc health 200, sm-leaf health, signed config load, PFC tests 9. [x] Smoke: pfc health 200, sm-leaf health, signed config load, PFC tests
10. [x] Promote SHA in `cicd/GATE.md` 10. [x] Promote SHA in `cicd/GATE.md`
11. [x] Re-run `cicd/run-review.sh`; second doc sync (after ns1) 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 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. ## ns1 validation (2026-09-16)
Promoted: secure-messaging `f4da7ff`, peergos-for-compliance `2c45603`,
admin `c46d494`, nats-service-endpoints `1d01768`. `PFC_REQUIRE_NPE=1` stays unset - Local review: PFC 25/25, SM 5/5, Go leaf OK, catalog subjects OK (twice).
even though `/opt/pfc/bin/npe` exists (bus still lab-xor; fail-closed would - Host: `pfc-py-admin`, `pfc-sm-leaf`, `pfc-connector`, `pfc-peergos-bridge` active.
take down the console). - `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 ## Do not

View file

@ -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 — Python 4/4 tests OK; Go leaf in-process test OK; endpoints PDF 17 pages. ns1: docs-only, no binary deploy.
- 2026-09-16 — S10S14: 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 — S10S14: 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: `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.
--- ---

View file

@ -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. 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`. 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. 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.

View file

@ -19,11 +19,11 @@ without operator interruption.
| SHA | repo | reviewer | date | ns1 | | SHA | repo | reviewer | date | ns1 |
|---|---|---|---|---| |---|---|---|---|---|
| f4da7ff44634973e1b32db93c694f6ee47c34e41 | secure-messaging | agent | 2026-09-16 | promote | | f4da7ff44634973e1b32db93c694f6ee47c34e41 | secure-messaging | agent | 2026-09-16 | deployed |
| 2c45603a3e14bbfd6de4e9b065ad43d234e46012 | peergos-for-compliance | agent | 2026-09-16 | promote | | 2c45603a3e14bbfd6de4e9b065ad43d234e46012 | peergos-for-compliance | agent | 2026-09-16 | deployed |
| c46d494 | peergos-for-compliance-admin | agent | 2026-09-16 | promote | | c46d494 | peergos-for-compliance-admin | agent | 2026-09-16 | deployed |
| 1d01768 | nats-service-endpoints | agent | 2026-09-16 | promote | | 1d01768 | nats-service-endpoints | agent | 2026-09-16 | deployed |
| c570dc10fb50973a022fd5eb361c9928cdb8d8f6 | system-git-sync | agent | 2026-09-16 | promote | | c570dc10fb50973a022fd5eb361c9928cdb8d8f6 | system-git-sync | agent | 2026-09-16 | deployed |
## Local review ## Local review

View file

@ -31,6 +31,7 @@ fi
echo "=== install on host ===" echo "=== install on host ==="
ssh "$HOST" 'bash -s' << "EOF" ssh "$HOST" 'bash -s' << "EOF"
set -e set -e
sudo systemctl stop pfc-sm-leaf || true
sudo cp /tmp/sm-leaf-linux /opt/pfc/bin/sm-leaf sudo cp /tmp/sm-leaf-linux /opt/pfc/bin/sm-leaf
sudo chmod +x /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 sudo mkdir -p /opt/pfc/python/secure_messaging /opt/pfc/python/admin/pfc_admin /opt/pfc/python/lib