{ email office@linumiq.com on_demand_tls { # SECURITY (R2/F3): closed allow-list authorizer. The edge function returns # 200 only for reserved hosts (apex/app/api) and subdomains registered in # the tunnels table; 403 otherwise. This prevents unbounded on-demand # certificate issuance for arbitrary hostnames. ask http://supabase-edge-functions:9000/check-subdomain } } # SECURITY (R4/F10/W5): baseline response-hardening headers applied to the # LinumIQ-controlled surfaces (apex/app/api). HSTS forces HTTPS for a year and # is safe for first-party hostnames we fully control. (security_headers) { header { Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" X-Content-Type-Options "nosniff" X-Frame-Options "SAMEORIGIN" Referrer-Policy "no-referrer" Permissions-Policy "geolocation=(), microphone=(), camera=()" Cross-Origin-Opener-Policy "same-origin" # SECURITY (R6/W6): ENFORCING Content-Security-Policy for the prod Next.js # dashboard (app.linumiq.net) and the apex redirect. 'unsafe-inline' is # required for Next.js App-Router inline flight-data