Home / The model / The lexicon / tenant
tenant
the organisation's accounts, repositories and services
A node carries no inherent meaning. What
tenant means here emerges from the edges traceable from it, and confidence in that meaning is proportional to how richly it is connected. It is connected to 7 of 23 primitives here. That, and not the sentence above, is what it means. The discipline this follows.What the shapes say tenant means, and they do not agree
These definitions are not merged, and that is the design. Merging two vocabularies erases the disagreement, and the disagreement is the finding. Each row below is owned by the shape that said it. A reader deciding what
tenant costs them has to read the row for the shape they run, not an average of the rows. Why vocabularies are bridged rather than merged.| The shape | Variant | What tenant means there |
|---|---|---|
| Claude Code on the web (a remote session container) | ccr-container | the attached repository and the platform's scoped tokens; not your accounts |
| Claude Code (the CLI, on your own machine) | local-confirmations-off | your accounts, with the credentials in your home directory |
| Claude Code (the CLI, on your own machine) | local-default | your accounts, with the credentials in your home directory |
| Claude Desktop (a desktop app with local tools) | default | your accounts |
| Claude (in the browser, with connectors switched on) | connectors-on | the accounts you connected, as you scoped them |
| A browser extension with broad host permissions | broad-host-permissions | the sites you are logged into, as you |
| A scheduled job running as a service account | service-account | whatever the service account's credential opens |
| Actions runner (a hosted CI job) | ci | the repository, with the workflow's token |
| ChatGPT (in the browser, no connectors) | default | nothing of yours |
That is the ABP's own argument in one column. The same word, the same grammar, and a materially different exposure depending on where the agent runs. It is why an ABP is about the deployment rather than the product.
The 7 primitives with this reach
| Primitive | Published gloss | Spelled out | Undo | In how many shapes |
|---|---|---|---|---|
authenticate-as.credential.signing | Sign commits with the key it holds | authenticate-as.credential.tenant | no | 3 of 9 |
authenticate-as.credential.tenant | Act in accounts with the credentials it holds | authenticate-as.credential.tenant | no | 7 of 9 |
create.schedule.tenant | Create something that outlives the session, on the platform (a routine, a scheduled trigger, a new session) | create.schedule.tenant | yes | 1 of 9 |
read.message.tenant | Read mail or chat it is connected to | read.message.tenant | no | 1 of 9 |
send.endpoint.allowed | Reach a permitted list of hosts | send.network-endpoint.tenant | no | 1 of 9 |
write.budget.tenant | Spend money or tokens against an account it holds | write.budget.tenant | no | 1 of 9 |
write.repository.tenant | Push to a code host (any branch it can reach) | write.repository.tenant | with-effort | 4 of 9 |
How this node connects
| Edge | Reads as | To |
|---|---|---|
reachable_from | tenant is the reach of these 7 primitives | 7 capabilities |
reaches | the inverse, walked the other way, with different fan out | one capability at a time |