mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-28 00:06:53 +01:00
d75c63b6e8
<!-- Thanks for creating a PR! To make it easier for reviewers and everyone else to understand what your changes relate to, please add some relevant content to the headings below. Feel free to ignore or delete sections that you don't think are relevant. Thank you! ❤️ --> ## About the changes <!-- Describe the changes introduced. What are they and why are they being introduced? Feel free to also add screenshots or steps to view the changes if they're visual. --> ### Summary - Add `PROJECT_ARCHIVED` event on `EVENT_MAP` to use - Add a test case for `PROJECT_ARCHIVED` event formatting - Add `PROJECT_ARCHIVED` event when users choose which events they send to Slack - Fix Slack integration document by adding `PROJECT_ARCHIVED` ### Example The example message looks like the image below. I covered my email with a black rectangle to protect my privacy 😄 The link refers `/projects-archive` to see archived projects. <img width="529" alt="Slack message example" src="https://github.com/user-attachments/assets/938c639f-f04a-49af-9b4a-4632cdea9ca7"> ## Discussion points <!-- Anything about the PR you'd like to discuss before it gets merged? Got any questions or doubts? --> I considered the reason why Unleash didn't implement to send `PROJECT_ARCHIVED` message to Slack integration. One thing I assumed that it is impossible to create a new project with open source codes, which means it is only enabled in the enterprise plan. However, [document](https://docs.getunleash.io/reference/integrations/slack-app#events) explains that users can send `PROJECT_CREATED` and `PROJECT_DELETED` events to Slack, which are also available only in the enterprise plan, hence it means we need to embrace all worthwhile events. I think it is reasonable to add `PROJECT_ARCHIVED` event to Slack integration because users, especially operators, need to track them through Slack by separating steps, `_CREATED`, `_ARCHIVED`, and `_DELETED`.
101 lines
4.5 KiB
Plaintext
101 lines
4.5 KiB
Plaintext
---
|
|
title: Slack App
|
|
---
|
|
|
|
import Figure from '@site/src/components/Figure/Figure.tsx'
|
|
|
|
:::note Availability
|
|
|
|
**Version**: `5.5+`
|
|
|
|
:::
|
|
|
|
The Slack App integration posts messages to a specified set of channels in your Slack workspace. The channels can be public or private, and can be specified on a per-flag basis by using [Slack tags](#tags).
|
|
|
|
## Installation {#installation}
|
|
|
|
To install the Slack App integration, follow these steps:
|
|
|
|
1. Navigate to the *integrations* page in the Unleash admin UI (available at the URL `/integrations`) and select "configure" on the Slack App integration.
|
|
2. On the integration configuration form, use the "install & connect" button.
|
|
3. A new tab will open, asking you to select the Slack workspace where you'd like to install the app.
|
|
4. After successful installation of the Unleash Slack App in your chosen Slack workspace, you'll be automatically redirected to a page displaying a newly generated access token.
|
|
5. Copy this access token and paste it into the `Access token` field within the integration settings.
|
|
|
|
By default, the Unleash Slack App is granted access to public channels. If you want the app to post messages to private channels, you'll need to manually invite it to each of those channels.
|
|
|
|
## Configuration {#configuration}
|
|
|
|
The configuration settings allow you to choose the events you're interested in and whether you want to filter them by projects and environments. You can configure a comma-separated list of channels to post the configured events to. These channels are always notified, regardless of the event type or the presence of [Slack tags](#tags).
|
|
|
|
#### Events {#events}
|
|
|
|
You can choose to trigger updates for the following events:
|
|
|
|
- addon-config-created
|
|
- addon-config-deleted
|
|
- addon-config-updated
|
|
- api-token-created
|
|
- api-token-deleted
|
|
- change-added
|
|
- change-discarded
|
|
- change-edited
|
|
- change-request-applied
|
|
- change-request-approval-added
|
|
- change-request-approved
|
|
- change-request-cancelled
|
|
- change-request-created
|
|
- change-request-discarded
|
|
- change-request-rejected
|
|
- change-request-sent-to-review
|
|
- context-field-created
|
|
- context-field-deleted
|
|
- context-field-updated
|
|
- feature-archived
|
|
- feature-created
|
|
- feature-deleted
|
|
- feature-environment-disabled
|
|
- feature-environment-enabled
|
|
- feature-environment-variants-updated
|
|
- feature-metadata-updated
|
|
- feature-potentially-stale-on
|
|
- feature-project-change
|
|
- feature-revived
|
|
- feature-stale-off
|
|
- feature-stale-on
|
|
- feature-strategy-add
|
|
- feature-strategy-remove
|
|
- feature-strategy-update
|
|
- feature-tagged
|
|
- feature-untagged
|
|
- group-created
|
|
- group-deleted
|
|
- group-updated
|
|
- project-created
|
|
- project-archived
|
|
- project-deleted
|
|
- segment-created
|
|
- segment-deleted
|
|
- segment-updated
|
|
- service-account-created
|
|
- service-account-deleted
|
|
- service-account-updated
|
|
- user-created
|
|
- user-deleted
|
|
- user-updated
|
|
|
|
#### Parameters {#parameters}
|
|
|
|
The Unleash Slack App integration takes the following parameters.
|
|
|
|
- **Access token** - This is the only required property. After successful installation of the Unleash Slack App in your chosen Slack workspace, you'll be automatically redirected to a page displaying a newly generated access token. You should copy this access token and paste it into this field.
|
|
- **Channels** - A comma-separated list of channels to post the configured events to. These channels are always notified, regardless of the event type or the presence of a Slack tag.
|
|
|
|
## Tags {#tags}
|
|
|
|
Besides the configured channels, you can choose to notify other channels by tagging your feature flags with Slack-specific tags. For instance, if you want the Unleash Slack App to send notifications to the `#general` channel, add a Slack-type tag with the value "general" (or "#general"; both will work) to your flag. This will ensure that any configured events related to that feature flag will notify the tagged channel in addition to any channels configured on the integration-level.
|
|
|
|
To exclusively use tags for determining notification channels, you can leave the "channels" field blank in the integration configuration. Since you can have multiple configurations for the integration, you're free to mix and match settings to meet your precise needs. Before posting a message, all channels for that event, both configured and tagged, are combined and duplicates are removed.
|
|
|
|
<Figure caption="We have defined two Slack tags for the "new-payment-system" flag. In this example Unleash will post updates to the #notifications and #random channels, along with any channels defined in the integration configuration." img="/img/slack-addon-tags.png"/>
|