Architected for stewardship.
HOAxis is the system of record for your community's governance decisions. We treat that responsibility the way we'd want our own association's data treated — with hard isolation, full auditability, and no surprises about where it lives or who can see it.
Schema-per-tenant Postgres
Every HOAxis tenant gets a dedicated Postgres schema. Queries are routed to the right schema by host-resolution middleware before they reach the application code. Cross-tenant SELECTs aren't prevented by application logic — they're refused by the database.
- Each tenant: own schema name, own search_path
- Per-tenant postgres.js client, per-schema lock keys
- Tenant's board credentials cannot reach platform.*
- Platform operator session is a separate cookie
Immutable audit logs
Every mutation — homeowner action, staff action, system event — appends a row to an audit log with the actor, the entity, the field, and the before/after values. The platform layer keeps a separate audit log of operator actions across tenants. Logs are append-only.
- Field-level diffs inside the tenant
- Platform-wide log for operator actions
- Every API mutation logs an event
- Searchable / filterable in the operator console
Authentication and access control
Staff accounts can enroll in time-based one-time-password 2FA using any authenticator app. Multi-role per user (a Treasurer can also be an ARC Member). Symmetric account lockout on repeated failed sign-ins with admin-clearable counters.
- iron-session cookies, secure + httpOnly + sameSite
- Per-user TOTP enrollment
- Multi-role assignments
- Failed-attempt counters + lockout window
Your data is yours
Standard Postgres. No proprietary file formats. Full CSV + JSON export at any time, including all audit logs. If you ever leave HOAxis, you walk away with everything — and we destroy our copy on request, evidenced in our SOC 2 report.
- CSV + JSON export of every table
- Includes audit logs
- Cancellation deletes within 30 days
- No proprietary data formats
TLS everywhere
Edge-network TLS for all customer traffic. Database connections require TLS (sslmode=require). Service-to-service calls within our infrastructure use mutual TLS or scoped service tokens.
- TLS 1.2+ to the edge
- sslmode=require on Postgres
- No insecure HTTP fallbacks
- Vercel-managed certificate rotation
Backups and incident response
Hosted Postgres providers (Vercel Postgres, Neon, Supabase) provide point-in-time recovery. We document our incident response playbook and notify affected tenants within 72 hours of any confirmed incident — well within most disclosure regulations.
- Provider-managed daily backups
- Point-in-time recovery (PITR)
- Documented incident response plan
- Tenant notification within 72 hours
How a request from your homeowner reaches your data.
Vercel edge terminates TLS and routes by host.
Resolves the tenant slug + schema from the host. No DB call on implicit subdomains.
Sets x-hoaxis-tenant-schema; downstream code never touches another tenant.
postgres.js client with search_path bound at connection time.
Every mutation also appends to the tenant's audit log before returning.
What we're working on, what's already in place.
Enforced at the Postgres connection level.
Tenant audit log + platform audit log.
Vercel edge + sslmode=require on Postgres.
Provided by managed Postgres.
Optional for staff; enforceable by Board policy.
Provider-managed daily backups + PITR.
CSV + JSON, including audit logs.
Audit window opening 2026; expect issuance late 2026.
Scheduled first independent test 2026.
Not applicable today — HOA data is not PHI.
US-only today; EU residency planned for 2027.
| Item | Status | Notes |
|---|---|---|
| Schema-per-tenant isolation | Live | Enforced at the Postgres connection level. |
| Field-level audit log | Live | Tenant audit log + platform audit log. |
| TLS in transit | Live | Vercel edge + sslmode=require on Postgres. |
| Encryption at rest | Live | Provided by managed Postgres. |
| Per-user 2FA (TOTP) | Live | Optional for staff; enforceable by Board policy. |
| Point-in-time recovery | Live | Provider-managed daily backups + PITR. |
| Customer-controlled data export | Live | CSV + JSON, including audit logs. |
| SOC 2 Type II | In progress | Audit window opening 2026; expect issuance late 2026. |
| Penetration test (annual) | In progress | Scheduled first independent test 2026. |
| HIPAA BAA | Planned | Not applicable today — HOA data is not PHI. |
| GDPR / international hosting | Planned | US-only today; EU residency planned for 2027. |
Need our most recent security questionnaire response, DPA, or subprocessor list? Reach out — we ship those within one business day.
We'll fill it out.
Board liability counsel asking for an SBOM, a DPA, a subprocessor list? Reach out — we treat security review as a feature, not a chore.