Organizations and addresses¶
Every pool and bucket has an owner: you, or an organization you share
with other people. The owner's handle is part of the item's address, so
two people can each have a bucket called support-tickets without stepping on
each other.
Addresses¶
| What | Address |
|---|---|
| A pool | /pools/{owner}/{pool} |
| One of its tabs | /pools/{owner}/{pool}/nodes, /jobs, /models, /members, /settings |
| Its Training console | /pools/{owner}/{pool}/training |
| Its Inference console | /pools/{owner}/{pool}/inference |
| A bucket | /buckets/{owner}/{bucket} |
| An organization | /orgs/{org} (with /members and /settings) |
| The active pool's consoles | /training, /inference |
For example, /pools/acme/research/training is the Training console of the
pool research that the organization acme owns. /training on its own opens
the console of your active pool (the one in the sidebar's pool switcher).
Opening a pool's console makes that pool the active one.
The deployment's own default pool, where community machines land, lives at
/pools/swarm/default.
Handles and slugs¶
- Your handle is created from your user name when you register
(
Fabian Franzbecomesfabian-franz). Change it under Profile - Account - Handle. - A pool's or bucket's slug is the last part of its address. When you create one you can type it, or leave it empty to have it derived from the name. The form shows the full address as you type and warns before you submit one that is taken.
- Slugs only need to be unique per owner. A slug derived from the name
that is already taken gets
-2,-3, and so on (support-tickets-2). A slug you typed yourself is refused instead, so you never get an address you did not ask for. - Handles and slugs use lowercase letters, digits and single dashes. German
umlauts and
ßare spelled out (Übersichtbecomesuebersicht). A few handles are reserved:swarm,admin,apiand others that would read as part of the app.
Renaming and moving¶
Renaming a handle or slug, or moving a pool or bucket to another owner, changes its address. The old address keeps working: it redirects to the new one, including old links to a tab or a console. If someone later creates something new at the old address, the new item takes it over.
Links from before addresses existed (/pools/<id>, /buckets/<id>,
/ops/join-v2, /ops/inference) redirect too.
Organizations — /orgs¶
An organization owns pools and buckets together with its members.
- Create one with New organization on
/orgs. Pick a name; the handle is suggested from it. You become its first owner. - Invite people by email on the Members tab. The invitee accepts under
Invitations on their own
/orgspage, once they are signed in with that address. -
Roles:
Role Can Member Use the organization's pools (they count as a member of each), see and add its buckets. Admin Also create and manage the organization's pools and buckets, invite and remove members. Owner Everything, including naming other owners, changing the handle and deleting the organization. An organization always keeps at least one owner. Only owners can make or remove another owner.
-
Create a pool for the organization: in New pool on the Dashboard, pick the organization as Owner (owners and admins). A bucket goes the same way from New bucket (any member).
- Move existing work into the organization from the pool's Settings tab or the bucket's Name and address card.
- Delete an organization from its Settings tab once it owns no pools or buckets any more.
Quotas still count the person who created a pool or bucket, also when an organization owns it.
A pool owned by an organization lists only the people invited from outside the organization on its Members tab; everyone in the organization has access already.
For scripts and agents¶
The REST API keeps addressing pools and buckets by id. Given an address, ask which item it is:
curl -H "Authorization: Bearer $TOKEN" \
"https://<leader>/api/v1/resolve?path=/pools/acme/research/training"
# {"kind": "pool", "id": "3f9c...", "ref": "acme/research", "url": "/pools/acme/research", ...}
GET /api/v1/namespaces/check?kind=pool&name=Research&owner=acme previews the
slug a create would use. POST /api/v1/pools and POST /api/v1/buckets take
owner and slug; PATCH takes them too to rename or move. Organizations are
under /api/v1/orgs. Over MCP the same is resolve_url, names_check and the
orgs toolset; see the MCP tool reference.