AppsAutessaDB

AutessaDB

Row-level security and access

Every read and write, from a person, agent, script, app or API key, passes through the same row rules, column masks and access log.

Role · Regional sales → table policy: customerswriteCheck: SAME_AS_READSAMPLE

Row filter

regionIN$CURRENT_USER_TEAMS
archivedEQUALSfalse
calleracting asrows visible
persondana@ (team west)312
agentruns as dana@312
API keyown role: reporting1,284
public app visitor$CURRENT_USER_ID unset0

-- why it matters

What does row-level security and access cover?

AutessaDB row-level security and column masking apply to every caller, person, agent, app or API key, with sharing levels and a row-level access log.

When agents, apps and API keys all read the same data, security has to live in the database. AutessaDB evaluates row rules, column masks and edit checks on every request, and records reads, changes and reveals of protected data.

Who works here

Table admins write roles and share tables; company admins and table admins read the access log; everyone else simply sees what their roles allow.

In one sentence each

  • Row-level security · Row rules decide which rows each caller sees, with placeholders for the current user, teams, roles and app visitors, and edit checks for changes.
  • Column masking and hidden columns · Per role, a column is visible, masked (fully redacted, last four, or a consistent code) or hidden, and masked columns are stored encrypted.
  • Security roles · A role bundles table policies (row rule, edit check, column rules) and is assigned to people, teams, company roles, everyone, custom apps or API keys.
  • Sharing and access levels · Tables start private and are shared at READ, WRITE, PUBLISH or ADMIN, with a default security role applied to everyone you share with.
  • Data access log · Every read, change and reveal of protected data is logged by table and row, with a chain integrity check and filters by date and action.

-- subtopics

Everything in row-level security and access

-- on screen

What it looks like

Column masking and hidden columns

Column rules · customersexceptions onlySAMPLE
columnsupportfinanceportal app
tax_idlast 4visiblehidden
bank_accountredactvisiblehidden
emailvisiblevisiblehash
•••• 4821👁 Reveal this value (recorded in the audit log)

Security roles

Role · Field operations2 table policiesSAMPLE

Table policies

work_orders · rows: assignee = $CURRENT_USER_EMAILsites · gate_code masked

Assignments

principal typewho
TEAMField technicians
COMPANY_ROLEManager
CUSTOM_APPTechnician Portal
API_KEYdispatch-sync key

-- faq

Questions about row-level security and access

Does AutessaDB row-level security apply to AI agents?

Yes. Every request, from a person, tool, agent, script, app or API key, is evaluated against the roles of whoever it acts as.

Are masked columns encrypted?

Yes. Values in a masked column are stored encrypted, and decrypting them for a reveal is recorded in the access log.

Who can a security role apply to?

People, teams, company roles, everyone at the company, custom apps (for their visitors) and API keys that use their own role.

Does PUBLISH let someone write rows?

No. PUBLISH adds triggers. Writing rows needs WRITE or ADMIN.

Does the access log include reads?

Yes. It records reads, changes and decrypts of protected data, not just writes.

Other areas of AutessaDB

$ autessa autessadb tables create

Row-level security and access, built into one database.

Use it out of the box, then shape it to how your company works. Tables, the data lake, security and triggers are all the same AutessaDB, from the builder, the API or the CLI.

Read the AutessaDB guide or install the CLI.

100% customizable, code and all

Make AutessaDB fully your own.

Use it out of the box, then change anything. Ask Autobot, Autessa’s AI builder, for a new field, screen, report, workflow or agent and it builds it into your copy of the app. Or open the code and edit it yourself. Nothing is locked: the app, its data and its code are yours.

Start free and make it yours