CS
CSHUBB
Security Whitepaper · v1.2 · 2026

CSHUBB Security
Architecture Overview

A technical overview of CSHUBB's security architecture, data handling practices, compliance alignment, and operational security controls.

Supabase RLSPasswordless AuthAES-256TLS 1.2+HMAC WebhooksEncrypted Offsite BackupsGoogle API Limited UseSOC 2 AlignedGDPR Aligned
CSHUBB Security Whitepaper · Version 1.2 · July 2026
1. Executive Summary

Security-first by architecture, not afterthought

CSHUBB is a private, invite-only Customer Success workspace built for SaaS teams. Customer data is among the most sensitive business assets held by any organisation — it includes renewal dates, health scores, ARR figures, and internal collaboration history. CSHUBB was architected from day one with the assumption that security is non-negotiable.

This whitepaper describes the technical controls, architectural decisions, and operational practices that govern how CSHUBB stores, processes, and protects customer data. It is intended for security teams, compliance officers, and technical buyers evaluating CSHUBB for their organisations.

Key security guarantees
Zero passwords stored · Database-level tenant isolation (RLS) · AI keys never touch our servers · Full audit trail on every action · Passwordless authentication · Encryption at rest and in transit · Google OAuth 2.0 with minimum scopes and no email content stored on our servers · Independent encrypted offsite backups
2. Architecture Overview

Infrastructure stack

CSHUBB is built on a serverless, managed infrastructure stack. No custom server infrastructure is maintained. All components are provided by audited, enterprise-grade vendors.

LayerProviderRoleCertification
DatabaseSupabase (AWS)PostgreSQL + RLS + Auth + RealtimeSOC 2 Type II
CDN / DDoSCloudflareTLS termination, DDoS mitigation, CDNISO 27001, SOC 2
EmailResendTransactional email + SPF/DKIM/DMARCSOC 2 Type II
Serverless FunctionsSupabase Edge FunctionsPrivileged server-side operationsSOC 2 Type II
FrontendStatic CDNReact SPA served over HTTPSN/A

The Supabase service role key (admin-level) is stored exclusively in Edge Functions. It is never included in client-side code, never logged, and never transmitted outside the server-side execution environment.

Data residency
By default, all customer data is hosted on Supabase running on AWS infrastructure in ap-southeast-1 (Singapore), SOC 2 Type II certified with encryption enforced at rest and in transit. This is a performance/cost decision, not a security gap — region choice does not affect the security posture. EU data residency is available as a dedicated option for customers who require it contractually.
3. Authentication

Passwordless magic link authentication

CSHUBB uses passwordless authentication via Supabase Auth. Users receive a one-time magic link via email. Clicking the link issues a cryptographically signed JWT session. No password is ever stored, transmitted, or managed by CSHUBB or Supabase.

No passwords stored or hashed anywhere
Single-use tokens with short expiry
JWTs signed and validated server-side on every request
Session invalidated server-side on logout
Eliminates credential stuffing and brute-force attacks
Email domain verified at authentication time
Session refresh & replay protection
Sessions refresh automatically and silently in the background, so users aren't forced to re-authenticate constantly — but stale sessions still expire, and forced re-authentication is rate-limited to avoid disrupting normal use. Refresh tokens are protected by replay-attack detection, an industry-standard safeguard that flags and blocks reuse of a token that has already been redeemed.
Access control model
First user to join a workspace is automatically assigned the Admin role. Subsequent users join as Members. Admins can revoke any user instantly from the Admin panel — revocation is enforced at the database level via the is_suspended flag, not just the application layer.
4. Data Isolation

Row-Level Security — the last line of defence

Every workspace in CSHUBB is assigned a unique org_slug. Every table that contains customer data is partitioned by this identifier. Supabase PostgreSQL Row-Level Security (RLS) policies enforce tenant isolation at the storage engine level — not in application code.

This means: even if a bug existed in the application layer — a forgotten WHERE clause, an incorrect API parameter, a logic error — the database itself would still return zero rows from another organisation. RLS operates independently of and cannot be bypassed by application code. Every SELECT, INSERT, UPDATE, and DELETE is automatically scoped to the authenticated user's org via my_org_slug() resolved from the JWT session.

Technical implementation
RLS policies use WITH CHECK on all write operations in addition to USING on reads. This prevents both unauthorised reads and unauthorised writes, including attempts to insert data into another organisation's namespace.
2026 hardening pass
A dedicated hardening pass closed edge-case gaps that had previously allowed cross-tenant read/write under specific conditions. Tenant isolation is now independently verified via direct anonymous API calls as part of our release process, rather than relying on policy review alone.
5. Encryption

Encryption at rest and in transit

WhatHowStandard
Data at restSupabase PostgreSQL on AWS RDSAES-256
Data in transitCloudflare TLS termination, HTTPS enforcedTLS 1.2+
Service role keyStored only in Edge Function environment variablesNever client-exposed
User sessionsJWT signed with Supabase Auth secretHS256/RS256
Email deliverySPF, DKIM, DMARC via Resendmail.cshubb.com
Webhook payloadsHMAC-SHA256 signature (Growth)X-CSHUBB-Signature header
Google OAuth tokensEncrypted at rest, scoped per user in SupabaseRevocable from Google Account settings
Offsite backupsAES-256-GCM, client-side before uploadCloudflare R2, weekly
6. AI & Data Privacy

AI key isolation and data flow

When users run AI tools in CSHUBB, prompts are constructed from account data in the browser and sent directly to the configured AI provider API. CSHUBB servers are never in the data path for AI requests. AI provider API keys are stored only in browser localStorage (individual mode) or in the database encrypted at rest scoped by org_slug (org-wide mode).

ProviderData pathKey storageOffline option
GroqBrowser → Groq APIlocalStorage onlyNo
Anthropic ClaudeBrowser → Anthropic APIlocalStorage onlyNo
Google GeminiBrowser → Google AI APIlocalStorage onlyNo
LM StudioBrowser → localhostNone requiredYes — 100%

For maximum data privacy, organisations can use LM Studio — AI inference runs 100% on the user's local device with zero external API calls.

7. Google OAuth & Mail Access

Limited-use OAuth with no email content stored

The Emails module connects each user's Gmail account via Google OAuth 2.0. CSHUBB requests only the minimum OAuth scopes required to read and send email on behalf of the signed-in user. Email content is never stored on CSHUBB's servers — messages are fetched from Gmail at read time and held in browser memory only for the duration of the session.

The Meetings module similarly connects Google Calendar to create, edit, and cancel events with Google Meet links. Calendar access uses the minimum scopes required and follows the same no-server-storage model.

IntegrationScopes requestedContent stored on serverStandard
Gmail (Emails module)gmail.readonly + gmail.sendNo — browser memory onlyGoogle Limited Use
Google Calendar (Meetings module)calendar.events (read + write)No — browser memory onlyGoogle Limited Use
OAuth tokensStored encrypted, scoped per userSupabase RLS isolatedRevocable anytime
Minimum OAuth scopes only — no broad access granted
Email and calendar content fetched at read-time, never persisted server-side
OAuth tokens encrypted at rest and isolated per user by RLS
Tokens revocable at any time from Google Account → Security → Third-party access
No email content used for AI training or analytics
CSHUBB's use of Google APIs complies with Google API Services User Data Policy (Limited Use requirements)
Google API Limited Use compliance
CSHUBB's use of data accessed via Google APIs is limited to providing and improving the in-product features the user explicitly requested. Data obtained through Google APIs is not used for advertising, is not transferred to third parties except as necessary to provide the feature, and is not used to train AI models. This complies with the Google API Services User Data Policy's Limited Use requirements.
8. Access Control

Invite-only access model

CSHUBB has no public signup. Every new user requires a valid invite code generated by a workspace admin. Without a valid code, first-time login is rejected at the application layer before any workspace data is accessed.

No self-service registration
Admin-generated single-use invite codes
Instant user revocation via Admin panel
Revocation enforced at database level (is_suspended flag)
Multi-org access controllable per user (allow_multi_org)
All admin actions logged with full attribution
Invite codes are never publicly listable
There is no endpoint that returns a list of active invite codes. Verification happens through a narrow, single-purpose check on one code at a time, which eliminates any path to harvesting or enumerating active codes by guessing or scanning.
Least-privilege server functions
Invite redemption and billing operations run through dedicated, narrowly-scoped server functions — never broad, reusable database credentials. Each function can do exactly one thing, so a compromised credential or a bug in one operation cannot cascade into unrelated capabilities.
Auditable, irreversible removals
When a seat or account is removed, the action is logged and final — not a soft state that could be quietly reversed or repurposed. This keeps billing and access records auditable: that exact seat or account cannot be silently reactivated or reused.
9. Webhooks & Integrations

Webhook security controls

Webhook payloads contain account-level data only. They never include credentials, session tokens, or API keys. On Growth, payloads are signed with HMAC-SHA256 using a per-webhook secret so receiving systems can verify authenticity.

PlanWebhook supportSigningMax endpoints
TrialHTTP POSTSecret tokenFull access during trial
StarterHTTP POSTSecret token10
GrowthHTTP POST + outgoing alert webhooksHMAC-SHA25620

Growth also supports outgoing Alert Webhooks — pushing alert events to Zapier, Make, n8n, or a custom endpoint, with per-endpoint filters (alert type, CSM, ARR, health, stage) and automatic retry-on-failure.

10. Audit Logs & Monitoring

Complete audit trail

Every action in CSHUBB is logged with full attribution — user, timestamp, event type, and context. Workspace admins can filter by event type and user. There are no third-party advertising or marketing trackers, no ad networks, and no data sold. Product analytics (PostHog, EU instance) only begin firing after a visitor explicitly accepts the cookie consent banner — nothing is tracked by default.

User logins and session starts
Account create / edit / delete
AI tool runs (tool + provider + account)
CSV imports and JSON exports
Bulk edit and bulk delete operations
Admin actions (invite codes, role changes)
Webhook create / update / delete
Help requests and feedback submissions
Account deletion requests
11. Backups & Disaster Recovery

Two-layer backup strategy

CSHUBB runs an independent backup layer on top of Supabase's own platform-level backups, specifically to protect against platform-level incidents rather than just accidental data loss.

Automated daily backups via Supabase, retention per plan tier
Independent weekly export, fully separate from the primary database provider
Encrypted client-side (AES-256-GCM) before upload — not just at the destination
Stored in an access-isolated Cloudflare R2 bucket outside Supabase's infrastructure entirely
Table coverage automatically discovered at runtime — any new table is included in the next backup with no manual configuration
Pagination-safe export — verified to capture full table contents regardless of size, no silent truncation on large tables
12. Compliance Alignment

Framework alignment

CSHUBB's architecture aligns with the controls and principles of leading compliance frameworks. CSHUBB is currently in active private beta; formal certifications are on the roadmap for post-launch. Infrastructure providers (Supabase, Cloudflare) maintain their own certifications.

SOC 2
  • Access controls
  • Audit logging
  • Encryption at rest + transit
  • Availability monitoring
GDPR
  • Data minimization
  • Purpose limitation
  • Right to deletion (built-in)
  • No 3rd-party data sharing
ISO 27001
  • RBAC + role management
  • Encryption controls
  • Multi-tenant isolation
  • Incident response process
13. Shared Responsibility

What CSHUBB owns vs. what you own

CSHUBB is responsible for
RLS policy enforcement and correctness
Secure authentication infrastructure
Server-side key management
Infrastructure security (Supabase/AWS/Cloudflare)
Application security (XSS, CSRF, injection)
Audit log integrity
Your organisation is responsible for
Protecting email accounts used for magic link login
Safeguarding browser sessions on shared devices
Managing invite codes responsibly
Revoking access promptly when staff leave
Protecting AI provider API keys in browsers
Revoking Google OAuth access when a user leaves (via Google Account settings)
GDPR compliance for the data you store in CSHUBB
14. Contact & Reporting

Security contact

Please report security vulnerabilities responsibly. Do not disclose issues publicly until we have had the opportunity to address them. We aim to acknowledge reports within 24 hours and provide a resolution timeline within 72 hours.

Security Team
Vulnerability reports · Architecture questions · Compliance enquiries
security@cshubb.com →

© 2026 CSHUBB Innovations · Security Whitepaper v1.2 · This document is subject to change as the platform evolves.