Identity and resource permissions

Beyond Accounts decides who you are and which organizations you belong to. Each product decides what you may do with its own resources. This page says who decides what.

  • Availability: Experimental
  • Evidence: Read from source
  • Explanation

The problem this solves

When something is refused, you need to know whom to ask. The answer depends on which of two questions was being asked: "who are you?" or "may you do this here?". They are answered by different parts of Beyond.

Who decides what

Question Decided by Examples
Who is this person? Beyond Accounts Signing in, the sign-in methods of an account, whether an address was confirmed
Is their login still valid? Beyond Accounts Expiry, sign-out, sign-out everywhere, suspension
Which organizations do they belong to, with which role? Beyond Accounts Invitations, role changes, removal, last-owner protection
May they see or change this resource? The product that owns the resource, on every protected operation In Delegate: reading a project, registering a request, approving, launching, requesting a deployment
May a machine do this? The product, with credentials that are not people In Delegate, an agent's credential is bound to one project and can never take a human decision

The Accounts interface says it on every organization page: "A role here decides membership. What someone may do in Workspace, CDN or Delegate is decided by that product."

Consequences you will notice

  • Changing a role in Accounts does not change what you can do in Delegate. Ask a Delegate workspace administrator instead.
  • A product credential changes nothing common. The session a product receives lets it recognize you and end itself. It cannot change your account, attach a sign-in method, create an organization, invite anyone or sign you out everywhere. Only the session you hold at Accounts, used from the Accounts interface, does those.
  • Signing in with GitHub gives Beyond no right over your repositories, and signing in to Delegate gives it no access to your cloud accounts. Provider connections are configured separately.
  • "Not found" can mean "not yours". Accounts and Delegate both answer a resource you may not see exactly as they answer one that does not exist, so that an address or identifier never confirms that someone else's organization or project exists. In Accounts the sentence is "That is not here."; in Delegate, "That record does not exist or you cannot access it."
  • A refusal and an outage are different answers. "You do not have access to this." and "Your role does not allow this action." are decisions. "Accounts is not answering right now. Nothing was changed." and "Beyond Accounts is not answering. Nothing was changed; try again shortly." are not: nobody decided anything. A product that cannot reach Accounts refuses after a short tolerance and never approves in the meantime.

The two layers inside Delegate

Delegate itself separates two things, and both must allow an action:

Layer Comes from Decides
Role Your seat: Administrator, Member or Viewer The kind of action you may ever take
Permission A grant in one project: Read, Register requests, Comment, Take decisions, Configure the project Whether you may take it in that project

An Administrator holds every permission in every project of the workspace. A Viewer only reads, whatever a grant records. The full table is in Workspace and collaboration.

Whom to ask

The refusal Ask
You cannot sign in, or your account is suspended The people who run your Beyond installation
You are not a member of an organization, or your role there is wrong An Owner or Administrator of that organization
You have no seat in Delegate, or cannot see a project An Administrator of that Delegate workspace
You can see a project and cannot act in it The same administrator, for a permission in that project

Next action

See the concrete rules: Organizations in Accounts and roles and access in Delegate.

Related: Account, organization and product workspace · Sessions and single sign-on