Planes
The schemas are not all the same kind of thing. Some hold what the platform itself is: accounts, money, addresses. Some hold what a tenant is and has. Some hold the rows a tenant makes. The schemas are grouped into planes along those lines, and each plane has a database role of its own that cannot log in on its own and is granted to the application role, app.
| Plane | Schemas | What it holds |
|---|---|---|
adh_control |
auth, billing, oauth, rdid, system |
Platform identity, money and addresses |
adh_tenant |
ecosystem, persona, team, bucket, monitoring, usage |
What a tenant is and has |
adh_data |
content, document, project, personal, chat, integration, persona_memory, settings, customer |
A tenant's rows |
Most tables keep one tenant's rows from another's with a policy in the database itself, described under Conventions. A few do not: persona, ecosystem, oauth and theme carry no such policy, and team has it switched off, because those tables are reached through the handlers' own scoping rather than through a tenant column.
- Languages
- TypeScript
- APIs & protocols
- OpenAPI