Administer users
Back to home
On this page
Platform.sh offers very granular and flexible user permissions across projects and organizations. When a user is added to a project, they are automatically added to your organization.
Manage project access
If you have set up an external integration to GitHub, GitLab, or Bitbucket and your users can’t clone the project locally, see how to troubleshoot source integrations.
Project roles
A user can have one of the following roles to control their access at project level:
Role | View environment | Push code | Manage user access | Change settings | Execute actions on all environments |
---|---|---|---|---|---|
Project admin | Yes | Yes | Yes | Yes | Yes |
Project viewer | Yes | No | No | No | No |
By default, organization owners have Project admin access on all of the projects within their organization.
Environment type roles
An environment type (Production, Staging, and Development) groups one or more environments together so that you can manage access for all environments of that type:
- A role assigned to an environment type applies to all environments of that type.
- Only one environment per project can be of the type: Production. It is set automatically as the default branch and can’t be overridden separately.
- You can change an environment’s type (except for the Production environment).
- You can have multiple preview (staging and development) environments.
A user can have one of the following roles on an environment type which grants them permissions on all environments of this type:
Role | View environment | Push code | Branch environment | SSH access | Change settings | Execute actions |
---|---|---|---|---|---|---|
Admin | Yes | Yes | Yes | Yes | Yes | Yes |
Contributor | Yes | Yes | Yes | Yes | No | No |
Viewer | Yes | No | Yes | No | No | No |
To customize which roles can use SSH, set access
in your app configuration.
View a user’s permissions across all of the projects in your organization
For each user, you can view a summary of their roles and permissions across all projects in your organization.
This feature is available for v4.1.2+ of the CLI.
Run a command similar to the following, using the email address of the user whose permissions you want to view:
platform organization:user:projects --org ORGANIZATION_NAME EMAIL_ADDRESS
- Navigate to your organization.
- Open the user menu (your name or profile picture).
- Click Users.
- For the user whose user permissions you want to view, click More.
- Click Edit user.
Add a user to a project
To invite a user, you need to be a project admin.
To add a user, follow these steps:
To add a user, run the following command:
platform user:add EMAIL_ADDRESS -r PERMISSIONS_TO_GRANT
For example, if you want to add user1@example.com
to the project as a project admin,
run the following command:
platform user:add user1@example.com -r admin
If you want to add user2@example.com
to the project as a contributor for Development environments
and a viewer for Staging environments,
run the following command:
platform user:add user2@example.com -r development:contributor -r staging:viewer
- Select the project where you want to add a new user.
- Click Settings.
- Click Access.
- Click + Add.
- Add the user’s details and choose their permissions.
- Click Save.
The user has to create an account before they can access the project. Once you add a user to a project, they receive an invitation email with instructions.
To apply SSH access changes after you add a user to a project, trigger a redeploy.
Manage project users
To manage user permissions on a project, you need to be a project admin, be an organization owner, or have the Manage users permission for the organization.
To change user permissions, follow these steps:
To update an existing user’s permissions, run the following command:
platform user:update EMAIL_ADDRESS -r PERMISSIONS_TO_GRANT
If you want user1@example.com
to be a viewer for Production environments
and a contributor for Development environments,
run the following command:
platform user:update user1@example.com -r production:viewer,development:contributor
- Select the project where you want to update user access.
- Click Settings.
- Click Access.
- Click the user you want to update permissions for.
- Update environment type permissions, or click Remove user.
- Click Accept.
To apply SSH access changes after you add a remove a user from a project or environment type, trigger a redeploy.
Remove a user from a project
To remove a user from a project, you need to be a project admin, be an organization owner, or have the Manage users permission for the organization.
To remove a user, follow these steps:
Run the following command:
platform user:delete user1@example.com
- Navigate to your organization or a project in it.
- Open the user menu (your name or profile picture).
- Click Users.
- For the user you want to remove, click More.
- For the project you want to remove them from, click More.
- Click Remove from project.
- Click Yes.
To apply SSH access changes after changing a user’s permissions for an environment type, trigger a redeploy.
Manage organization access
All users who are added to any project within an organization become members of that organization. By default, such users have no organization permissions. You can also have organization users who aren’t part of any projects.
Users who are a part of an organization with the List projects permission can see all projects in that organization at the organization’s URL,
which takes the form https://console.platform.sh/ORGANIZATION_NAME
.
They can only access projects they’ve been explicitly invited to.
For more information on project access control, see how to manage project users.
Organization permissions
As an organization owner or an organization user with the Manage users permission, you can invite other users to your organization and grant them the following permissions:
- Manage billing (
billing
): Add, remove, and edit billing information. Access invoices and vouchers. Users with this permission receive monthly invoices by email. - Manage plans (
plans
): View and edit plans and plan options for existing projects. Plan options include the amount of storage, number of environments, and number of user licenses on a project. - Manage users (
members
): Add, remove, and edit organization-level users and permissions, except their own. Users with this permission can’t grant other users permissions that they themselves don’t have. - Create projects (
projects:create
): Create new projects within the organization. - List projects (
projects:list
): See all projects in an organization, even those the user can’t access.
Note
Users with the Manage users (members
) permission can add, edit, or remove any user’s permissions except their own.
Users with the Manage billing (billing
) permission automatically are granted List projects (projects:list
) permission.
That is, they are able to see all organization projects once given billing rights.
Users without any of these permissions can only access projects where they’re users. They can’t access or manage the rest of the organization.
Organization owners have all permissions within their organization. Their permission level can’t be edited. Organization owners can’t be removed from their organization, except through an ownership transfer.
Add a user to an organization
To invite a user to your organization, run the following command:
platform organization:user:add EMAIL_ADDRESS --org ORGANIZATION_NAME --permission PERMISSIONS
For example, to invite alice@example.com
to the acme
organization
with the Manage billing and Create projects permissions, run the following command:
platform organization:user:add alice@example.com --org acme --permission billing,projects:create
- Navigate to the organization you want to manage (or a project in it).
- Open the user menu (your name or profile picture).
- Click Users.
- Click + Invite users.
- Enter the users’ email addresses separated by commas.
- Select which organization-wide permissions they should have.
- Click Invite.
All users you invite receive an invitation email with instructions.
Manage organization users
To update permissions for a user in your organization, run the following command:
platform organization:user:update EMAIL_ADDRESS --org ORGANIZATION_NAME --permission PERMISSIONS
For example, to update the permissions for alice@example.com
in your acme
organization
so that she has only the Manage billing permission, run the following command:
platform organization:user:update alice@example.com --org acme --permission billing
- Navigate to the organization you want to manage (or a project in it).
- Open the user menu (your name or profile picture).
- Click Users.
- Next to the user you want to manage, click More.
- Click Edit user.
You see all the projects the user is a part of and their permissions in those projects. You also see their permissions across the organization.
To edit their organization permissions, follow these steps:
- Select or clear the checkboxes for the relevant permissions.
- Click Save.
- Click Yes.
Remove a user from an organization
To update remove a user from your organization, run the following command:
platform organization:user:delete EMAIL_ADDRESS --org ORGANIZATION_NAME
For example, to remove alice@example.com
from your acme
organization, run the following command:
platform organization:user:delete alice@example.com --org acme
- Navigate to the organization you want to manage (or a project in it).
- Open the user menu (your name or profile picture).
- Click Users.
- Next to the user you want to remove, click More.
- Click Remove from organization.
To delete users in bulk, select the users to remove and click Remove users from organization.
Remove a user from an organization will remove them from all projects they were a member of.