Isolation & audit

Export the whole workspace

Projects, requirements, approvals and the audit trail export as one file. No lock-in, and no support ticket to get your data.

EstiWright — Export the whole workspace
workspace-export.json
approvals-register.xlsx
ai-usage.xlsx
ExportPortability

A hand-built mock in the site theme, modelled on the real screen and populated with our demo tenant's data — not a screenshot. Hover to pause.

More in Isolation & audit

Keep going

EstiWright — PostgreSQL
ALTER TABLE requirements ENABLE ROW LEVEL SECURITY;
ALTER TABLE requirements FORCE ROW LEVEL SECURITY;

The database refuses cross-tenant reads

Row-Level Security is FORCED on every tenant table — the rule binds even the table owner, not just application code.

EstiWright — Database role
app_rw · BYPASSRLS ?false
app_rw · table owner ?false
cross-tenant SELECT ?0 rows

The app can't opt out

EstiWright connects as a non-owner role with no BYPASSRLS. Even a bug in application code cannot return another tenant's rows.

EstiWright — Every request
BEGIN;
SELECT tenant_session('org_3366ddeb…');
-- queries now scoped to this org only
COMMIT;

Tenant pinned per transaction

The active tenant is set inside the transaction, so a pooled connection can never leak one tenant's scope into another's request.

See this on your own tender.

We'll run your RFP through the same pipeline and show you the output.