A client portal whose boundaries hold at the database.
Off-the-shelf portal software relies on frontend UI filters to keep clients from seeing each other's files. One missed parameter leaks an entire company's confidential records. WholeStack compiles row-level isolation directly into the PostgreSQL storage engine, proven by automated penetration probes before launch.
What the compiled portal runs
A client portal should inspire institutional trust. Every surface is backed by provable role boundaries, cryptographic audit logs, and verified document states.
Tenant Isolation
Each corporate client is strictly partitioned at the database engine level via PostgreSQL Row-Level Security.
Document Vault
Contracts, deliverables, and confidential candidate portfolios are served with time-limited cryptographic tokens.
Approval Workflows
Client stakeholders sign off on deliverables, invoices, and milestones with immutable audit trails.
Row-Level Tenant Isolation
Every query carries an authenticated tenant claim enforced at the storage engine. Leaks are structurally impossible.
Secure Document Exchange
Deliverables, reports, and contracts with access logging, expiring tokens, and audit receipts for compliance.
Sign-Off & Approvals
Milestone sign-offs and change requests route to designated client executives with multi-factor confirmation.
Custom Domain Branding
Each client organization can access their portal under custom hostnames, with white-label typography and assets.
Granular Role Hierarchy
Distinguish between client executive, billing contact, and standard reviewer without writing fragile auth logic.
Cryptographic Audit Trail
Every view, download, signature, and status mutation is recorded with non-repudiation timestamps.
The rules the contract enforces
These are written as Intent Specification Language (ISL) invariants, compiled directly into PostgreSQL row-level security and server action assertions. Break one and the transaction is refused at the database engine boundary.
- R01 Cross-tenant data queries are impossible Row-level security enforces that an authenticated actor cannot read or write records belonging to another organization, even if an ID is guessed.
- R02 Only client executives execute final approvals Reviewers may comment and submit feedback. The transition to Approved is strictly gated to executive credential holders.
- R03 Expiring tokens prevent permanent link leaks Sensitive document downloads use single-use or time-bounded signed URLs. Forwarding an old link yields an immediate denial.
- R04 All access is immutably logged Document views and status changes emit cryptographic audit events before data is returned to the client browser.
What ShipGate checks before this launches
Client portals carry your firm's reputation. ShipGate acts as an adversarial release authority, simulating cross-tenant intrusion attempts against a booted PostgreSQL instance before issuing a release certificate.
Adversarial Role Probes
Every role is actively driven to access unauthorized customer records. A single leak is an immediate NO_SHIP.
Non-Vacuous Assertions
Security checks are evaluated to ensure they actually exercise authorization boundaries rather than passing unconditionally.
Session Revocation
ShipGate tests session termination across device handoffs, verifying that revoked credentials reject subsequent writes.
Postgres RLS Verification
Direct SQL fuzzing is performed against the isolated database schema to prove policies hold independent of the API layer.
Frequently Asked Questions
How does this prevent cross-tenant data leakage?
Every query carries an authenticated tenant context enforced by PostgreSQL Row-Level Security. ShipGate explicitly drives adversarial cross-tenant access attempts before signing off on release.
Can each client have their own subdomain or custom domain?
Yes. Custom domains and vanity paths are mapped through the router, each bound to tenant isolation policies.
Can we require multi-factor authentication or SSO?
Yes. Authentication constraints are part of the intent contract and can mandate TOTP, WebAuthn, or enterprise OIDC / SAML SSO.
Who owns the customer data?
You own the database and all customer data completely. WholeStack provides the compiler and proof authority, not data custody.
Build a portal your clients can trust.
Prototyping costs nothing and needs no card. You pay $299 once, on a verified SHIP verdict, and $79 per month per application to keep it running and re-verified.