Security

Governed automation, enforced by the platform.

Models propose actions. Boundlane Control’s policy layer decides what can execute, under tenant isolation, scoped approvals and tamper-evident evidence. Prompt injection is not a hypothetical for software that reads supplier email and touches a ledger — the defence is that the prompt does not decide.

Policy enforcement

Every effect is checked outside the model. The prompt cannot authorise anything.

Tenant isolation

Data and credentials are scoped to your organisation, enforced by the database rather than by code that remembers to filter.

Scoped approvals

A consequential action waits for somebody holding the reviewing role — and the approval covers that action, not every action like it.

Audit evidence

Decisions and effects stay traceable, on a chain that reports its own tampering.

Hard limits the model cannot override

These verbs are refused before the toolbox is consulted. Not gated by a rollout stage, not unlockable by an approval, not overridable by an administrator — a package that declares one gets a tool that is absent. The matcher works on meaning rather than spelling, so update_supplier_bank_account is the same act as change_bank_details and is refused the same way.

change_bank_detailsrelease_paymentinitiate_transferupdate_payeedisable_controlgrant_admin_accessdelete_audit_logdisable_mfaexfiltrate_records

Each enterprise function adds its own on top of this baseline; none can subtract from it. A refused call is written to the audit log and escalates the run to a person, so a blocked attempt is evidence rather than silence.

Rollout

Nothing reaches production on day one.

Every automation starts in shadow, where it records what it would have done and touches nothing. Widening is a decision someone makes on evidence — the runs it already produced — and the stage that governs a run is the one it is deployed at, not the one baked into the package.

StageWrites that actually execute
shadownone — intent is recorded only
parallellow risk
limitedlow risk, medium risk
galow risk, medium risk, high risk

What an enterprise review asks about

Tenant isolation

Row-level security on every tenant-scoped table, FORCEd so the table owner cannot bypass it either.

  • Tested as a non-superuser — a superuser bypasses RLS and would prove nothing
  • A silo tenant whose database is unreachable fails; it is never served from the pooled one
Identity

OIDC with PKCE and JWKS verification, or SAML. SCIM 2.0 for provisioning and de-provisioning.

  • SAML claims read from the signed bytes, so a wrapped assertion is refused
  • A replayed assertion is rejected atomically
Separation of duties

A consequential write defers to someone holding the reviewing role in your organisation, not an admin account.

  • One decision only — two reviewers racing cannot both succeed
  • An admin acting without the role is permitted and recorded as an escalation
  • The approval that authorised a write is named in the trail, including when the write then failed
Audit

Hash-chained: each entry hashes the one before it, so alteration is detectable rather than discouraged.

  • Every state change writes an entry, refusals included
  • Role grants record who granted what, and what the person held before
  • The chain head can be published outside the platform, making a rewrite provable
Credentials

Envelope-encrypted at rest, opened only at the moment of a connector call. No read path back out.

  • Master key can live in AWS or Google Cloud KMS rather than the process
  • A connector needing auth fails rather than calling without it
Egress

An explicit allowlist per connector, enforced on redirects as well as the first request.

  • Private and cloud-metadata addresses refused regardless of the allowlist
  • An installed template loses the publisher’s allowlist entirely
Data handling

Zero-retention model gateway. PII redaction applied when recording, not when displaying.

  • Enterprise can bring its own model endpoint
  • Erasure enumerates tenant tables from the live schema and clears the trace archive first
Tenant code

Most automations run no generated code. When one does, it executes with Node’s permission model on.

  • No filesystem, no network globals, an empty environment
  • Pinned by hash at promotion and refused at runtime if the bytes changed
Verification

A control nobody tries to break is a claim.

Every control on this page is attacked on each build, by a suite that is itself verified: remove a tenancy check and the run must go red. A test that passes whether or not the control exists is worse than no test, because it is believed.

And it is answerable, not just assertable. Ask who can approve a payment and the platform produces the roster, every grant and revocation that led to it, and a verification that the history has not been edited.

107 checks

Adversarial, on every build: each route unauthenticated, cross-tenant reads, writes and runs against real objects, a forged session, wrong-role attempts on admin-only controls.

Mutation-tested

The suite is verified by breaking the product: remove a tenancy check and the probe must fail. A green suite that stays green without the control proves nothing.

Non-superuser

Isolation is tested as an unprivileged role against real Postgres. A superuser bypasses row-level security, so testing as one would pass no matter what the policy said.

Access review

The first evidence request of any audit, generated on demand: the current roster, every membership change, and whether the hash chain behind it verifies.

2,143 tests

Across 174 files, including the policy dispatcher, the promotion gate, egress on redirects, and erasure enumerated from the live schema.

Bring the review. We would rather answer it now.

Every control on this page is visible in the product: open a run and read what the dispatcher did with each call. Bring the questionnaire you already use.

2,143 tests · 174 files · every route probed for authorization · evidence generated per deployment at /api/evidence

Open the console