ADMIN_PASSWORD={{ lookup('users', 'administrator').password | dotenv_quote }} ADMIN_USERNAME={{ lookup('users', 'administrator').username | dotenv_quote }} APP_BASE_URL={{ lookup('tls', application_id, 'url.base') }} BASEROW_BASE_URL={{ lookup('tls', application_id, 'url.base') | dotenv_quote }} BIBER_PASSWORD={{ lookup('users', 'biber').password | dotenv_quote }} BIBER_USERNAME={{ lookup('users', 'biber').username | dotenv_quote }} CANONICAL_DOMAIN={{ lookup('domain', application_id) | dotenv_quote }} # nocheck: playwright-service-gate — covered by sys-svc-mail integration tests, not the persona surface EMAIL_SERVICE_ENABLED={{ lookup('config', application_id, 'services.email.enabled') | string | lower }} LOGOUT_SERVICE_ENABLED={{ lookup('config', application_id, 'services.logout.enabled') | string | lower }} MATOMO_BASE_URL={{ lookup('tls', 'web-app-matomo', 'url.base') | dotenv_quote }} MATOMO_SERVICE_ENABLED={{ lookup('config', application_id, 'services.matomo.enabled') | string | lower }} MCP_SERVICE_ENABLED={{ lookup('config', application_id, 'mcp.enabled') | string | lower }} NODE_TLS_REJECT_UNAUTHORIZED=0 OIDC_ISSUER_URL={{ OIDC.CLIENT.ISSUER_URL | dotenv_quote }} # nocheck: persona-block-rationale — with SSO off, templates/env.j2 renders `PROXY_HEADER_SSO=false` and the trusted-header bridge is dead, leaving only Baserow's own sign-in form, which asks for an e-mail address. The one account that exists is the Django superuser from tasks/01_manager_ops.yml, inserted straight through the ORM by files/bootstrap_admin.py keyed on `BASEROW_BOOTSTRAP_ADMIN_USERNAME` (vars/main.yml), so the Keycloak username the helper types never matches that form's identifier. PERSONA_ADMINISTRATOR_BLOCKED={{ 'false' if (lookup('config', application_id, 'services.sso.enabled') | bool) else 'true' }} # nocheck: persona-block-rationale — meta/services.yml `sso.oauth2.allowed_groups` contains only the web-app-baserow administrator RBAC group, so biber is denied at the oauth2-proxy; with SSO off nothing provisions a Baserow account for biber either — tasks/01_manager_ops.yml seeds the superuser and nobody else. PERSONA_BIBER_BLOCKED=true SEAWEEDFS_ADMIN_PASSWORD={{ lookup('users', 'administrator').password | dotenv_quote }} SEAWEEDFS_ADMIN_USERNAME={{ lookup('users', 'administrator').username | dotenv_quote }} SEAWEEDFS_APP_BUCKET={{ lookup('objstore', application_id, 'bucket') | dotenv_quote }} SEAWEEDFS_FILER_URL={{ lookup('canonical_url', 'web-app-seaweedfs', 'filer', consumer=application_id) | dotenv_quote }} SEAWEEDFS_SERVICE_ENABLED={{ lookup('config', application_id, 'services.seaweedfs.enabled') | string | lower }} SSO_SERVICE_ENABLED={{ lookup('config', application_id, 'services.sso.enabled') | string | lower }}