Tenant isolation
Supabase row-level security and church-scoped membership checks restrict personal and church records. Negative tests cover cross-church and normal-member access.
Veil handles confessions, prayer and church records. This page distinguishes controls that exist today from work still required. It is not a certification, penetration-test report or claim of perfect security.
Supabase row-level security and church-scoped membership checks restrict personal and church records. Negative tests cover cross-church and normal-member access.
The anonymous confession-review table has no user_id column. Review content cannot be joined back to an account through that table.
Entitlements, quotas, Stripe price allowlists and privileged database credentials are enforced server-side. Service-role credentials are not shipped to browsers.
Operator review uses a restricted RPC that records actor, reason, time and target. Ordinary authenticated users cannot call it.
Stripe webhook signatures use timing-safe comparison and replay tolerance. Veil stores payment identifiers, not raw card numbers.
Sign-up, AI, account-data, notification and checkout paths use server-side authentication, authorisation and/or database-backed rate limits.
Production uses HTTPS/HSTS, clickjacking denial, MIME sniffing protection, restrictive referrer and browser-permission policies, and cross-origin opener/embedder/resource boundaries. OAuth popups remain allowed. External web-font requests have been removed.
Authenticated users can export and delete personal records. Optional consent choices can be withdrawn and withdrawal times are recorded.
'unsafe-inline'; moving them to hashed or nonced scripts remains hardening work.Email security@veildaily.com with “Veil security report” in the subject. Include the affected URL or component, impact, reproduction steps and any minimal proof. Encrypt sensitive details before sending if possible; request a secure channel in the first message.
We aim to acknowledge a valid report within 3 business days and provide an initial assessment within 10 business days. These are public-beta targets, not guaranteed service levels. There is currently no paid bug-bounty programme.
In scope: veildaily.com and Veil-owned code served from it. Out of scope: Vercel, Supabase, Stripe, Google, PostHog, getBible and other third-party infrastructure; report issues in those services to their owners.
The machine-readable disclosure policy is at /.well-known/security.txt. Privacy rights and subprocessor information are in the privacy policy; church contract controls are in the DPA template.