Managing organization users

Access to organizations is managed by granting users roles. The following roles exist: superuser, project-admin, and member

Role: superuser project-admin member

View organization users

Manage organization users

Create projects

View projects

Manage project users

Delete projects

All other project/service operations

Note that project operations can be accessed by granting project roles. An organization superuser has access to a subset of these permissions, including the ability to grant anyone (including themselves) roles on the project. When a user creates a project, they are automatically granted admin access to that project.

The purpose of the member role is to allow admins of the organization’s projects to add users directly to their projects without needing to invite them to the project.

Listing role bindings

You can list the role bindings in an organization by running kalix organization users list-bindings:

$ kalix organization users list-bindings --organization <organization name>
ROLE BINDING ID                        ROLE        USERNAME       EMAIL                      NAME
fd21044c-b973-4220-8f65-0f7d317bb23b   superuser   jane.citizen   jane.citizen@example.com   Jane Citizen
120b75b6-6b53-4ebb-b23b-2272be974966   member      john.smith     john.smith@example.com     John Smith

This shows a list of all the role bindings in the organization.

Granting a role

There are two ways to grant a role to a user. The first is to invite them to join the organization using their email address.

To send an invitation, use the kalix organizations invitations create command:

kalix organizations invitations create --organization <organization name> \
  --email <email address> --role <role>

The user will then receive an email inviting them to join the organization. If they accept the invitation, a role binding will be created for them with the specified role.

If the user is already either a member of the organization, and you want to grant them additional roles, you can add them directly without sending them an invite and requiring them to accept it, by either passing their username or email address, using the kalix organization users add-binding command.

To add a user by email address:

kalix organization users add-binding --organization <organization name> \
  --email <email address> --role <role>

To add a user by username:

kalix organizations users add-binding --organization <organization name> \
  --username <email address> --role <role>

Deleting a role binding

A role binding can be deleted by referencing its role binding ID. The role binding ID can be obtained by listing users. Once you have the role binding ID, you can delete the role binding using kalix organizations users delete-binding:

kalix organizations users delete-binding --organization <organization name> \
  --id <role binding id>

Managing invitations

You can view a list of outstanding invitations by running kalix organizations invitations list:

$ kalix organizations invitations list --organization <organization name>
EMAIL                      ROLE
jane.citizen@example.com   member

Invitations will automatically expire after 7 days. You can manually cancel an invitation by running kalix organizations invitations delete:

kalix organizations invitations cancel --organization <organization name>
  --email <email address>

If you wish to resend an invitation, this can be done by first cancelling the invitation, and then inviting the user again.