Security
Effective: 27 May 2026
Last updated: 27 May 2026
EventOS handles event operations data for volunteer-run organisations. This page explains the technical and organisational measures we use to keep that data safe.
Hosting and data residency
- All application data is stored in Supabase (Postgres) in the
ap-southeast-2(Sydney) region. - The web app runs on Vercel, with functions pinned to
syd1(Sydney). - Email delivery uses Resend (US).
- Rate-limit state is held in Upstash Redis (Australia).
- Payments (when paid plans launch) are processed by Stripe.
We do not transfer EventOS data outside the regions listed above.
Encryption
- In transit. All traffic uses HTTPS with TLS 1.2 or higher.
- At rest. AES-256, managed by Supabase and the underlying cloud providers.
- Passwords. Hashed by Supabase Auth. We never see plain-text passwords.
- Tokens. Volunteer manage tokens and fetcher tokens are 32-byte cryptographically random values.
Access control
- Row-Level Security is enabled on every application table. The anonymous public key cannot read user data.
- Multi-role memberships are enforced server-side on every authenticated call.
- Last-admin guard prevents accidentally locking yourself out of your organisation.
- Service-role credentials are used only on the server, never exposed to the browser.
- Team invites are email-bound, single-use, expire after 7 days, and are revoked on accept or resend.
Application security
- Strict Content Security Policy, HSTS,
X-Frame-Options: DENY,X-Content-Type-Options: nosniff, restrictive Referrer-Policy and Permissions-Policy. - Rate limiting on authentication and public mutations.
- File upload validation that sniffs magic bytes for images.
- CSV exports sanitised to prevent formula injection in spreadsheets.
- Generic error messages on auth flows to prevent account enumeration.
- Timing-safe comparison on cron and webhook secrets.
Software development
- TypeScript throughout, type-checked on every build.
- Continuous integration runs typecheck, lint, unit tests, and
pnpm auditon every push. - Three-environment setup: local, staging, production.
- Production deploys only via signed git tag (
v*.*.*).
Backups and recovery
- Supabase performs daily encrypted backups, retained for up to 35 days.
- Point-in-time recovery available on the production database.
Incident response
If we discover a security incident affecting your data we will:
- Investigate and contain the incident as quickly as practical.
- Notify affected account holders without undue delay, normally within 72 hours of confirming the impact.
- Notify the Office of the Privacy Commissioner where required under the Privacy Act 2020.
- Provide a post-incident report explaining what happened, what data was affected, and what we changed.
To report a suspected vulnerability or incident, email security@eventos.nz. We acknowledge good-faith disclosures.
Sub-processors
Our current sub-processors are listed at /legal/sub-processors. We notify account holders by email at least 14 days before adding a new one that handles personal data.
What we don't yet have
We are honest about gaps. As of this version we do not yet have:
- A SOC 2 or ISO 27001 certification.
- A formal third-party penetration test (planned before paid launch).
- 24/7 on-call coverage; response is best-effort during NZ business hours.
- A bug-bounty programme.
We will update this page as these change.
Contact
Security disclosures: security@eventos.nz
Privacy: privacy@eventos.nz