mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 03:38:23 +00:00
Implements requirements 005, 006, and 007. 005: per-application Keycloak `group-ldap-mapper`s anchor each app's role groups under `/roles/<application_id>/<role_name>` (and, for tenant-aware apps, `/roles/<application_id>/<tenant>/<role_name>`). The flat-CN LDAP layout keeps each CN globally unique so Keycloak's group-tree resolver never collides; per-app mappers use the LDAP `description` as the visible Keycloak group name to keep the path free of redundant prefixes. Migration purges legacy pre-005 entries and forces a Keycloak `logout-all` so stale tokens drop pre-005 group paths. 006: per-service `<SERVICE>_SERVICE_ENABLED` env flags and the `service-gating.js` helper let role specs `skipUnlessServiceEnabled` cleanly when a shared service is missing or `SERVICES_DISABLED` is set; `MODE_CI` markers (`INFINITO_MAKE_DEPLOY`, `GITHUB_ACTIONS`, `ACT`) propagate through the deploy CLI into the test stage. 007: WordPress->Discourse round-trip Playwright scenario gated on the `web-app-discourse` deployment. WordPress Playwright runs 5/5 green on the single-site flow; the multisite + Discourse scenarios are correctly skipped when their service prerequisites are absent. The `rbac_group_path` lookup is the single sanctioned producer for OIDC group paths and is wired into every consumer (yourls, lam, minio, openwebui, pgadmin, phpldapadmin, phpmyadmin, prometheus, xwiki). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>