← Back to Productiviti

Security

Last updated: 18 April 2026

We handle business data — reviews, invoices, contracts, customer conversations. This page is an honest account of how it's protected, what we're actively working on, and what's not yet in place.

Multi-tenant isolation

In place

Every row of tenant data in the database is scoped by tenant_id and enforced by Postgres Row-Level Security policies. Every query we run sets the tenant context via SELECT set_config('app.current_tenant', $1, true), and the database itself refuses to return rows that don't match. A cross-tenant leak would require a Postgres-level vulnerability, not an application bug.

Encryption

In place
  • In transit: TLS 1.2+ on every connection (Cloudflare + Vercel + Railway).
  • At rest: AES-256 via Supabase disk encryption.
  • Sensitive credentials (OAuth tokens to your third-party services): encrypted at the application layer with AES-256-GCM before being stored. Even a compromised database doesn't yield plaintext tokens.

Authentication

In place

Clerk manages all authentication. We never see or store passwords. Supported sign-in methods:

  • Google, Apple, and Microsoft SSO
  • Passwordless magic links
  • WebAuthn / passkeys
  • SSO (SAML, OIDC) on our Business tier (coming)

Sessions are short-lived JWTs signed by Clerk. Every API call verifies the token server-side against Clerk's JWKS.

Observability & audit

Being hardened
  • All backend exceptions captured in Sentry with tenant-scoped context (never raw PII).
  • Every user action that changes data writes an audit record (who, when, what, before/after).
  • All AI outputs — drafts, analyses, decisions — are retained with their full prompt + model + cost for replay and review.

Human-in-the-loop by default

In place

Productiviti agents never send, post, or publish anything without explicit user approval, unless you have intentionally enabled auto-approve for that specific agent. The default is draft + review, even for paid tiers. Approvals are logged with the exact reviewer, timestamp, and edit diff.

Compliance

In progress
  • SOC 2 Type 1 audit scheduled for Q3 2026
  • GDPR-aligned by architecture (DPO available, 30-day deletion, export)
  • CCPA-aligned (data access, deletion, opt-out)
  • Australian Privacy Act aligned (APP 1-13)
  • Industry-specific credentials (AHPRA for health, ABN verification for AU trades) planned for the relevant industry packs.

Operational practices

In place
  • Code changes reviewed before merge; automated tests on pull requests.
  • Secrets managed via platform vaults (Railway + Vercel), rotated on compromise.
  • Principle of least privilege on all infrastructure access.
  • Database backups with point-in-time recovery.
  • Quarterly credentials rotation on shared third-party services.

Report a vulnerability

Open

We take responsible disclosure seriously. If you find a vulnerability, please email security@productiviti.net with a description and, if possible, a proof of concept. We respond within 48 hours and commit to public credit (if you want it) after a fix ships.

What we don't claim yet

We are a young product. We have not yet completed a SOC 2 audit. We are not HIPAA-covered. We do not have ISO 27001. If your organisation requires any of these, talk to us — we can walk you through our controls, timeline, and current pre-audit documentation.