diff --git a/docs/api-reference/endpoints/project-roles/create.mdx b/docs/api-reference/endpoints/project-roles/create.mdx index 2220b9309..7ebfff262 100644 --- a/docs/api-reference/endpoints/project-roles/create.mdx +++ b/docs/api-reference/endpoints/project-roles/create.mdx @@ -2,3 +2,7 @@ title: "Create" openapi: "POST /api/v1/workspace/{projectSlug}/roles" --- + + + You can read more about the permissions field in the [permissions documentation](/internals/permissions). + \ No newline at end of file diff --git a/docs/internals/permissions.mdx b/docs/internals/permissions.mdx new file mode 100644 index 000000000..1f9aa0602 --- /dev/null +++ b/docs/internals/permissions.mdx @@ -0,0 +1,83 @@ +--- +title: "Permissions" +description: "Infisical's permissions system provides granular access control." +--- + +## Summary + +The Infisical permissions system is based on a role-based access control (RBAC) model. The system allows you to define roles and assign them to users. Each role has a set of permissions that define what actions a user can perform. + +Permissions are built on a subject-action-object model. The subject is what the permission is being applied to, the action is what the permission allows, and the object is what the permission is being applied to. +An example of a subject/action combination would be `secrets/read`. This permission allows the subject to read secrets. + +Currently Infisical supports 4 actions: +1. `read`, allows the subject to read the object. +2. `create`, allows the subject to create the object. +3. `edit`, allows the subject to edit the object. +4. `delete`, allows the subject to delete the object. + +Most subjects support all 4 actions, but some subjects only support a subset of actions. Please view the table below for a list of subjects and the actions they support. + + +## Subjects and Actions + + + + + Not all actions are applicable to all subjects. As an example, the `secrets-rollback` subject only supports `read`, and `create` as actions. While `secrets` support `read`, `create`, `edit`, `delete`. + + + | Subject | Actions | + |-----------------------------|---------| + | `secrets` | `read`, `create`, `edit`, `delete` | + | `secret-approval` | `read`, `create`, `edit`, `delete` | + | `secret-rotation` | `read`, `create`, `edit`, `delete` | + | `secret-rollback` | `read`, `create` | + | `member` | `read`, `create`, `edit`, `delete` | + | `groups` | `read`, `create`, `edit`, `delete` | + | `role` | `read`, `create`, `edit`, `delete` | + | `integrations` | `read`, `create`, `edit`, `delete` | + | `webhooks` | `read`, `create`, `edit`, `delete` | + | `identity` | `read`, `create`, `edit`, `delete` | + | `service-tokens` | `read`, `create`, `edit`, `delete` | + | `settings` | `read`, `create`, `edit`, `delete` | + | `environments` | `read`, `create`, `edit`, `delete` | + | `tags` | `read`, `create`, `edit`, `delete` | + | `audit-logs` | `read`, `create`, `edit`, `delete` | + | `ip-allowlist` | `read`, `create`, `edit`, `delete` | + | `certificate-authorities` | `read`, `create`, `edit`, `delete` | + | `certificates` | `read`, `create`, `edit`, `delete` | + | `certificate-templates` | `read`, `create`, `edit`, `delete` | + | `pki-alerts` | `read`, `create`, `edit`, `delete` | + | `pki-collections` | `read`, `create`, `edit`, `delete` | + | `workspace` | `edit`, `delete` | + | `kms` | `edit` | + + These details are especially useful if you're using the API to [create new project roles](../api-reference/endpoints/project-roles/create). + The rules outlined on this page, also apply when using our Terraform Provider to manage your Infisical project roles, or any other of our clients that manage project roles. + + + + + + + Not all actions are applicable to all subjects. As an example, the `workspace` subject only supports `read`, and `create` as actions. While `member` support `read`, `create`, `edit`, `delete`. + + + | Subject | Actions | + |-----------------------------|------------------------------------| + | `workspace` | `read`, `create` | + | `role` | `read`, `create`, `edit`, `delete` | + | `member` | `read`, `create`, `edit`, `delete` | + | `secret-scanning` | `read`, `create`, `edit`, `delete` | + | `settings` | `read`, `create`, `edit`, `delete` | + | `incident-account` | `read`, `create`, `edit`, `delete` | + | `sso` | `read`, `create`, `edit`, `delete` | + | `scim` | `read`, `create`, `edit`, `delete` | + | `ldap` | `read`, `create`, `edit`, `delete` | + | `groups` | `read`, `create`, `edit`, `delete` | + | `billing` | `read`, `create`, `edit`, `delete` | + | `identity` | `read`, `create`, `edit`, `delete` | + | `kms` | `read` | + + \ No newline at end of file diff --git a/docs/mint.json b/docs/mint.json index d6c8d7c14..60f7bbbcb 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -769,6 +769,7 @@ "group": "Internals", "pages": [ "internals/overview", + "internals/permissions", "internals/components", "internals/flows", "internals/security",