Skip to content

docs: Add initial docs to groups and rbac #4455

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Oct 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/admin/audit-logs.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Audit Logs

Audit Logs allows **Admins** and **Auditors** to monitor user operations in
Audit Logs allows **Auditors** to monitor user operations in
their deployment.

## Tracked Events
Expand Down Expand Up @@ -32,4 +32,4 @@ The supported filters are:

## Enabling this feature

This feature is auto enabled for all enterprise deployments. Admins may contact us to purchase a license [here](https://coder.com/contact?note=I%20want%20to%20upgrade%20my%20license).
This feature is only available with an enterprise license. [Learn more](./enterprise.md)
3 changes: 2 additions & 1 deletion docs/admin/enterprise.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@ These features are available in the enterprise edition:

- [Audit Logging](./audit-logs.md)
- [Browser Only Connections](../networking.md#browser-only-connections)
- [Groups](./groups.md)
- [Template RBAC](./rbac.md)
- [Quotas](./quotas.md)
- [SCIM](./auth.md#scim)

And we're releasing these imminently:

- High Availability
- Template RBAC
- Multiple Git Provider Authentication

## Adding your license key
Expand Down
10 changes: 10 additions & 0 deletions docs/admin/groups.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Groups

Groups can be used with [template RBAC](./rbac.md) to give groups of users access to specific templates.

![Groups](../images/groups.png)

## Enabling this feature

This feature is only available with an enterprise license. [Learn more](./enterprise.md)

4 changes: 4 additions & 0 deletions docs/admin/quotas.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ Then, when users create workspaces they would see:

<img src="../images/admin/quotas.png"/>

## Enabling this feature

This feature is only available with an enterprise license. [Learn more](./enterprise.md)

## Up next

- [Enterprise](./enterprise.md)
Expand Down
18 changes: 18 additions & 0 deletions docs/admin/rbac.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Role Based Access Control (RBAC)

Use RBAC to define which users and [groups](./groups.md) can use specific templates in Coder.

![rbac](../images/template-rbac.png)

The "Everyone" group makes a template accessible to all users. This can be removed to make a template private.

## Permissions

You can set the following permissions:

- **Admin**: Read, use, edit, push, and delete
- **View**: Read, use

## Enabling this feature

This feature is only available with an enterprise license. [Learn more](./enterprise.md)
13 changes: 7 additions & 6 deletions docs/admin/users.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@ This article walks you through the user roles available in Coder and creating an
Coder offers these user roles in the community edition:

| | User Admin | Template Admin | Owner |
| ------------------------------------------ | ---------- | -------------- |-------|
| Add and remove Users | ✅ | | ✅ |
| Change User roles | | | ✅ |
| Manage Templates | | ✅ | ✅ |
| View, update and delete **ALL** Workspaces | | ✅ | ✅ |
| Execute and use **ALL** Workspaces | | | ✅ |
| ------------------------------------------ | ---------- | -------------- | ----- |
| Add and remove Users | ✅ | | ✅ |
| Manage groups (enterprise) | | | |
| Change User roles | | | ✅ |
| Manage **ALL** Templates | | ✅ | ✅ |
| View, update and delete **ALL** Workspaces | | ✅ | ✅ |
| Execute and use **ALL** Workspaces | | | ✅ |

A user may have one or more roles. All users have an implicit Member role
that may use personal workspaces.
Expand Down
Binary file added docs/images/groups.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/images/icons/rbac.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/images/icons/users.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/template-rbac.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 18 additions & 4 deletions docs/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -174,17 +174,31 @@
"icon_path": "./images/icons/wrench.svg",
"path": "./admin/index.md",
"children": [
{
"title": "Authentication",
"description": "Learn how to set up authentication using GitHub or OpenID Connect.",
"icon_path": "./images/icons/key.svg",
"path": "./admin/auth.md"
},
{
"title": "Users",
"description": "Learn about user roles available in Coder and how to create and manage users",
"icon_path": "./images/icons/users.svg",
"path": "./admin/users.md"
},
{
"title": "Authentication",
"description": "Learn how to set up authentication using GitHub or OpenID Connect.",
"icon_path": "./images/icons/key.svg",
"path": "./admin/auth.md"
"title": "Groups",
"description": "Learn how to manage user groups",
"icon_path": "./images/icons/group.svg",
"path": "./admin/groups.md",
"state": "enterprise"
},
{
"title": "RBAC",
"description": "Learn how to use the role based access control",
"icon_path": "./images/icons/rbac.svg",
"path": "./admin/rbac.md",
"state": "enterprise"
},
{
"title": "Configuration",
Expand Down
4 changes: 4 additions & 0 deletions docs/templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,10 @@ practices:
- The Coder agent logs are typically stored in `/var/log/coder-agent.log`
- The Coder agent startup script logs are typically stored in `/var/log/coder-startup-script.log`

## Template permissions (enterprise)

Template permissions can be used to give users and groups access to specific templates. [Learn more about RBAC](./admin/rbac.md).

## Change Management

We recommend source controlling your templates as you would other code.
Expand Down
2 changes: 1 addition & 1 deletion site/src/pages/GroupsPage/GroupsPageView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export const GroupsPageView: React.FC<GroupsPageViewProps> = ({
</Link>
<Link
underline="none"
href="https://coder.com/docs/coder-oss/latest/admin/upgrade"
href="https://coder.com/docs/coder-oss/latest/admin/groups"
target="_blank"
rel="noreferrer"
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export const TemplatePermissionsPage: FC<
</Link>
<Link
underline="none"
href="https://coder.com/docs/coder-oss/latest/admin/upgrade"
href="https://coder.com/docs/coder-oss/latest/admin/rbac"
target="_blank"
rel="noreferrer"
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,14 +131,14 @@ const RoleSelect: FC<SelectProps> = (props) => {
<MenuItem key="view" value="view" className={styles.menuItem}>
<div>
<div>View</div>
<div className={styles.menuItemSecondary}>Read, access</div>
<div className={styles.menuItemSecondary}>Read, use</div>
</div>
</MenuItem>
<MenuItem key="admin" value="admin" className={styles.menuItem}>
<div>
<div>Admin</div>
<div className={styles.menuItemSecondary}>
Read, access, edit, push, and delete
Read, use, edit, push, and delete
</div>
</div>
</MenuItem>
Expand Down