Team & Invitations
Invite colleagues to your organization and manage their access.
Savannah Cloud uses a token-based invite flow. The owner generates a link, shares it with a colleague, and the colleague sets their password to join.
Invite Flow
Owner → POST /org/invite → gets invite_url
Owner → copies link → sends to colleague
Colleague → opens /join?token=... → sets password
Colleague → auto-logged in, added to orgStep 1 — Send an Invite
From the dashboard, go to Team → enter the invitee's email → click Send invite.
Via API:
curl -X POST http://localhost:8080/org/invite \
-H "Authorization: Bearer YOUR_JWT" \
-H "Content-Type: application/json" \
-d '{"email":"dev@company.com","role":"member"}'Response:
{
"invite_url": "https://your-app.com/join?token=abc123...",
"email": "dev@company.com",
"expires_at": "2026-05-27T10:00:00Z"
}Step 2 — Share the Link
Copy the invite_url from the API response or the dashboard copy button. Send it to the colleague via email, Slack, etc.
Invite links expire after 72 hours and are single-use. If the colleague doesn't accept in time, generate a new invite.
Step 3 — Colleague Accepts
The colleague opens the link (/join?token=...) in their browser, sets a password, and is immediately signed in to the organization.
Managing Members
View current members
Go to Team in the dashboard, or:
curl http://localhost:8080/org/members \
-H "Authorization: Bearer YOUR_JWT"Remove a member
From the dashboard: Team → click the remove button next to the member.
Via API:
curl -X DELETE http://localhost:8080/org/members/usr_def \
-H "Authorization: Bearer YOUR_JWT"Only the owner can remove members. Owners cannot remove themselves.
Role Reference
| Role | Who assigns it | What they can do |
|---|---|---|
owner | Automatically assigned to org creator | Full access, invite/remove members |
admin | Owner can set this role | Full access, cannot remove owner |
member | Default for invited users | Read/write jobs and API keys |