Bind reset observation to accepted account and prepare operator steps
Some checks failed
Use-case regression gate / usecase-regressions (push) Failing after 2m1s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a18e2d-f513-7742-b8e7-12af0b744ff3
This commit is contained in:
tegwick 2026-10-31 13:54:50 +01:00
parent f763379882
commit 028f813434
3 changed files with 130 additions and 4 deletions

View file

@ -154,8 +154,8 @@ classification has been inferred from these fixtures.
Owner T11 records this completed rehearsal; T10 retains the supported runtime path.
Before an executable proposal, obtain owner-authorized, value-free classification
of the intended reset subjects and current bind memberships. Review a service-owned
password-write grant against SI-3 and its complete non-LLDAP-admin reach, and a
separate supported recovery route for directory administrators. Preserve the
password-write grant against SI-3 and its complete non-LLDAP-admin reach, and, if the accepted subject is a directory administrator, a
supported recovery route for that subject. Preserve the
existing human-admin separation and MFA requirements. A role change alone is not
a complete proposal, and no runtime grant or policy exception is approved here.
@ -167,3 +167,42 @@ scenarios still pass; the full `make check` gate passes 546 tests with zero
failures/errors/skips. These checks add neither productive acceptance nor a
current membership observation. Existing expiry/browser/app proof retains its
separate scope; this matrix does not retest the complete issuer/MFA journey.
## Current-role observation for the accepted account
The October6 acceptance record names **tegwick**
(`history/20261006T185411Z-personal-workspace-acceptance.md`). Decision
8770d4ea-8538-4f88-a9f8-8bcfb0542603 corrects the earlier inference that a new route
for all directory administrators must precede this consumer's remedy. Check
tegwick's current membership first. If it is an LLDAP administrator, its supported
recovery path is required; otherwise retain the administrator exclusion under
existing NetKingdom recovery ownership. The admitted password-write scope still
requires explicit review. This preserves the accepted workflow and adds no grant.
The fixed-subject observer is prepared and tested (owner T12); actual observation
is owner T13. Run these commands in your own workstation terminal:
```bash
install -d -m 700 /home/worsch/.local/state/net-kingdom/reset-authority
python3 /home/worsch/net-kingdom/sso-mfa/k8s/lldap/reset-authority-observe.py \
--receipt /home/worsch/.local/state/net-kingdom/reset-authority/roles-20261031.json
```
Enter the **human admin account's password** at the hidden prompt. The tool already
selects tegwick, svc-authelia and admin; it asks for no username, token or backup
credential. Do not paste the password into chat. Return only its JSON result.
The existing NetKingdom bind helper uses this human-held input for authenticated
reads; the new observer reuses its bounded transport without credential discovery.
Expected status is `current_reset_roles_observed`. It creates a mode0600 local
receipt, signs in as admin and performs three read queries. It changes no group,
password, declaration or deployment, sends no reset email, and grants nothing.
TLS failures and unexpected/missing users refuse; do not bypass verification.
An existing receipt refuses without overwrite. A successful result proves current
role metadata only, not Authelia reset success, app authorization or acceptance.
Evidence: reset-observer-preparation-2026-10-31.json. The observer and shared
transport pass92 checks; four native owner cases pass and the final observer node
passes with unchanged directory metadata and verified fixture cleanup. Production
observation has not been performed during preparation.

View file

@ -0,0 +1,77 @@
{
"schema": "netkingdom.reset-observer-preparation.v1",
"status": "tested_ready_for_attended_read",
"owner_task": "NK-WP-0054-T12",
"operator_return_task": "NK-WP-0054-T13",
"consumer_task": "CSOC-WP-0015-T06",
"accepted_subject": "tegwick",
"acceptance_source": {
"repo": "coulomb-social",
"path": "history/20261006T185411Z-personal-workspace-acceptance.md",
"sha256": "15ac9e1af4d0cb16b854d1ecf5fa89b634b1479174b02143b5c341cb3b5df2c3"
},
"technical_binding_decision_id": "8770d4ea-8538-4f88-a9f8-8bcfb0542603",
"queries": [
"human admin role",
"svc-authelia roles",
"tegwick roles"
],
"private_input": "human admin password via terminal only",
"directory_mutations_available": false,
"production_observation_performed": false,
"password_reset_attempted": false,
"grant_approved": false,
"target_url": "https://lldap.coulomb.social",
"planned_private_receipt": "/home/worsch/.local/state/net-kingdom/reset-authority/roles-20261031.json",
"gates": {
"unit_and_transport": {
"tests": 92,
"failures": 0,
"errors": 0,
"skipped": 0,
"junit_sha256": "7ee639ba82c7100d7805cc01ca5c2a6c502550eac4abdb252ad3c7d8b1ac232b"
},
"native_split_regression": {
"tests": 4,
"failures": 0,
"errors": 0,
"skipped": 0,
"junit_sha256": "b35645a61c52f45d0e826e3986145212f45d4abc065026b42bd651f6f4b5fb41"
},
"final_native_observer": {
"tests": 1,
"failures": 0,
"errors": 0,
"skipped": 0,
"junit_sha256": "251831ae820081aa6e935d08c4e7854a1ad5cf840b8a41ae8af4add5f5406f2a"
}
},
"native_fixture": "pinned owner LLDAP fixture; synthetic credentials, loopback-only published ports; container and volume removal verified",
"lint": "passed",
"sources": [
{
"path": "sso-mfa/k8s/lldap/reset-authority-observe.py",
"sha256": "9f19c5551e2a93319c04c1b2fd0ddc0f7757fdff96ad18b81d7ee7bb393b75b9"
},
{
"path": "sso-mfa/k8s/lldap/lldap_admin.py",
"sha256": "5e39e2eac53846a97cd25151c0a4af1ffc0230db881a6325efb66de6a51bfc36"
},
{
"path": "identity-provisioner/provisioner.py",
"sha256": "a303a25d3b3876485c796a9ba0836ddaf0a0bec155b609790e028882ad983138"
},
{
"path": "identity-provisioner/group_provenance.py",
"sha256": "405e08eaaab7c21d618dff4db5970607806f32ab6c461effb81c737e32182b10"
},
{
"path": "tests/test_reset_authority_observer.py",
"sha256": "348fab447a4182357bf3f7d058b05c7d6088ae084d8e433e76ce5c39c513e152"
},
{
"path": "sso-mfa/k8s/lldap/test_bind_split.py",
"sha256": "ae69051a3df4596fe220306d88a28b2c12e42fbfe3587e02135e3684eb5f354a"
}
]
}