Prepare native isolated directory recovery and offline service images
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a13eab-1e6a-7b33-9c37-372e90ada3a2
This commit is contained in:
parent
31f483966c
commit
d5484bb90a
9 changed files with 815 additions and 7 deletions
|
|
@ -28,7 +28,7 @@ These are retrospective task records of evidenced work, not additional delivery
|
|||
or newly granted authority. The earlier dated narrative remains in Git at
|
||||
`cc2dd01`; its evidence references are carried into the tasks below.
|
||||
|
||||
**Current position:** 16 tasks done; 2 in progress; 1 ready to start (`todo`);
|
||||
**Current position:** 18 tasks done; 2 in progress; 1 ready to start (`todo`);
|
||||
8 waiting on explicit prerequisites. These are task counts, not an effort-based
|
||||
completion percentage. Assignees are also written in task descriptions because
|
||||
the current Forge projector does not populate the dedicated Hub assignee field. The outage-retrieval tool and restore-packet draft are now prepared;
|
||||
|
|
@ -390,7 +390,7 @@ id: NK-WP-0049-T15
|
|||
status: progress
|
||||
priority: high
|
||||
assignee: codex
|
||||
depends_on: [NK-WP-0049-T08, NK-WP-0049-T13, NK-WP-0049-T27]
|
||||
depends_on: [NK-WP-0049-T08, NK-WP-0049-T13, NK-WP-0049-T27, NK-WP-0049-T28, NK-WP-0049-T29]
|
||||
state_hub_task_id: "1d1eb903-a4b0-5bc4-a421-0b842d7f68ae"
|
||||
```
|
||||
|
||||
|
|
@ -408,6 +408,12 @@ matching images independently, obtain private existing-user/MFA test inputs and
|
|||
review version-specific native commands with service owners. Incorporate T02's
|
||||
ledger before submitting current-caller acceptance.
|
||||
|
||||
2026-10-16 checkpoint: T28 completed the exact local image save/load/inspect
|
||||
and T29 prepared and natively tested the bounded LLDAP stage. Its actual owner
|
||||
run is T16 and can proceed independently of the remaining multi-service packet.
|
||||
The other service adapters, matching archive/runtime lineage and private
|
||||
existing-user/MFA inputs are still required; no blanket T15 completion is claimed.
|
||||
|
||||
**Done when:** service owners accept the exact targets/procedure, existing-user
|
||||
and MFA test identities/input custody are available without posting secrets,
|
||||
outbound notification/provider writes are disabled, and every required new
|
||||
|
|
@ -422,8 +428,8 @@ id: NK-WP-0049-T16
|
|||
status: wait
|
||||
priority: high
|
||||
assignee: codex
|
||||
depends_on: [NK-WP-0049-T15]
|
||||
blocking_reason: "Await the accepted isolated restore packet and independently supplied existing-user test credentials; no production restore is admitted by task refinement."
|
||||
depends_on: [NK-WP-0049-T13, NK-WP-0049-T29]
|
||||
blocking_reason: "Await the private owner run of the prepared local-only LLDAP restore with the existing backup-era user password and independent age key; executor, target, images and native synthetic checks are ready in T29."
|
||||
state_hub_task_id: "b64d4d6a-e851-58d1-9929-f03343147de0"
|
||||
```
|
||||
|
||||
|
|
@ -439,6 +445,17 @@ provider writes/outbound effects stay confined; cleanup is verified. Native
|
|||
fixtures from T05 and SQLite integrity from T13 do not satisfy this current-data
|
||||
acceptance. Record only safe counts, identities and outcomes.
|
||||
|
||||
|
||||
2026-10-16 refinement: the concrete LLDAP stage is prepared independently in
|
||||
T29, on the fixed local recovery engine with no external network/ports/host
|
||||
mounts. It no longer waits for the entire multi-service T15 packet. All-image
|
||||
local save/load evidence is T28. **Unblock:** run
|
||||
`bash tools/bootstrap-recovery/run-isolated-lldap.sh EXISTING_USER /tmp/nk49-offline-handoff-1X660a5t/transfer.json`
|
||||
in the owner's private terminal. Supply only the age key and existing backup-era
|
||||
password at hidden prompts; return the safe receipt/outcome. No production
|
||||
credential grant or directory write is part of this check. Existing-user input
|
||||
availability remains unconfirmed. T15 still owns the other service lanes.
|
||||
|
||||
## Prove restored Authelia storage and OIDC continuity
|
||||
|
||||
```task
|
||||
|
|
@ -750,6 +767,58 @@ archive/runtime image-lineage matching and independent image availability,
|
|||
private existing-user/MFA inputs and owner-reviewed native commands remain T15;
|
||||
no service restore, production change or owner acceptance is claimed.
|
||||
|
||||
## Stage and verify the five exact service images for local offline recovery
|
||||
|
||||
```task
|
||||
id: NK-WP-0049-T28
|
||||
status: done
|
||||
priority: high
|
||||
assignee: codex
|
||||
depends_on: [NK-WP-0049-T27]
|
||||
```
|
||||
|
||||
**Accountable worker:** codex.
|
||||
|
||||
Completed 2026-10-16. All five pinned references (PostgreSQL, LLDAP, Authelia,
|
||||
KeyCape, privacyIDEA) were inspected on the fixed local Linux Docker engine
|
||||
`bnt-lap001`, ID `74f93783-6cef-43a8-a3c4-f62586cd3bc1`. Missing LLDAP and
|
||||
privacyIDEA images were pulled only by their observed immutable digests. Saved a
|
||||
private 347,521,536-byte image archive, loaded it and re-inspected every exact
|
||||
reference. Evidence and archive SHA256/location:
|
||||
`docs/evidence/2026-10-16-identity-outage-recovery/offline-service-images.json`.
|
||||
|
||||
The local drill no longer requires the production registry. This is not off-host
|
||||
image escrow or proof of historical mutable-tag/backup lineage; those limits
|
||||
remain in T15. No service custody or age key was supplied to image caching.
|
||||
|
||||
## Prepare and verify the bounded native LLDAP recovery executor
|
||||
|
||||
```task
|
||||
id: NK-WP-0049-T29
|
||||
status: done
|
||||
priority: high
|
||||
assignee: codex
|
||||
depends_on: [NK-WP-0049-T13, NK-WP-0049-T27, NK-WP-0049-T28]
|
||||
```
|
||||
|
||||
**Accountable worker:** codex; operator retains actual private recovery inputs.
|
||||
|
||||
Completed 2026-10-16. `isolated-lldap.py` and `run-isolated-lldap.sh` provide the
|
||||
exact owner-run stage in `docs/identity-service-restore-packet.md`: fixed local
|
||||
engine/images, no remote Docker endpoint, original key/seed/JWT/directory data,
|
||||
Linux-tmpfs decryption, memory/stdin-only private inputs, network-none/read-only
|
||||
containers, isolation inspection before import, actual existing-user bind,
|
||||
explicit invalid-credential denial, stable directory rows and cleanup checks.
|
||||
Missing original server keys are refused; reset/replacement/notification paths
|
||||
are disabled. No live Kubernetes/OpenBao/SSO path or provider grant is used.
|
||||
|
||||
Evidence: `tests/test_isolated_lldap_recovery.py` exercises the actual pinned
|
||||
image, disposable retained-account directory and a full synthetic encrypted
|
||||
bundle through the same native executor. The private real-bundle run and its
|
||||
acceptance remain T16; fixture success is not actual user/MFA/audit recovery.
|
||||
See `isolated-lldap-preparation.json` in the October16 outage evidence directory
|
||||
for exact test/source/target provenance and limitations.
|
||||
|
||||
## Accept remaining recovery and caller evidence and close the G08 handoff
|
||||
|
||||
```task
|
||||
|
|
@ -769,7 +838,7 @@ Owner boundary: NetKingdom, Platform and affected service owners, with Custodian
|
|||
G08 receiving the final evidence. The completed archive/job milestones remain
|
||||
accepted independently of this final gate.
|
||||
|
||||
**Done when:** T02 and T15–T27 have their stated completed or explicitly accepted
|
||||
**Done when:** T02 and T15–T29 have their stated completed or explicitly accepted
|
||||
handoff outcomes; service authentication/token/audit proof and current/legacy
|
||||
caller dispositions are accepted; the source workplan and projected tasks agree;
|
||||
and G08 has an exact evidence/handoff record. Record actionable residuals as live
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue