Give your agents real access. Undo any row they change.
Every insert, update and delete by any assistant, app or person is recorded with who made it and what it replaced, and you can undo it.
Cursor edited 2 rows in Bugs at 11:42 AM. Undone
Choose what each agent can reach
When an assistant connects, ADoor opens in your browser and you pick its access:
- Allow everything is preselected. The agent can do anything you can, including spaces, people and billing if you're an owner.
- Regular data handling reads, writes, imports, undoes and reads history in one space, with no account changes.
- Cautious is read-only in one space.
An agent can't raise its own access. Anything more goes through request_access, and you approve or deny it with a one-tap link. You can change any connection's access later in Connections.
A bad edit, and the undo that fixes it
@ADoor Mark every task in my launch checklist done.
ADoor Edited 4 rows in Launch checklist at 2:31 PM.
Three of those tasks weren't done. As a workspace owner, open Activity in ADoor, find the change and choose Undo. Or ask an assistant whose access includes undo.
@ADoor Undo Cursor's last change to Launch checklist.
ADoor Undid a change in Launch checklist. The 4 rows are back as they were, and the original change is marked Undone.
One statement that changes many rows counts as one change, so one undo reverses all of them. If someone edited one of those rows after the bad change, undo stops and commits nothing, so it never overwrites later work. An undo is itself a change, so you can undo it too.
What history keeps
Changes can be undone. That includes inserts, updates, deletes, field type changes, and large writes. A type change puts the previous type and the exact old values back. A dropped table, a truncate, or a dropped field stays in Recently deleted for 30 days and can be restored.
History is kept by size: 2 MiB per workspace on Free and 64 MiB on paid plans. The oldest changes go first.
Undo stops if someone edited the same rows later, and it commits nothing, so it never overwrites newer work. It also can't take back what an agent has already read.
Behind undo, a nightly encrypted backup is kept for 30 days, out of reach of any ADoor agent token.
Revoke an agent
Open Connections in ADoor and revoke the connection. It takes effect on the next request. What the agent already saved stays, and you can undo it.
Prompt injection
An agent reads whatever is in your rows. If a row holds text written by someone else, such as a support ticket, that text can try to steer the agent. ADoor can't tell a real instruction from an injected one. What it does is keep the blast radius small:
- Give an agent that reads outside text Cautious access, so it can't write.
- Keep sensitive tables in a different space from the ones such an agent can reach.
- An agent can't approve its own
request_access. A person has to. - Undo reverses a bad write, and revoking stops the next one.
Questions people ask
Can an agent delete everything?
An agent can change only what you let it change. Those changes can be undone, including a type change and a large write. Undo stops if someone edited the same rows later. Give each agent the least access it needs.
How far back can I undo?
As far back as the retained history goes. That includes type changes and large writes. History is capped by size, 2 MiB per workspace on Free and 64 MiB on paid plans, and the oldest changes go first. Undo stops if a later edit changed the same rows.
Can staff read my data?
There's no admin console. Staff access is audited and time-limited. We don't train on your data.
Does undo bring back data an agent leaked?
No. Undo reverses writes in ADoor. It can't take back what an agent has already read. Use Cautious access for agents that read outside text, and revoke a connection the moment it misbehaves.