mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-22 19:07:54 +01:00
521cc24a22
https://linear.app/unleash/issue/2-1253/add-support-for-more-events-in-the-slack-app-integration Adds support for a lot more events in our integrations. Here is how the full list looks like: - 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_DELETED - SEGMENT_CREATED - SEGMENT_DELETED - SEGMENT_UPDATED - SERVICE_ACCOUNT_CREATED - SERVICE_ACCOUNT_DELETED - SERVICE_ACCOUNT_UPDATED - USER_CREATED - USER_DELETED - USER_UPDATED I added the events that I thought were relevant based on my own discretion. Know of any event we should add? Let me know and I'll add it 🙂 For now I only added these events to the new Slack App integration, but we can add them to the other integrations as well since they are now supported. The event formatter was refactored and changed quite a bit in order to make it easier to maintain and add new events in the future. As a result, events are now posted with different text. Do we consider this a breaking change? If so, I can keep the old event formatter around, create a new one and only use it for the new Slack App integration. I noticed we don't have good 404 behaviors in the UI for things that are deleted in the meantime, that's why I avoided some links to specific resources (like feature strategies, integration configurations, etc), but we could add them later if we improve this. This PR also tries to add some consistency to the the way we log events.
100 lines
4.5 KiB
Markdown
100 lines
4.5 KiB
Markdown
---
|
|
title: Slack App
|
|
---
|
|
|
|
import Figure from '@site/src/components/Figure/Figure.tsx'
|
|
|
|
:::info Availability
|
|
|
|
The Slack App integration was introduced in **Unleash 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-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"/>
|