Security at Useboards

Useboards stores IT-governance data — your system catalog, ownership, access requests, compliance evidence. This page describes the controls we have in place. Last reviewed 2026-06-08. Have questions or found something? Email security@useboards.com.

Tenant isolation

Each customer's data lives in a single shared Postgres database, fenced at three layers:
  • App layer: the ORM client auto-injects tenant_id into every query for tenant-owned tables. A query that forgets tenant_id fails closed (throws) rather than reading across tenants.
  • DB column constraints: every tenant-owned row has a NOT NULL tenant_id; child rows have a tenant_id denormalized from the parent.
  • DB triggers: 33 BEFORE INSERT/UPDATE triggers reject any child row whose tenant_iddoesn't match its parent — cross-tenant writes are blocked at the database, not just the application.
A read-replica isolation test (scripts/verify-rls.ts) is part of our release process — covers no-context throws, child auto-stamping, mismatched-parent rejection, and append-only audit.

Encryption

  • In transit: TLS 1.2/1.3 only at the load balancer (managed cipher policy ELBSecurityPolicy-TLS13-1-2-2021-06). Application-to-database connections use TLS verify-full — server certificate validated against the Amazon Root CA chain in the container image.
  • At rest: AES-256 via AWS KMS on RDS, EBS, S3, and Secrets Manager. Per-tenant data is logically isolated but shares the encrypted storage.
  • Secrets: session signing keys, database credentials, OIDC client secrets stored in AWS Secrets Manager. Never logged or surfaced in admin UI.

Authentication and access

  • Magic-link sign-in via Amazon SES (the only password-equivalent flow — there are no passwords to leak).
  • Multi-factor authentication: TOTP (Authenticator apps) and FIDO2 / WebAuthn passkeys. Admins can require MFA per role.
  • SSO: Microsoft Entra (OIDC) and SAML 2.0 (Okta, JumpCloud, Google Workspace, Auth0, etc.). Group-sync uses a discover-then-import model — admins control which IdP groups create Useboards groups.
  • Authorization: role-based, driven by a single source-of-truth permissions matrix. Server checks and UI visibility derive from the same matrix — they can't diverge.
  • Session timeouts: 30-minute rolling cookie. Administrators idle out at 15 minutes; regular users at 30 minutes (NIST 800-63B AAL2 / PCI DSS 8.2.8 for privileged).

Audit logging and retention

Every create, update, and delete on a tenant-owned record writes to an append-only event_log. A database trigger rejects UPDATE and DELETE on this table — the trail is tamper-evident.
  • Hot (live database): 15 months. Queryable in-product, immediately searchable for audits and incident response.
  • Cold (S3 + Glacier Deep Archive): rotated monthly after the 15-month hot window; retained 7 years total. Restorable on request (24-48h turnaround).
  • Notification log (email evidence): same 15 mo / 7 y schedule.
  • Legal hold: on subpoena, litigation, or regulator request, retention can be frozen for an individual workspace — audit data stays in hot storage indefinitely until the hold is released.
  • Tenant deletion: when a workspace is closed, the full event_log is exported to Glacier Deep Archive before the live rows are purged — the regulatory trail survives 7 years past deletion.
  • Customer export: tenant ADMIN can request a full audit-log export at any time via Configuration → Workspace.
See data retention policy for the full schedule.

Backups and disaster recovery

  • Database: daily automated snapshots, 30-day retention. Manual pre-deploy snapshots before each production deploy as a catastrophe-insurance step.
  • File storage: S3 with versioning and cross-region replication to us-west-2.
  • Verified restore: we periodically restore the latest snapshot to an isolated instance and verify data integrity. Observed RTO ≈ 5 minutes for a 50 GB database.

Infrastructure

  • Hosting: AWS, region us-east-1 primary with cross-region S3 replication. Production and development environments live in separate AWS accounts.
  • Network: application servers in private subnets, no direct internet exposure; outbound through NAT. Database in dedicated data subnets, accessible only via RDS Proxy.
  • DDoS: AWS Shield Standard (L3/L4) auto-enabled. AWS WAF v2 with six AWS managed rule groups (AWSCommonRuleSet, KnownBadInputs, SQLi, LinuxRuleSet, IPReputation, BotControl) plus rate-based rules.
  • Continuous monitoring: AWS GuardDuty (threat detection), AWS Config (resource change tracking), CloudTrail multi-region with 7-year retention.

Vulnerability management

  • Dependency scanning: gitleaks pre-commit secret scan; npm audit on CI; CodeQL planned.
  • Runtime error tracking: Sentry (managed). PII is not deliberately captured — request bodies are not auto-attached.
  • Penetration testing: third-party annual pen test planned before general availability. We share the executive summary with paying customers on request.
  • Secure SDLC: two-tier automated test suite (unit + browser-driven UX smoke), required code review, deploy-from-main only, automated dev-mirrors-prod verification on every prod deploy.

Compliance and privacy

  • SOC 2 Type II: in progress.
  • GDPR: tenant deletion is a customer-initiated, two-step soft-delete with a 30-day grace period (cancel, export, or let cron purge). Data subject requests (DSR) handled by tenant admin tools. Sub-processor list below.
  • Data residency: production data is stored in AWS us-east-1. EU residency available on request once we have an EU customer to justify the cost (single-region for now).

Sub-processors

VendorPurposeData
Amazon Web ServicesHosting, storage, email, monitoringAll customer data
StripePayment processing, subscription billing, tax calculationWorkspace admin name + email, billing address, payment card metadata (no raw card numbers — Stripe Checkout)
SentryRuntime error trackingStack traces, request route, tenant ID (no PII)
Anthropic (Claude)AI extraction for uploaded SOC 2 reports (admin opt-in, off by default)Contents of SOC 2 PDFs admin uploads when AI extraction is enabled
GitHubSource code hosting + CINo customer data
Microsoft / Google / Okta / etc.Customer-configured SSO IdPIdentity tokens only (no Useboards data leaves)

We notify customers via email of new sub-processors before they take effect. No customer data is sold or shared with marketing/analytics vendors.

Reporting a security issue

Email security@useboards.com. We respond within one business day and credit researchers in our advisory feed after fixes ship. No bug bounty program yet — we're a small team and want to read every report personally.