ZERO TRUST · DATA · 4 OF 6

Each team only sees its own data.

Your workspace is kept apart from every other customer's, and from other teams in your own company. The database enforces it, not only the app.

Why it matters

An accounting firm runs agents for dozens of clients. A law firm has matters that must never meet. If the separation depends on every line of app code being right, one bug can show a client someone else's books.

Zero trust means the app itself isn't trusted with that job. The rule sits one level lower, where the data lives.


How it works

Every record belongs to a team. When an agent or a person asks for data, the database checks who is asking before it returns anything.

RequestAn agent asks for October's invoices.
DatabaseWhich team is this task running for?
ResultOnly that team's records come back.

An example

Twelve clients, one agent

The bookkeeping agent at an accounting firm processes invoices for 12 clients. Each client's task runs in its own workspace, tied to that client. While working on De Vries Bouw, the agent can't read another client's invoices, even if it asks for them.


What you control

  • How your company is split into teams, and who belongs to each.
  • Which agents work for which team.
  • Exporting or deleting a team's data at any time.

For your security team

  • Access rules are enforced in the PostgreSQL database, in addition to checks in the app.
  • A task's workspace is created for one team and discarded when the task ends.
  • The database refuses any request that doesn't say which team it's for.

The code is open source, so your team can read how each of these works. Questions? Email security@upmo.ai.