v4

latestOpenAPI 3.1.02026-08-02261331761.5 KB
Resource Roles

Assign Permissions to Role

Assign permissions to role.

If some of the permissions specified are already assigned, will skip them.

post/v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}/permissions

Path parameters

resource_idstring required

Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the "slug").

Either the unique id of the resource, or the URL-friendly key of the resource (i.e: the "slug").

role_idstring required

Either the unique id of the role, or the URL-friendly key of the role (i.e: the "slug").

Either the unique id of the role, or the URL-friendly key of the role (i.e: the "slug").

proj_idstring required

Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").

Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").

env_idstring required

Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").

Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").

Request body

permissionsstring[] required

List of permissions to assign to the role. If a permission is already granted to the role it is skipped. Each permission can be either a resource action id, or {resource_key}:{action_key}, i.e: the "permission name".

Example request

{
  "permissions": [
    "document:write"
  ]
}

Response

Successful Response

namestring required

The name of the role

descriptionstring

optional description string explaining what this role represents, or what permissions are granted to it.

permissionsstring[]

list of action keys that define what actions this resource role is permitted to do

attributesobject

optional dictionary of key-value pairs that can be used to store arbitrary metadata about this role. This metadata can be used to filter role using query parameters with attr_ prefix, currently supports only 'equals' operator

extendsstring[]

list of role keys that define what roles this role extends. In other words: this role will automatically inherit all the permissions of the given roles in this list.

keystring required

A URL-friendly name of the role (i.e: slug). You will be able to query later using this key instead of the id (UUID) of the role.

idstring uuid required

Unique id of the role

organization_idstring uuid required

Unique id of the organization that the role belongs to.

project_idstring uuid required

Unique id of the project that the role belongs to.

environment_idstring uuid required

Unique id of the environment that the role belongs to.

resource_idstring uuid required

Unique id of the resource that the role belongs to.

resourcestring required

The unique resource key that the role belongs to.

created_atstring date-time required

Date and time when the role was created (ISO_8601 format).

updated_atstring date-time required

Date and time when the role was last updated/modified (ISO_8601 format).

Example response

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "key": "maintainer",
  "name": "Maintainer",
  "description": "the maintainer role can read from the repo and push changes",
  "permissions": [
    "push"
  ],
  "extends": [
    "contributor"
  ],
  "resource": "repo",
  "granted_to": {
    "id": "8c0a5d99-de8d-4102-b363-7d17843156b3",
    "users_with_role": [
      {
        "role": "Admin",
        "on_resource": "organization",
        "linked_by_relation": "owner",
        "role_id": "4f9ad7ab-15bc-4e25-a5a5-57417b341719",
        "resource_id": "17dbf1da-4061-44a6-8f58-55719560f143",
        "relation_id": "534b2d8a-e8be-4039-828f-0607691ca48c"
      }
    ]
  },
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  "environment_id": "40ef0e48-a11f-4963-a229-e396c9f7e7c4",
  "resource_id": "40ef0e48-a11f-4963-a229-e396c9f7e7dd",
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z"
}