Who at the vendor can reach your account

Vendor-side access is one owner defined in source plus a small set of named staff with revocable, capability-scoped grants recorded in the database.

What it is

A two-part model. Ownership is a constant in source code — one person, permanent, unreachable by any config value. Everyone else who works on the platform is staff: a row with a role, an access status and an audit trail, managed from the platform team screen. Routes ask for a capability, never for a role and never for an identity.

Also called: vendor access · who can see my data · platform staff · support access

See it
Who at the vendor can reach your account
Area
Platform & Admin
Group
Vendor access
System
Multi-Tenancy & Identity
Solves
3 named problems
01The owner is resolved from source before any database call, so no outage or bad migration can lock him out.
02Staff are matched by any email on their account, or by their linked identity id once they've signed in.
03Only 'active' grants anything: 'listed' is a directory entry, 'revoked' is a former employee whose row is kept deliberately.
The Platform Team screen: owner row marked permanent and uneditable, staff rows with role, status and last seen, and a revoked section below. src/app/platform/settings/team/page.tsx. Sample data — no customer information appears here.
How it works
  1. 1The owner is resolved from source before any database call, so no outage or bad migration can lock him out.
  2. 2Staff are matched by any email on their account, or by their linked identity id once they've signed in.
  3. 3Only 'active' grants anything: 'listed' is a directory entry, 'revoked' is a former employee whose row is kept deliberately.
  4. 4Roles map to capabilities in one table: view the console, view accounts, manage accounts, enter accounts, view revenue, manage signups, work bugs, run the sales panel, manage staff, manage settings.
  5. 5Every grant, change and revocation is appended to a staff audit table.
  6. 6A database failure resolves to no access — never to a grant.
Why we built it

This module exists because of a specific July incident, and it says so at length. The owner list used to include an environment variable, and that variable contained a tenant owner's address — so 'every power above was therefore held by a customer, over every other customer: [they] could open [another builder's] account, change their plan, read their notes, and received an emailed copy of every bug report filed anywhere on the platform, screenshots included.' The analysis is the valuable part: 'Nothing was misconfigured by accident in the ordinary sense — the value was correct back when [he] WAS the product's only user… It stopped being correct the moment a second tenant existed, and no code noticed, because a config value that silently widens an authorization boundary produces no error and no log.' The design conclusion follows: 'ownership is now HARDCODED ONLY… That is a deliberate loss of flexibility.'

The problem
  • A single configuration value silently widened an authorization boundary across every customer.
  • Forty route handlers each held their own copy of the same access check.
  • There was no record of who had vendor-side access, at what level, or when it changed.
Sound familiar?
What you get
Vendor access is a short, named list you could audit.
Adding an owner requires a code change and a deploy, not a settings edit.
Every staff grant and revocation is on the record.
What's inside
Ownership can't be granted by configuration
The one account that can reach every customer is a constant in source, and any leftover environment value that used to grant it is now inert and reported as ignored.
Staff roles by capability, not by name
Every vendor-side endpoint names the capability it needs, and roles are presets over those capabilities, so widening access is one visible table change.
Staff access starts when they sign in, and stops when revoked
An invited staff member is activated the moment they sign in with the verified address they were invited at — and a revoked one can never re-grant themselves by signing in again.
Revenue is the owner's alone
Platform revenue figures are withheld at the source for anyone without the billing capability — not merely hidden by the interface.
Vendor staff can't read your money
When a vendor employee works inside your account they get admin-level operational access with invoices, signed contract values and change-order pricing switched off.
Vendor staff never join your roster
A vendor employee visiting your account is not written into your membership records, so they never appear in your team list or your member count.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →