Intégrations
À quoi sert cet écran
L’onglet Integrations relie Fenwave aux services tiers utilisés par vos équipes en dehors de la plateforme. Aujourd’hui, il s’agit de Jira et de Slack.
Contrairement à CI/CD, qui connecte les outils qui construisent et déploient, ces intégrations enrichissent ce qui se passe autour d’un déploiement : liens vers les tickets, suivi et notifications, plutôt qu’exécution.
Chaque intégration se configure une seule fois, pour toute la plateforme : une instance Jira, un espace de travail Slack, partagés par tous les plugins qui en ont besoin.
Avant de commencer
| Pour faire ceci | Il vous faut |
|---|---|
| Voir l’onglet | platform-settings.project.read |
| Configurer ou désactiver une intégration | platform-settings.project.update |
Les intégrations réutilisent les permissions de projet plutôt que d’avoir leur propre famille. Si vous pouvez modifier des projets, vous pouvez configurer les intégrations.
Ouvrir l’écran
- Settings › Development
- Sélectionnez l’onglet Integrations.
L’interface
📸 Capture d’écran : L’onglet Integrations avec les lignes Jira et Slack. Repères : (1) le nom de l’intégration, (2) la pastille de statut indiquant Connected, Failing ou Disabled, (3) l’action de configuration.
| # | Élément | Ce qu’il fait | Quand l’utiliser |
|---|---|---|---|
| 1 | Nom et description de l’intégration | Ce que fait l’intégration | Décider si vous en avez besoin |
| 2 | Pastille de statut | Connected, Failing ou Disabled | Tri d’un coup d’œil |
| 3 | Configurer | Ouvre la boîte de dialogue des identifiants | Mise en place ou correction d’une panne |
Signification des statuts
| Statut | Signifie | À faire |
|---|---|---|
| Connected | Les identifiants ont été vérifiés à l’enregistrement et fonctionnent | Rien |
| Failing | Configuré, mais le service ne répond pas comme attendu | Reconfigurer — généralement des identifiants expirés |
| Disabled | Volontairement désactivé, ou jamais configuré | Le configurer, si vous en avez besoin |
Les identifiants sont vérifiés au moment de l’enregistrement. Un enregistrement réussi vous indique qu’ils fonctionnaient à cet instant — c’est pourquoi Failing apparaît plus tard, et non à la mise en place.
Procédures
Connecter Jira
Nécessite platform-settings.project.update.
- Settings › Development › Integrations.
- Ouvrez la ligne Jira et configurez-la.
- Saisissez les paramètres de connexion et les identifiants.
- Enregistrez. La confirmation indique explicitement que les identifiants ont été vérifiés ; si ce n’est pas le cas, ils ne l’ont pas été.
- Vérifiez que la pastille affiche Connected.
Connecter Slack
Nécessite platform-settings.project.update.
Slack diffuse les notifications de la plateforme : les déploiements qui se terminent en dev, staging et production, ainsi que tout ce qu’un plugin choisit d’annoncer.
Commencez par la configuration côté Slack, sur https://api.slack.com/apps :
- Créez une application Slack pour votre espace de travail.
- Dans OAuth & Permissions, ajoutez le scope bot
chat:write, puis installez l’application dans l’espace de travail. - Copiez le Bot User OAuth Token : il commence par
xoxb-. - Invitez l’application dans chaque canal que vous comptez utiliser, en
tapant
/invite @votre-appdans chacun.
L’étape 4 est celle que l’on oublie. Le scope chat:write autorise
l’application à publier, mais Slack refuse malgré tout si l’application n’est
pas membre du canal — et comme les notifications échouent silencieusement, le
symptôme est le silence, pas une erreur.
Ensuite, dans Fenwave :
- Settings › Development › Integrations.
- Ouvrez la ligne Slack et configurez-la.
- Collez le token bot et renseignez les canaux.
- Enregistrez. Le token est vérifié auprès de Slack lors de l’enregistrement.
- Vérifiez que la pastille affiche Connected.
Plus rapide : créer l’application à partir d’un manifeste
La fenêtre Create New App de Slack propose From an app manifest. Coller ceci remplace les étapes 1 et 2 et évite les deux réglages que l’on oublie : le bot user, sans lequel Slack n’émet jamais de token, et la rotation des tokens, qui ferait cesser les notifications quelques heures après la mise en place.
_metadata:
major_version: 2
minor_version: 1
display_information:
name: Fenwave
description: Deployment and platform notifications from your Fenwave IDP
background_color: "#1a1d23"
features:
bot_user:
display_name: Fenwave
always_online: true
oauth_config:
scopes:
bot:
- chat:write
settings:
org_deploy_enabled: false
socket_mode_enabled: false
token_rotation_enabled: false
Il reste à installer l’application, copier le token et l’inviter dans vos canaux.
Choisir les canaux
| Champ | Sert à |
|---|---|
| Default | Tout ce qui n’a pas de canal d’environnement. Obligatoire. |
| Dev | Environnements de branche |
| Staging | Déploiements en staging |
| Production | Déploiements en production |
Laissez les champs d’environnement vides pour tout envoyer dans le canal par défaut. Renseignez-les lorsque des publics différents s’intéressent à des environnements différents : les annonces de production dans un canal que toute l’équipe surveille, l’agitation du dev dans un canal qu’elle peut mettre en sourdine.
Pourquoi un token bot plutôt qu'une URL de webhook
Un webhook entrant Slack est lié définitivement à un seul canal. Router dev, staging et production vers des endroits différents impose un token bot.
Désactiver une intégration
Nécessite platform-settings.project.update.
Désactivez-la depuis la même boîte de dialogue. La configuration est conservée : la réactiver plus tard n’oblige pas à tout ressaisir.
Scénario
Les liens Jira ne se résolvent plus après une rotation d’identifiants.
Personne n’a rien changé dans Fenwave, et c’est le signe révélateur.
- Settings › Development › Integrations.
- La pastille Jira affiche Failing : l’intégration est donc configurée, et le problème vient des identifiants plutôt que de la mise en place.
- Ouvrez la configuration et saisissez les nouveaux identifiants.
- Enregistrez. La vérification fait partie de l’enregistrement : un enregistrement réussi est votre preuve.
- Vérifiez que la pastille repasse à Connected.
La leçon générale : Failing signifie « fonctionnait, ne fonctionne plus » et désigne les identifiants ; Disabled signifie « jamais mis en place » et désigne la configuration. Bien lire la pastille évite de commencer au mauvais endroit.
Slack affiche Connected, mais aucune notification n’arrive.
La pastille dit vrai, et elle ne dit pas tout. Connected signifie que le token a été vérifié. Cela n’indique rien sur les canaux : ceux-ci ne sont éprouvés qu’au moment de l’envoi d’une vraie notification.
Deux causes, par ordre de probabilité :
- L’application n’a jamais été invitée dans le canal. Ouvrez le canal dans
Slack et tapez
/invite @votre-app. C’est de loin la cause la plus fréquente. - Le nom du canal est incorrect : une faute de frappe, un canal renommé, ou un canal privé que l’application ne peut pas voir.
Dans les deux cas, l’échec est consigné dans les logs du backend plutôt
qu’affiché à l’écran, car une notification ne doit jamais faire échouer le
déploiement qui l’a déclenchée. Cherchez not_in_channel (cause 1) ou
channel_not_found (cause 2).
La leçon générale : une intégration vérifiée n’est pas la même chose qu’un canal de diffusion qui fonctionne. La vérification prouve l’identifiant ; seule une vraie notification prouve la route.
En cas de problème
| Symptôme | Cause | Comment vérifier | Solution |
|---|---|---|---|
| Statut Failing | Identifiants expirés ou service injoignable | Reconfigurez et enregistrez | Saisissez de nouveaux identifiants ; la vérification a lieu à l’enregistrement |
| L’enregistrement est refusé | Les identifiants n’ont pas été vérifiés | L’erreur dans la boîte de dialogue | Corrigez-les — rien n’est stocké si la vérification échoue |
| Statut Disabled de façon inattendue | Quelqu’un l’a désactivée, ou elle n’a jamais été configurée | La boîte de dialogue de configuration | Réactivez ; les réglages enregistrés sont conservés |
| Impossible de configurer quoi que ce soit | Il manque platform-settings.project.update |
Access Explorer | Demandez un rôle qui l’accorde |
| Slack est Connected mais silencieux | L’application n’est pas dans le canal | Logs du backend : not_in_channel |
/invite @votre-app dans chaque canal configuré |
| Toutes les notifications vont au même canal | Les canaux d’environnement sont vides | La boîte de dialogue Slack | Renseignez les champs Dev, Staging et Production |
| Le token Slack est refusé à l’enregistrement | C’est un token utilisateur, pas un token bot | L’erreur dans la boîte de dialogue | Utilisez le Bot User OAuth Token : il commence par xoxb- |
| L’intégration souhaitée n’est pas listée | Seuls Jira et Slack sont disponibles aujourd’hui | — | Non configurable ; rien à activer |