From a15c087e0bead91591b8be94c10d52cd490698bf Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Sat, 30 May 2026 08:12:19 +0100 Subject: [PATCH] =?UTF-8?q?claim(Q3.1):=20lasuite-docs=20full=20lifecycle?= =?UTF-8?q?=20GREEN=20=E2=80=94=20P2=20parity=20+=20P3=20create-doc=20?= =?UTF-8?q?=C2=A74.3=20+=20OIDC-with-keycloak=20+=20P4=20data-integrity=20?= =?UTF-8?q?+=20P5=20keycloak=20dep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All 5 tiers + 5 functional pass, deploy-count=1 (warm keycloak per-run realm), real upgrade crossover 0.3.2->0.3.3, P4 backup/restore/upgrade markers pass, per-run realm deleted, clean teardown. Closes the last 'partial' §5 recipe. Log /root/ccci-lasuite-docs-q31.log. Awaiting Adversary. --- machine-docs/STATUS-2.md | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/machine-docs/STATUS-2.md b/machine-docs/STATUS-2.md index 9e7e9e4..218d7a7 100644 --- a/machine-docs/STATUS-2.md +++ b/machine-docs/STATUS-2.md @@ -52,8 +52,8 @@ tree must carry: §5 recipes with Adversary PASS: custom-html, n8n (Q1), keycloak (Q2), cryptpad (Q3.4), lasuite-drive (Q3.2), lasuite-meet (Q3.3), immich (Q3.5), matrix-synapse (Q4.1), mumble (Q4.2), bluesky-pds (Q4.3), **ghost (Q4.4 ✅)**, mattermost-lts (Q4.5), uptime-kuma (Q4.8), mailu (Q4.9). Still open: -- **lasuite-docs (Q3.1)** — partial (parity + 2 specific + OIDC); deeper OIDC ports deferred - (DEFERRED.md). NEXT-CANDIDATE: confirm full-lifecycle green + formal gate claim. Node-needed. +- **lasuite-docs (Q3.1)** — ✅ full-lifecycle GREEN @2026-05-30, **CLAIMED** (see ## Gate Q3.1), + awaiting Adversary. (Was the last "partial" §5 recipe.) - **plausible (Q4.7)** — §4.3 floor Adversary-verified (install,custom); full upgrade/backup/restore (P4) NOT yet claimed. Heavy: ClickHouse cold-boot flaky 1-in-2 (retry/readiness margin). Node-needed. - **drone (Q4.10)** — was BLOCKED on operator host /etc/timezone deploy. A `drone_ci_commoninternet_net` @@ -286,6 +286,28 @@ SKIP no longer yields a GREEN `!testme`. ## Gate +**Gate: Q3.1 lasuite-docs — CLAIMED @2026-05-30, awaiting Adversary.** Full lifecycle GREEN incl. +SSO (keycloak) dep + OIDC + §4.3 create-doc + P4 data-integrity. + +- **WHAT:** Q3.1 lasuite-docs — P1 coverage (full green install+upgrade+backup-restore), P2 (parity + ports, `tests/lasuite-docs/PARITY.md`), P3 (§4.3 create-doc round-trip + OIDC-with-keycloak + password-grant), P4 (data-integrity marker survives restore), P5 (DEPS=keycloak auto-deployed, + SSO realm/client setup automated via `setup_custom_tests.sh` + `harness.sso`). +- **HOW (Adversary cold-verify, own clone):** + `RECIPE=lasuite-docs STAGES=install,upgrade,backup,restore,custom cc-ci-run runner/run_recipe_ci.py` + (uses warm keycloak via a per-run realm `lasuite-docs-<6hex>`, torn down at run end). +- **EXPECTED:** RUN SUMMARY `deploy-count = 1`, `deps deployed: ['keycloak']`; all 5 tiers `pass`; + custom tier 5 functional PASS — `test_auth_required::test_users_me_requires_auth`, + `test_create_doc::test_create_doc_and_read_back` (§4.3), `test_health_check::test_lasuite_docs_returns_200`, + `test_oidc_login::test_oidc_login_via_keycloak`, + `test_oidc_with_keycloak::test_oidc_password_grant_against_dep_keycloak`; P4 overlays + `test_backup_captures_state` / `test_restore_returns_state` / `test_upgrade_preserves_data` PASS; + real upgrade crossover `0.3.2+v5.1.0 → 0.3.3+v5.1.0` (chaos-version `290a8ad7`); per-run realm + deleted at teardown; clean teardown. +- **WHERE:** cc-ci `tests/lasuite-docs/` (suite predates this run; SSO-dep refactor `41ede13` + + create-doc/oidc ports `cd25f52`). Builder full-run log on node `/root/ccci-lasuite-docs-q31.log`. + The deeper-OIDC DEFERRED entry is CLOSED (deeper ports + create-doc landed). + **Gate: Q4.4 ghost — ✅ Adversary PASS @2026-05-30 (REVIEW-2 `baa7ad8`). DONE.** Cold full lifecycle GREEN (5 tiers, deploy-count=1), real upgrade crossover 1.1.1→1.3.0 (chaos `6d6227f7+U`, HC1 preserved), create_post_roundtrip + P4 restore/backup/upgrade markers PASS; P4 restore NON-VACUOUS via