6.9 KiB
Historical-Information.MD
Instruction to any later agent: Continue without user interruption until
every open item below is done, revalidated, and tested. Do not ask the
operator for information. Use guesses in TODO-With-User.MD. Deploy
validated code to ns1 70.88.205.138, replacing processes only when
the replacement is tested. After a context reset: read this file first,
then System-Git-Sync.MD, TODO.md, UserReview.MD, INVENTORY.md.
This is not a HIPAA/SOC 2/ISO certificate.
Operator intent (compressed)
- Secure messaging on untrusted NATS: passthrough (dest in the clear, body encrypted). Sender cannot reopen ciphertext; lookup_id only.
- Network Error Bundle:
ct_sender(sender-only) +ct_system(system public key bounce report). Never log recipient plaintext. - Signed Ed25519 config wrapper; unsigned files rejected. Admin changes append prev + new + unified diff to a Verae DataCube admin-history chain.
- Python (readable, commented) + Go (in-process NATS + leaf).
- Catalog repo
nats-service-endpoints. Hubsystem-git-sync. - Scan every Forgejo org. Websites = inventory only.
veraeorg empty. - ns1 sequence was docs → code → test → CI → deploy. Deploy is now in
scope. Do not enable
PFC_REQUIRE_NPE=1on the live console unless thenpesidecar is actually present (fail-closed would take down pfc). - Keep going until synced and interoperable. Re-run tests after deploy.
Forgejo
- Host: https://git.georgelambert.org (Forgejo 11)
- SSH:
ssh://git@git.georgelambert.org:2223/marchon/<repo>.git(alsogit@git.georgelambert.org:marchon/<repo>.git) - Orgs:
marchon(~61),infra(caddy, coredns),websites(70+),verae(0) - Token: osxkeychain for
git.georgelambert.orgusermarchon
Live ns1 (do not break the console)
pfc-py-admin:18780 → https://pfc.georgelambert.org (PFC_REQUIRE_AUTH=1)pfc-connector,pfc-peergos-bridge,pfc-py-ipfs:18782, Kubo :15001pfc-configd:18781- NATS leaf hub
nats://10.10.10.21:7422(also writtennats-leaf://) - Docs:
/opt/pfc/docs/html, https://docs.pfc.georgelambert.org - Secrets:
/opt/pfc/etc/admin.env,/opt/pfc/etc/peergos-bridge.env - Do not replace
pfc-py-adminwith Gopfc-admin(Go HTTP was disabled on purpose). Addsm-leafalongside.
Repos created this program
- https://git.georgelambert.org/marchon/system-git-sync
- https://git.georgelambert.org/marchon/nats-service-endpoints
- https://git.georgelambert.org/marchon/secure-messaging
Design locks
See System-Git-Sync.MD table. Config keys: crypto.mode, routing.mode,
admin.history_cube, crypto.system_key_id, logging.mode.
Open items (execute in order)
Update checkboxes in TODO.md as each is done.
- Historical file committed (this file)
- Expand
sm-leafhealth HTTP + sm subjects; linux/amd64 build cicd/deploy-ns1.sh: test then rsync; never skip tests- Generate Ed25519 config keys on ns1; signed config + admin-history
- Install secure-messaging Python under
/opt/pfc/python/secure_messaging - systemd
pfc-sm-leaf.service; loopback health - Point
pfc-py-adminPYTHONPATH at secure-messaging; optional signed config - Caddy/docs: hub + endpoints HTML/PDF under docs.pfc
- Smoke: pfc health 200, sm-leaf health, signed config load, PFC tests
- Promote SHA in
cicd/GATE.md - Re-run
cicd/run-review.sh; second doc sync (after ns1) - NPE live: binary exists at
/opt/pfc/bin/npe;PFC_REQUIRE_NPEleft unset (bus still lab-xor; fail-closed would take down the console). Cutover remains UserReview. - Websites org: no NATS code; inventory remains complete
- Push all git remotes; close S15
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-bridgeactive. GET http://127.0.0.1:18783/health→{"ok":true,"service":"sm-leaf"}GET https://pfc.georgelambert.org/health→ 200 (ipfs 200, replication 200pfc-repl-go)GET /v1/admin/configunauthenticated → 401- Signed wrapper
crypto.mode=lab-xorrouting.mode=passthroughverifies on host - Admin-history seq 0 actor
deploy-ns1has prev + new + unified diff - Host SM tests (signed/tamper, lab-xor, NPE fail-closed, error bundle, history) OK
- Docs:
/sync/index.html200,/sync/Historical-Information.MD200,/nats-service-endpoints/200 + PDF - Promoted SHAs: secure-messaging
f4da7ff, peergos-for-compliance2c45603, adminc46d494, nats-service-endpoints1d01768, system-git-syncc570dc1/d9bd1fd
S15 closed. Remaining UserReview only: NPE cutover, HSM custody, optional sync.pfc hostname, website deep-links.
S16–S24 (this round)
Continue-until-done plan: Remaining-Work.MD. Per-repo MODULE.md (who
calls, from/to, filters, errors/timeouts, storage). Catalog 44/44
subjects.json with timeout_sec + filter. Python+Go success/failure
NATS send tests. UI screenshots in peergos-compliance-docs
source/_static/screens/ + walkthrough.rst. HTML+PDF rebuilt.
cicd/run-review.sh REVIEW PASS (PFC 25, SM 8 including router,
Go leaf reject paths, catalog covers subjects.json).
After a context reset: read this file, then Remaining-Work.MD.
S25 (UserReview leftovers)
- HSM custody:
docs/HSM-CUSTODY.md+rotate_config_key.py. Private keys stay on host. - NPE: adapter uses real
npe send|keygenCLI.GET /v1/npeprobe.PFC_REQUIRE_NPEremains unset. sync.pfc.georgelambert.orgCaddy (DNS already pointed at 138).- Deep links: console footer, hub
links.html,https://georgelambert.org/pfc/(one page; 70 website repos not rewritten).
S26 (certification-ready controls, still not a certificate)
- NATS remains untrusted. Bodies:
pfc-lab-xorwith host PSK (PFC_NATS_KEY+PFC_FORBID_PLAIN=1). Python and Go envelopes round-trip the same vector. Production E2E remains NPE/HPKE (PFC_REQUIRE_NPEstill unset). - PDFs link to sibling PDFs (
nats-service-endpoints.pdf,secure-messaging.pdf,peergos-for-compliance.pdf) — no.mdhrefs. - Controls / custody / variables chapters in the system PDF.
S27 NPE/HPKE content + public-key directory
- Content: HPKE-Base only. sm-leaf rejects
lab-xor/plain-lab. - Directory:
/opt/pfc/etc/npe-dirpublic JSON + private 0600.GET /v1/npe/keyslists public keys for every E2E service. - Clear on NATS: routing + error codes only. Content never in JSON.
- WAN NATS 4222 remains token-gated public-edge (not open). PFC uses
internal
10.10.10.21:4222.
Go pfc-repl now serves loopback GET 127.0.0.1:18784/health; admin PFC_REPL_URL points there. Ingest replicas a/b do not bind HTTP.
Do not
- Enable
PFC_REQUIRE_NPE=1ifnpeis missing - Expose 4222/7422/5001 on WAN
- Commit private keys
- Rewrite 70 website repos
- Ask the operator questions