Xeonr Developer Docs

Teams and access

A team owns functions, members have one of three roles, and API tokens let CI deploy without a browser.

Every function belongs to exactly one team. The console is scoped to one team at a time — the team picker is the entry point, and each URL is /<team-slug>/….

The model is deliberately small: three roles, no per-function permissions, no nested teams, no organisation layer. Identity comes from your Xeonr Auth session.

Roles

ViewerEditorOwner
See functions, versions, files, stats, build logs, activity✓✓✓
See what is connected✓✓✓
Create, update and delete functions✓✓
Deploy, promote, roll back, redeploy✓✓
Edit files in the browser✓✓
Connect and disconnect repositories✓✓
Rename or delete the team✓
Add, change and remove members✓
Create and revoke API tokens✓

Roles are cumulative: an owner can do everything an editor can.

Members

Owners invite members by email. An invited member is pending until they sign in for the first time; from then on the membership is anchored to their identity rather than to the address, so a later email change at the identity provider does not lose it.

A team keeps at least one owner — the last one cannot be demoted or removed.

API tokens

Tokens are how CI deploys without a browser.

curl -X POST https://functions.xeonr.io/xeonr.functions.v1.FunctionService/DeployFromGit \
  -H "Authorization: Bearer fnt_…" \
  -H "content-type: application/json" \
  -d '{"functionId": "fn_…"}'

A token is created by an owner, and:

  • Belongs to one team, with one role — editor or viewer. Never owner: a token that could mint more tokens would make revocation meaningless.
  • Cannot reach team management. Tokens authenticate the function API only, so a token leaked in a pipeline log is worth "deploy into one team", not "own it".
  • Is shown once. Only the hash is stored, so the value in the create response is unrepeatable by design. Lost tokens are replaced, not recovered.
  • Records when it was last used, which is what makes an unused token safe to revoke.

Revoke a token by deleting it; it stops working immediately.

Activity

Every change is recorded with who did it, against which function, and when. The actor is an email address for a person, token:<name> for an API token, or webhook:<provider> for a push.

Recorded actions include:

function.create   function.update   function.delete
function.deploy   function.promote  function.redeploy
git.connect       git.select_repo   git.disconnect
files.edit
team.create       team.rename
member.upsert     member.remove
token.create      token.delete

Administrators bypass role checks but not the audit trail — an admin acting is still recorded as themselves.

On this page