804b131ccb
Cascade Main -> Dev / Cascade main -> dev (push) Successful in 3s
Generic: Standards Compliance / Secret Scanning (push) Successful in 3s
Universal: Push Notifications / push-notify (push) Successful in 7s
Generic: Standards Compliance / License Header Validation (push) Successful in 3s
Generic: Standards Compliance / Repository Structure Validation (push) Failing after 5s
Generic: Standards Compliance / Coding Standards Check (push) Successful in 5s
Generic: Standards Compliance / Workflow Configuration Check (push) Failing after 4s
Generic: Standards Compliance / Documentation Quality Check (push) Failing after 3s
Generic: Standards Compliance / README Completeness Check (push) Failing after 3s
Deploy (Prod) / Deploy to Prod (push) Successful in 24s
Generic: Standards Compliance / Git Repository Hygiene (push) Successful in 4s
Generic: Standards Compliance / Line Length Check (push) Successful in 4s
Generic: Standards Compliance / Script Integrity Validation (push) Successful in 8s
Generic: Standards Compliance / File Naming Standards (push) Successful in 3s
Generic: Standards Compliance / Insecure Code Pattern Detection (push) Successful in 3s
Generic: Standards Compliance / Version Consistency Check (push) Successful in 41s
Generic: Standards Compliance / Dead Code Detection (push) Successful in 5s
Generic: Standards Compliance / File Size Limits (push) Successful in 3s
Generic: Standards Compliance / Binary File Detection (push) Successful in 4s
Generic: Standards Compliance / TODO/FIXME Tracking (push) Successful in 3s
Generic: Standards Compliance / Code Duplication Detection (push) Successful in 38s
Generic: Standards Compliance / Unused Dependencies Check (push) Successful in 37s
Generic: Standards Compliance / Dependency Vulnerability Scanning (push) Successful in 43s
Generic: Standards Compliance / Broken Link Detection (push) Successful in 3s
Generic: Standards Compliance / API Documentation Coverage (push) Successful in 3s
Generic: Standards Compliance / Accessibility Check (push) Successful in 3s
Generic: Standards Compliance / Performance Metrics (push) Successful in 3s
Generic: Standards Compliance / Enterprise Readiness Check (push) Successful in 40s
Generic: Standards Compliance / Repository Health Check (push) Successful in 39s
Generic: Standards Compliance / Terraform Configuration Validation (push) Successful in 7s
Generic: Standards Compliance / Code Complexity Analysis (push) Successful in 2m11s
Generic: Standards Compliance / Compliance Summary (push) Has been cancelled
Add an admin "Access" page to gate who can sign into the admin GUI via Google OAuth. Replaces the single env-var domain check with GUI-managed policy: - Signup mode (per-login decision): open (domain match auto-approves), approval (domain sign-ins queue as pending for admin approval), or allowlist/closed (only pre-approved emails). - Multiple allowed domains (seeded once from MT_OAUTH_ALLOWED_DOMAIN). - User allow-list: approve pending, add, block (kept so open-mode can't silently re-provision), remove. All actions audited. - adminAuth re-validates the OAuth session against the store each request, so a block/removal revokes access immediately rather than at 12h cookie expiry. HTTP basic auth still bypasses (no lockout risk while tightening policy). New store tables: settings (signup_mode, allowed_domains) + users. Blocked/ queued logins re-render the sign-in page with a status banner. Tests cover domain matching (incl. suffix-spoof) and all three signup modes. Authored-by: Moko Consulting Claude-Session: https://claude.ai/code/session_015UauDPfYC8S2mdUhoSK8zQ