Connecteurs
L'écran Connecteurs vous permet de lister les connexions aux systèmes métier, de déposer leurs identifiants dans le Credential Broker (ils ne sont jamais renvoyés), de tester un connecteur, de lancer et suivre ses synchronisations, de changer son propriétaire ou son statut, et de le supprimer. Chemin dans le portail : /capabilities/connectors. Les développeurs et les responsables d'application enregistrent et testent les connecteurs ; les administrateurs du tenant et les responsables sécurité gèrent les identifiants. L'écran est dessiné par portal/src/screens/capabilities.tsx.
Ce que montre l'écran
- Tableau Connecteurs, lu par
GET /v1/connectors(tous les connecteurs en un appel, par nom). Colonnes : Nom, Système, Type d'authentification, Identifiants (les identifiants déposés avec leur type, leurs métadonnées et leur date de mise à jour, jamais leurs valeurs), Statut, Mis à jour. Vide : Aucun connecteur, aide Appliquez un manifeste Connector ci-dessous. - Un clic sur une ligne, ou Voir le détail, ouvre un panneau latéral avec
GET /v1/connectors/{name}. - Panneau Appliquer un manifeste prérempli avec un exemple de manifeste Connector (
portal/src/samples/connector-manifest.json), avec Rétablir l'exemple et Appliquer.
Actions
| Bouton ou action | Ce qu'il fait | Appel d'API | Rôles |
|---|---|---|---|
| Actualiser (icône) | Recharge la liste. | GET /v1/connectors | Tout membre du tenant |
| Clic sur une ligne ou Voir le détail | Ouvre la fiche du connecteur. | GET /v1/connectors/{name} | Tout membre du tenant |
| Menu Identifiants | Formulaire Type (obligatoire : api_key, oauth2_client, basic, webhook_secret, service_account) et les champs en écriture seule Clé d'API, Identifiant client, Secret client, Nom d'utilisateur, Mot de passe, Secret, Jeton. Les champs vides ne sont pas envoyés ; les valeurs partent au Credential Broker. | POST /v1/connectors/{name}/credentials | tenant_admin, security_officer |
| Menu Tester | Teste la connexion avec l'identifiant déposé et affiche le résultat. | POST /v1/connectors/{name}/test | tenant_admin, developer, application_owner |
| Menu Synchroniser | Lance une synchronisation (réponse 202) et affiche la réponse. | POST /v1/connectors/{name}/sync | tenant_admin, developer, agent |
| Menu Synchronisations | Affiche les dernières synchronisations du connecteur. | GET /v1/connectors/{name}/sync-runs | Tout membre du tenant |
| Menu Modifier | Formulaire Propriétaire et Statut (active, disabled). | PATCH /v1/connectors/{name} | tenant_admin, developer, application_owner |
| Menu Supprimer | Ouvre Confirmer une action destructive ; saisissez le nom du connecteur, puis Confirmer. | GET /v1/lineage/graph, puis DELETE /v1/connectors/{name} | tenant_admin |
| Rétablir l'exemple / Appliquer | Remet l'exemple / applique le manifeste Connector. | POST /v1/manifests/apply | tenant_admin, developer |
| Réessayer (état d'erreur) | Relance la lecture qui a échoué. | Même appel | Mêmes rôles |
Les champs d'identifiants sont en écriture seule : le portail ne les relit jamais et l'API ne les renvoie jamais. Saisissez-les sur un poste de confiance et ne collez jamais un secret dans Appliquer un manifeste : un manifeste référence un secret, il ne le contient pas.
Rôles
Le portail ne masque aucun bouton. Dans services/control-plane/src/eai/domains/connectors/routes.py : les identifiants demandent tenant_admin ou security_officer ; le test et la modification demandent WRITE_ROLES (tenant_admin, developer, application_owner) ; la synchronisation demande OPS_ROLES (tenant_admin, developer, agent) ; la suppression demande tenant_admin ; la lecture demande un tenant. platform_admin passe tous les contrôles de rôle.
Tâches courantes
Connecter un système métier
- Appliquer le manifeste. Le manifeste décrit le système, l'authentification et les portées autorisées. Dans Appliquer un manifeste, collez votre manifeste Connector, puis cliquez sur Appliquer. Résultat attendu : Manifeste appliqué et le connecteur dans le tableau après Actualiser. En cas d'échec : corrigez les erreurs listées sous l'éditeur.
- Déposer l'identifiant. Le Credential Broker le conserve et le prête au runtime. Dans le menu de ligne, cliquez sur Identifiants, choisissez le Type, remplissez seulement les champs correspondants, puis cliquez sur Identifiants. Résultat attendu : le message Terminé et le type dans la colonne Identifiants. En cas d'échec :
forbiddensignifie que vous n'êtes nitenant_adminnisecurity_officer. - Tester la connexion. Le test demande au Credential Broker les en-têtes d'authentification et, si le manifeste a une
base_url, l'appelle. Cliquez sur Tester. Résultat attendu : un panneau latéral avecok: trueetcredentials: ok(plushttp_status). En cas d'échec :ok: falses'accompagne d'uneerror, par exempleegress_denied(adresse refusée par la politique de sortie) ouupstream_unavailable; un identifiant absent ou refusé apparaît commecredential_unavailableoucredential_rejected.
Synchroniser un connecteur et suivre la synchronisation
- Lancer la synchronisation. Une seule synchronisation tourne à la fois. Cliquez sur Synchroniser. Résultat attendu : un panneau latéral avec la synchronisation acceptée. En cas d'échec :
sync_in_progresssignifie qu'une autre tourne ;sync_disabledsignifie que le manifeste désactive la synchronisation. - La suivre. Chaque synchronisation est enregistrée. Cliquez sur Synchronisations. Résultat attendu : la liste des dernières synchronisations avec leur statut. En cas d'échec : cliquez sur Actualiser et recommencez.
Désactiver un connecteur
- Modifier son statut. Un connecteur désactivé refuse les synchronisations, les prêts d'identifiants et les webhooks. Cliquez sur Modifier, choisissez
disableddans Statut, puis cliquez sur Modifier. Résultat attendu : le statut Désactivé. En cas d'échec :forbiddensignifie qu'il vous manquetenant_admin,developerouapplication_owner.
Dépannage
| Symptôme | Cause | Correction |
|---|---|---|
connector_not_found (404) | Le nom est faux ou le connecteur a été supprimé. | Copiez le nom depuis le tableau. |
connector_disabled (409) : « Le connecteur est désactivé. » | Le statut est disabled. | Remettez-le à active avec Modifier. |
credential_rejected (502) : « Le fournisseur d'identité a refusé l'identifiant. » | Le secret est faux ou expiré. | Déposez un nouvel identifiant avec Identifiants. |
credential_unavailable (502) : « L'identifiant n'est pas disponible. » | Aucun identifiant du type attendu n'est déposé, ou sa référence ne peut pas être lue. | Déposez-le avec Identifiants. |
sync_in_progress (409) : « Une synchronisation est déjà en cours. » | Une synchronisation tourne. | Attendez sa fin dans Synchronisations. |
sync_disabled (409) | Le manifeste désactive la synchronisation. | Activez-la dans le manifeste et appliquez-le de nouveau. |
scope_not_allowed (403) | Une portée demandée n'est pas autorisée pour ce connecteur. | N'utilisez que les portées du manifeste. |
Tester affiche error: egress_denied | La politique de sortie refuse l'adresse de base_url. | Demandez à l'équipe sécurité d'autoriser l'hôte. |