Slack integration let you act on connections that has review or jit plugin enabled, it sends notification letting you approve sessions directly from a channel in slack.
Requirements
- Privileges to create an application on slack
- Privileges to install the new app in a workspace
- Admin user on hoop
App Installation - Slack
- Create a slack app from an app manifest
- Select the workspace and click next and paste the manifest below
slack-manifest.json
- Follow the guide and click on Install to Workspace
- Scroll below and create an App-Level Token and copy the token
- Token Name:
hoop
- Scopes:
connections:write
,app_configurations:write
- Go to Install App on the left side bar and copy the Bot User Oauth Token
Lastly, invite the bot in the slack channel that you wish to receive notifications typing the name of the bot
@hoop
App Installation - Hoop
In this step the slack bot and app level tokens are required to configure the plugin.
- Login to your hoop instance:
hoop login
- Create the slack plugin
shellhoop admin create plugin slack \ --overwrite \ --config SLACK_BOT_TOKEN=xoxb-... \ --config SLACK_APP_TOKEN=xapp-... \ --config SLACK_CHANNEL=<your-slack-channel>
Now it’s possible to associate connections to the slack plugin in the webapp
Subscribe to Notifications
To subscribe and signup to receive notifications from the Hoop Bot, type
/hoop subscribe
and access the generated link. After sign in the user will start to receive notification when there’s a review approved and ready to be executed.Subscribing Manually [Optional]
To add approvers that are allowed to review sessions, fetch the slack id of the user and update it using the command line.
shellhoop admin create user <approver@domain.tld> --overwrite \ --groups admin,sre \ --slackid <SLACK-USER-ID>
Copy the Slack ID
- In the slack app, click on the top right corner in your profile photo
- Select Profile
- Click on the more options button (see image below) and copy the member’s ID
You can copy the id of other members too on slack.
Usage
To be able to use it, the review plugins must be enabled for a connection. When trying to interacting with it, it will send a message to the configured slack channel.
- Enable the review plugin
shellhoop admin create plugin review --overwrite
- Associate the connection with the
review
andslack
plugin
shellhoop admin create conn bash \ --overwrite \ --agent default \ --plugin 'review:admin;sre' \ --plugin slack \ -- bash
Then, interacting with the connection will send a message on your slack channel. After it’s approved it will send a message to the creator.
shellhoop connect bash
shellhoop exec bash 'ls'