Security and data

Isolation by construction

Every application table carries the organisation it belongs to, and every query filters on it before anything else. A client's portal session is authorised per connection: the guarantee that holds over HTTP holds over the live socket too.

01 Tenant isolation

A correctness property, not a feature you switch on

Every table
Carries an organisation id
Every query
Filters on it first
Client contacts
A separate, closed-by-default record, not a staff role with things removed
Live updates
Authorised per websocket connection, same rule as HTTP

Their work, and nothing else

Each client sees their own projects, files and invoices. There is no query in the app that can return another client's rows, because there is no query without the scope on it.

Northfold Studio
Harbour & CoWebsite rebuild3 invoices
Fernhill BakeryBrand refresh1 quote
Loop CyclesQ4 retainer12 files
WHERE organisation_id = … AND client_id = …
02 Third parties

Fewer of them, on purpose

Fonts are shipped with the app rather than fetched from Google at build time. Small thing, but it's the same instinct: a product that handles your clients' work shouldn't quietly add third parties to the pipeline.

Sub-processors for the managed service

Providers to confirm before launch.

Sub-processorPurposeDataLocation
[Hosting provider]Servers and the Postgres databaseAll application data[UK / EU]
[Object storage provider]Files and generated PDFsUploaded files, invoices, quotes[UK / EU]
[Email provider]Invitations, invoices, remindersRecipient email, message content[Region]
StripeOnline invoice paymentPayer and payment detailsPer provider
GoCardlessDirect debit paymentPayer and payment detailsPer provider

Self-hosted installs choose their own storage, email and payment providers; this list applies to the managed service only.

03 Export and deletion

Yours to take, yours to end

Export
Your data comes out without a support ticket
Deletion
If you stop paying, your data stays exportable, then is deleted on a published schedule of [00] days

Slate is nearly ready

Leave your email and we'll tell you once, when you can actually use it.