Skip to content

Roles and Permissions

The Roles and Permissions resource provides access to all methods relating to user roles and associated permissions in Keystash.

List Roles

Path: /roles/list

Method: GET

Authentication: Bearer Token

Request Headers

Key Value Required
Accept-Encoding gzip optional

Request Parameters

None.

Request Body

None.

Example Request

curl --location --request GET 'https://app.keystash.io/api/v1/roles/list' \
--header 'Authorization: Bearer <token>'

Example Response

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
  {
    "id": "JbcmPofORxiJhleu",
    "name": "Team Leader",
    "description": "This role can manage users and server groups assignments but cannot change roles permissions.",
    "created": "2020-05-23 14:00:11",
    "created_user_id": "bkQV8I5BRcAVpgod",
    "created_by": "Andrew Burns",
    "modified": "2022-04-23 08:15:29",
    "modified_user_id": "bkQV8I5BRcAVpgod",
    "modified_by": "Andrew Burns",
    "permissions": [
      {
        "id": 1,
        "label": "Dashboard",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          }
        ]
      },
      {
        "id": 2,
        "label": "Users",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          }
        ]
      },
      {
        "id": 3,
        "label": "Permissions",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          }
        ]
      },
      {
        "id": 4,
        "label": "Server Groups",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          },
          {
            "id": "edit_group_users",
            "name": "Edit Group Users",
            "permission": true
          },
          {
            "id": "add_user_groups",
            "name": "Add User Groups",
            "permission": false
          },
          {
            "id": "edit_user_groups",
            "name": "Edit User Groups",
            "permission": false
          },
          {
            "id": "delete_user_groups",
            "name": "Delete User Groups",
            "permission": false
          }
        ]
      },
      {
        "id": 5,
        "label": "SSH Keys",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          },
          {
            "id": "view_user_keys",
            "name": "View Other User Keys",
            "permission": false
          },
          {
            "id": "add_user_keys",
            "name": "Add Other User Keys",
            "permission": false
          },
          {
            "id": "edit_user_keys",
            "name": "Edit Other User Keys",
            "permission": false
          },
          {
            "id": "delete_user_keys",
            "name": "Delete Other User Keys",
            "permission": false
          }
        ]
      },
      {
        "id": 6,
        "label": "Servers",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": false
          },
          {
            "id": "add",
            "name": "Add",
            "permission": false
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": false
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": false
          },
          {
            "id": "export",
            "name": "Export",
            "permission": false
          },
          {
            "id": "deploy",
            "name": "Deploy New Servers",
            "permission": false
          }
        ]
      },
      {
        "id": 7,
        "label": "Account Administration",
        "actions": [
          {
            "id": "view_company",
            "name": "View Company",
            "permission": false
          },
          {
            "id": "edit_company",
            "name": "Edit Company",
            "permission": false
          },
          {
            "id": "edit_billing",
            "name": "Billing",
            "permission": false
          }
        ]
      },
      {
        "id": 8,
        "label": "Audit Logs",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "export",
            "name": "Export",
            "permission": true
          }
        ]
      },
      {
        "id": 9,
        "label": "Deployment Secrets",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": false
          },
          {
            "id": "add",
            "name": "Add",
            "permission": false
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": false
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": false
          }
        ]
      },
      {
        "id": 10,
        "label": "Two Factor Authentication",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": false
          },
          {
            "id": "add",
            "name": "Add",
            "permission": false
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": false
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": false
          }
        ]
      },
      {
        "id": 11,
        "label": "Settings",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          }
        ]
      }
    ]
  }
]

Example Error Response

HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=utf-8

{
  "error": "You do not have the required permission to access this path."
}

View Role

Path: /roles/view

Method: GET

Authentication: Bearer Token

Request Headers

Key Value Required
Accept-Encoding gzip optional

Request Parameters

Key Value Required Notes
id JbcmPofORxiJhleu required The ID of the role to view

Request Body

None.

Example Request

curl --location --request GET 'https://app.keystash.io/api/v1/roles/view?id=JbcmPofORxiJhleu' \
--header 'Authorization: Bearer <token>'

Example Response

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
  {
    "id": "JbcmPofORxiJhleu",
    "name": "Team Leader",
    "description": "This role can manage users and server groups assignments but cannot change roles permissions.",
    "created": "2020-05-23 14:00:11",
    "created_user_id": "bkQV8I5BRcAVpgod",
    "created_by": "Andrew Burns",
    "modified": "2022-04-23 08:15:29",
    "modified_user_id": "bkQV8I5BRcAVpgod",
    "modified_by": "Andrew Burns",
    "permissions": [
      {
        "id": 1,
        "label": "Dashboard",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          }
        ]
      },
      {
        "id": 2,
        "label": "Users",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          }
        ]
      },
      {
        "id": 3,
        "label": "Permissions",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": false
          },
          {
            "id": "add",
            "name": "Add",
            "permission": false
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": false
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": false
          }
        ]
      },
      {
        "id": 4,
        "label": "Server Groups",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          },
          {
            "id": "edit_group_users",
            "name": "Edit Group Users",
            "permission": true
          },
          {
            "id": "add_user_groups",
            "name": "Add User Groups",
            "permission": false
          },
          {
            "id": "edit_user_groups",
            "name": "Edit User Groups",
            "permission": false
          },
          {
            "id": "delete_user_groups",
            "name": "Delete User Groups",
            "permission": false
          }
        ]
      },
      {
        "id": 5,
        "label": "SSH Keys",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          },
          {
            "id": "view_user_keys",
            "name": "View Other User Keys",
            "permission": false
          },
          {
            "id": "add_user_keys",
            "name": "Add Other User Keys",
            "permission": false
          },
          {
            "id": "edit_user_keys",
            "name": "Edit Other User Keys",
            "permission": false
          },
          {
            "id": "delete_user_keys",
            "name": "Delete Other User Keys",
            "permission": false
          }
        ]
      },
      {
        "id": 6,
        "label": "Servers",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          },
          {
            "id": "export",
            "name": "Export",
            "permission": false
          },
          {
            "id": "deploy",
            "name": "Deploy New Servers",
            "permission": false
          }
        ]
      },
      {
        "id": 7,
        "label": "Account Administration",
        "actions": [
          {
            "id": "view_company",
            "name": "View Company",
            "permission": true
          },
          {
            "id": "edit_company",
            "name": "Edit Company",
            "permission": true
          },
          {
            "id": "edit_billing",
            "name": "Billing",
            "permission": true
          }
        ]
      },
      {
        "id": 8,
        "label": "Audit Logs",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "export",
            "name": "Export",
            "permission": true
          }
        ]
      },
      {
        "id": 9,
        "label": "Deployment Secrets",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          }
        ]
      },
      {
        "id": 10,
        "label": "Two Factor Authentication",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          }
        ]
      },
      {
        "id": 11,
        "label": "Settings",
        "actions": [
          {
            "id": "index",
            "name": "View",
            "permission": true
          },
          {
            "id": "add",
            "name": "Add",
            "permission": true
          },
          {
            "id": "edit",
            "name": "Edit",
            "permission": true
          },
          {
            "id": "delete",
            "name": "Delete",
            "permission": true
          }
        ]
      }
    ]
  }
]

Example Error Response

HTTP/1.1 403 Forbidden
Content-Type: application/json; charset=utf-8

{
  "error": "You do not have the required permission to access this path."
}