Skip to content
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

User management documentation #288

Draft
wants to merge 14 commits into
base: main
Choose a base branch
from
Draft

Conversation

ottopilotto
Copy link
Contributor

Description of the change

Add user management docs

Checklist

Please make sure that the proposed change checks all the boxes below before requesting a review:

  • I have reviewed the guidelines for contributing to this repository.
  • The preview looks fine.
  • The tests pass.
  • The commit history is clean and meaningful.
  • The pull request is opened against the main branch.
  • The pull request is no longer marked as a draft.
  • You agree to license your contribution under the MIT license to Spacelift (not required for Spacelift employees).
  • You have updated the navigation files correctly:
    • No new pages have been added, or;
    • Only nav.yaml has been updated because the changes only apply to SaaS, or;
    • Only nav.self-hosted.yaml has been updated because the changes only apply to Self-Hosted, or;
    • Both nav.yaml and nav.self-hosted.yaml have been updated.

If the proposed change is ready to be merged, please request a review from @spacelift-io/solutions-engineering. Someone will review and merge the pull request.

Spacelift employees should request reviews from the relevant engineers and are allowed to merge pull requests after they got at least one approval.

Thank you for your contribution! 🙇

Copy link
Contributor

@jakubdal jakubdal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

two nits, overall lgtm


Name the policy and select "Login policy" as the type.
!!! note
It's important to know that all invites sent and access rules assigned won’t work until you [change management](concepts/user-management/README.md#migrating-from-login-policy) strategy from login policy to user management.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all invites sent -> all invites issued - they'll be sent only after changing the strategy. Probably worth a note.

I'd make [change user management strategy] a link (longer hyperlink text message).

Using Manage Slack access page is another way to control access for the Slack integration. Using this method you can control who can access stacks which are in a specific [Space](../../concepts/spaces/README.md) and based that access on specific Slack channel.

!!! warning
It's important to know that all access rules assigned won’t work until you [change management](../../concepts/user-management/README.md#migrating-from-login-policy) strategy from login policy to user management.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same comment as above

docs/concepts/user-management/README.md Outdated Show resolved Hide resolved
docs/concepts/user-management/admin.md Outdated Show resolved Hide resolved
@@ -0,0 +1,42 @@
# User Management

Spacelift is made for collaboration. In order to collaborate, you need collaborators. User Management is an easy way to invite new members to your organization and manage their permissions, together with third-party integrations and group access. If you prefer to write a policy rather than using our UI, please check [Login Policy](../policy/login-policy.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Spacelift is made for collaboration. In order to collaborate, you need collaborators. User Management is an easy way to invite new members to your organization and manage their permissions, together with third-party integrations and group access. If you prefer to write a policy rather than using our UI, please check [Login Policy](../policy/login-policy.md).
Spacelift is made for collaboration. In order to collaborate, you need collaborators. User Management is an easy way to invite new members to your organization and manage their permissions, together with third-party integrations and group access. If you prefer to write a policy rather than using our UI, please check out [Login Policies](../policy/login-policy.md).


## Roles

User Management works by setting one of the following roles for users, groups and integrations for selected [Spaces](../spaces/README.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should define what integrations mean, or just link to the integrations section?


User Management works by setting one of the following roles for users, groups and integrations for selected [Spaces](../spaces/README.md).

- **Read** - cannot create or modify neither stacks nor any attachable entities, but can view them
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Read** - cannot create or modify neither stacks nor any attachable entities, but can view them
- **Read** - cannot create or modify stacks or any attachable entities, but can view them

User Management works by setting one of the following roles for users, groups and integrations for selected [Spaces](../spaces/README.md).

- **Read** - cannot create or modify neither stacks nor any attachable entities, but can view them
- **Write** - an extension to Read, as it can trigger runs in the stacks it sees
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Write** - an extension to Read, as it can trigger runs in the stacks it sees
- **Write** - can perform actions like triggering runs, but cannot create or modify Spacelift resources

The displayed Role badge is different than the space access role. It describes the user's role within the organization, instead of specific space permissions. This badge can have one of three values:

- **OWNER** - account admin, SSO admin or GitHub organization being the owner of an account.
- **ADMIN** - a user who has direct admin permissions to **root** space. This badge does not take group or integration permissions into account.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **ADMIN** - a user who has direct admin permissions to **root** space. This badge does not take group or integration permissions into account.
- **ADMIN** - a user who has direct admin permissions to the **root** space. This badge does not take group or integration permissions into account.


### Slack integration

After setting up [Slack integration](../../integrations/chatops/slack.md) you can also grant permissions to entire Slack channels after selecting **Integrations** tab and clicking **Manage access** button in Slack card. You can input a human-readable name along the Slack channel ID. You can then add Space permissions the same way you would for Users and Groups.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
After setting up [Slack integration](../../integrations/chatops/slack.md) you can also grant permissions to entire Slack channels after selecting **Integrations** tab and clicking **Manage access** button in Slack card. You can input a human-readable name along the Slack channel ID. You can then add Space permissions the same way you would for Users and Groups.
After setting up the [Slack integration](../../integrations/chatops/slack.md) you can also grant permissions to entire Slack channels after selecting **Integrations** tab and clicking **Manage access** button in Slack card. You can input a human-readable name along the Slack channel ID. You can then add Space permissions the same way you would for Users and Groups.


### Login policy

Another way of adding users to Spacelift is using login policy.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Another way of adding users to Spacelift is using login policy.
Another way of adding users to Spacelift is using a login policy.


Another way of adding users to Spacelift is using login policy.

Go to the "Organization settings" page that can be found in the user dropdown in the bottom of the left sidebar. Once you there, choose "Login policy" from settings menu and click the "Create policy" button in the top-right corner.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Go to the "Organization settings" page that can be found in the user dropdown in the bottom of the left sidebar. Once you there, choose "Login policy" from settings menu and click the "Create policy" button in the top-right corner.
Go to the "Organization settings" page that can be found in the user dropdown in the bottom of the left sidebar. Once there, choose "Login policy" from settings menu and click the "Create policy" button in the top-right corner.

@@ -143,6 +141,19 @@ space_write["Y"] {
}
```

### Manage Slack access page

Using Manage Slack access page is another way to control access for the Slack integration. Using this method you can control who can access stacks which are in a specific [Space](../../concepts/spaces/README.md) and based that access on specific Slack channel.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Using Manage Slack access page is another way to control access for the Slack integration. Using this method you can control who can access stacks which are in a specific [Space](../../concepts/spaces/README.md) and based that access on specific Slack channel.
Using the Manage Slack access page is another way to control access for the Slack integration. Using this method you can control who can access stacks which are in a specific [Space](../../concepts/spaces/README.md) and base that access on a specific Slack channel.

docs/integrations/chatops/slack.md Show resolved Hide resolved
@render
Copy link

render bot commented Sep 19, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants