-- security · permissions · audit
Row-level security, column masking and audit for every caller
AutessaDB keeps security in the data, not in the client. Every request, from a person, a tool, an agent, a script, an app or an API key, is checked against sharing, row rules and column rules, and protected reads, changes and reveals are recorded in the access log.
-- layers
How does AutessaDB protect data?
Sharing levels
Tables start private. READ, WRITE, PUBLISH and ADMIN decide who can use a table at all; access adds up across grants.
Row rules
Security roles filter rows per caller with placeholders for the user, their teams and roles, and app visitors. Unfillable placeholders match nothing.
Edit checks
SAME_AS_READ or a custom write rule stops anyone changing a row so it leaves their own view, and inserts must land inside it.
Column rules
Visible, masked (redact fully, last 4, hash) or hidden per role. Filtering on a column you cannot see is refused.
Encryption of masked data
Masked columns are stored encrypted; every decrypt for a reveal is recorded.
Access log
Reads, changes and decrypts of protected data, who, when and from where, with a chain integrity check.
Immutability
Append-only tables refuse every update and delete, and the setting can never be turned off.
Safe deletion
Two-step deletion with a confirmation token and a 14-day restore window.
-- who a request acts as
Every caller, the same rules
AutessaDB always knows who is asking. This is who each kind of request acts as.
| caller | acts as |
|---|---|
| Person in the builder | Their own sharing and roles. |
| Agent or tool | The person or key it runs as; writes fire triggers and land in the access log. |
| Script | Its invoking identity, through the same SDK rules. |
| Internal app (default hosting) | Exactly the teammate using it; app roles do not apply. |
| Public or sign-in app | The app's permissions, capped by the person who saved them, narrowed by the app's AutessaDB role per visitor. |
| API key | Its per-table READ, WRITE and DELETE permissions, never more than its owner, optionally with its own role. |
-- data handling
Sensitive fields, handled field by field
Mark a text column masked and its values are stored encrypted. Each role then sees it visible (with recorded reveals), masked as a full redaction, the last four characters or a consistent code, or hidden entirely. Downloads carry the mask unless you choose to include values you are allowed to see, and data lake query results show masked values only to someone allowed to see them in every table the query read.
Trigger execution history keeps its before and after payloads encrypted, and query jobs and their results are private to whoever ran them.
Compliance documentation
Autessa's security policies, reports and compliance documentation live in the Autessa Trust Center.
-- faq
Security questions
Is AutessaDB secure enough for sensitive data?
AutessaDB applies sharing levels, row rules, edit checks and column masks to every request, stores masked columns encrypted, and records reads, changes and reveals in an access log. Autessa's security documentation and reports are in the Trust Center at trust.autessa.com.
Can an AI agent bypass row-level security?
No. Agents and tools act as the person or key they run as, and every read and write they make is evaluated against that identity's roles.
Can an API key see more than the person who owns it?
No. A key never reaches more than its owner can, whatever its own permissions say.
Who can read the access log?
Admins of the table. Data lake query jobs are likewise private to whoever ran them and to company Admins.
What happens when someone who granted an app access loses it?
Public and sign-in apps are limited to what the person who saved their permissions can access, checked on every request, so the affected parts stop working until someone with enough access saves them again.
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