WholeStack Pricing ↗
Client Experience · Security Intent Contract: client-portal-v2

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.

Build a client portal Bring an existing app See pricing
Enterprise Client Portals & Workspaces

Operational Territory

Enterprise Client Workspaces & Secure Document Vaults
Postgres RLS · Zero-Leak Gate

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.

https://portal.acme-advisory.com/workspace
Verified Release: v2.8.0 · P3 PASS
Client Portal Materialized Application UI

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.

MOD 01

Row-Level Tenant Isolation

Every query carries an authenticated tenant claim enforced at the storage engine. Leaks are structurally impossible.

MOD 02

Secure Document Exchange

Deliverables, reports, and contracts with access logging, expiring tokens, and audit receipts for compliance.

MOD 03

Sign-Off & Approvals

Milestone sign-offs and change requests route to designated client executives with multi-factor confirmation.

MOD 04

Custom Domain Branding

Each client organization can access their portal under custom hostnames, with white-label typography and assets.

MOD 05

Granular Role Hierarchy

Distinguish between client executive, billing contact, and standard reviewer without writing fragile auth logic.

MOD 06

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.

client-portal-security.isl
Compiled to Postgres RLS · Zero Drift
domain ExecutiveClientPortal {
  entity ClientOrganization {
    id: UUID
    domain_identifier: String
    tier: Enum[Standard, Enterprise]
  }

  entity Deliverable {
    id: UUID
    organization_id: UUID -> ClientOrganization
    is_confidential: Boolean
    status: Enum[Draft, Review, Approved, Archived]
  }

  policy MultiTenantIsolation {
    invariant R01_StrictRowOwnership:
      forall d in Deliverable:
        Actor.canRead(d) requires (Actor.organization_id == d.organization_id)

    invariant R02_OnlyExecutiveSignoff:
      forall d in Deliverable:
        (d.status == Approved) implies
        (Actor.hasRole(Role.ClientExecutive) && Actor.organization_id == d.organization_id)
  }
}

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.

VERDICT: SHIP (VERIFIED RECEIPT)
SHA256: 3c8e92a104f7b6d19e...
100%
Tenant Boundary Probes
12/12
Journey Beats Executed
0
Cross-Tenant Leaks
PASS
Penetration Oracle
CHK 01

Adversarial Role Probes

Every role is actively driven to access unauthorized customer records. A single leak is an immediate NO_SHIP.

CHK 02

Non-Vacuous Assertions

Security checks are evaluated to ensure they actually exercise authorization boundaries rather than passing unconditionally.

CHK 03

Session Revocation

ShipGate tests session termination across device handoffs, verifying that revoked credentials reject subsequent writes.

CHK 04

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.