railiance-platform/docs/playwright-consumer-access.md
codex 60101b0932 Activate Playwright pilot with scoped consumer group and native evidence
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a13690-09e0-7cd1-964b-ec83cdbcd348
2026-10-13 20:55:31 +02:00

2.2 KiB

Playwright consumer access

The release 0.1.0 pilot is running in namespace playwright on railiance01. Platform owns its lifecycle and the playwright-consumers group binding; rapp-playwright owns the browser implementation, package Role and client.

The initial membership policy includes all identified platform humans and coding agents. The group binding is installed and tested. Mapping authenticated platform identities into that Kubernetes group is still open in RPF-WP-0056-T03; a KeyCape group alone would not establish Kubernetes access. No administrator kubeconfig is distributed and no broad system:authenticated binding is installed.

Once the caller has the supported group identity and API route:

kubectl -n playwright port-forward deployment/playwright 18081:8080 --address 127.0.0.1

In another terminal, from the existing rapp-playwright checkout:

python3 client/rapp_playwright.py preflight
python3 client/rapp_playwright.py trial --out .local/first-managed-trial

Use a new output directory each time. Keep run.json private: it contains the run capability. Download retained receipts/screenshots before the one-hour artifact expiry. Current targets are the bundled fixture and public OnCo home page; additional target admission remains separate from group membership.

Platform can recheck the native permission boundary without changing grants:

python3 scripts/verify_playwright_access.py --output /tmp/playwright-rbac.json

The verifier uses administrator impersonation solely for authorization checks. Its success is not consumer-login proof. It checks the cluster UID, exact Role and group binding, allowed discovery/forwarding and denied exec, Secrets, workload writes, foreign scope and nonmembers.

October 13 evidence: RBAC, runtime and restart, responsive keyboard trial. Native operator-driven trials passed before and after a same-image restart; completed screenshots survived with identical hashes. Actual consumer login, abrupt-interruption recovery and cross-version rollback remain unproven.