Catalogue des packs
L'écran Catalogue des packs permet de parcourir les packs signés de la marketplace, de lire leur version et leur
SBOM, de promouvoir une version en production, de suspendre ou reprendre un pack, de lancer un contrôle préalable avant
une installation et de gérer les éditeurs de confiance dont les clés vérifient les signatures. Chemin dans le portail :
/marketplace/catalog. Il sert aux administrateurs du tenant et aux responsables sécurité (tenant_admin,
security_officer) ; tout membre du tenant lit le catalogue.
Ce que montre l'écran
Trois onglets ; Contrôle préalable ne s'affiche qu'à tenant_admin et security_officer
(ROLES.marketplaceAdmins).
Onglet Paquets, avec le filtre Domaine et Filtrer, puis Actualiser :
| Colonne | Contenu |
|---|---|
| Nom | Nom du pack. |
| Domaine | Domaine métier du pack. |
| Description | Description. |
| Propriétaire | Propriétaire du pack. |
| Dernière version | Dernière version publiée. |
| Mis à jour | Date du dernier changement. |
Un clic sur une ligne ouvre un panneau latéral avec le pack lu dans l'API. État vide : Aucun paquet, « Publiez un pack signé avec le SDK pour le voir ici. »
Onglet Contrôle préalable : formulaire « Vérifie compatibilité, signature, permissions et références de secrets avant une installation. » avec Paquet, Version, Environnement, Permissions approuvées, Configuration, Références de secrets et une zone Résultat.
Onglet Éditeurs de confiance, avec Actualiser et Ajouter un éditeur :
| Colonne | Contenu |
|---|---|
| Nom | Nom de l'éditeur. |
| Algorithme | Algorithme de signature de sa clé. |
| Statut | active ou revoked. |
| Portée | Portée de la clé. |
| Créé | Date d'enregistrement. |
Un clic sur une ligne l'affiche dans un panneau latéral. État vide : Aucun éditeur.
Actions
| Bouton ou action | Ce qu'il fait | Appel d'API | Rôles |
|---|---|---|---|
| Onglet Paquets, Domaine puis Filtrer | Lit les packs, éventuellement d'un domaine. | GET /v1/marketplace/packages | Membre du tenant |
| Clic sur un pack | Ouvre le panneau de détail. | GET /v1/marketplace/packages/{name} | Membre du tenant |
| Promouvoir en production | Boîte de dialogue Approbation. Sans identifiant d'approbation, les portes de production sont vérifiées et une approbation à double validation est ouverte (la réponse donne son identifiant) ; avec l'identifiant d'une demande approuvée, la dernière version est promue. | POST /v1/marketplace/packages/{name}/versions/{version}/production | tenant_admin, security_officer |
| SBOM | Affiche le SBOM de la dernière version. | GET /v1/marketplace/packages/{name}/versions/{version}/sbom | Membre du tenant |
| Détail de la version | Affiche la dernière version. | GET /v1/marketplace/packages/{name}/versions/{version} | Membre du tenant |
| Suspendre le pack | Boîte de dialogue Raison (obligatoire) ; arrêt d'urgence immédiat du pack, qui suspend ses installations. Affichée sauf si le pack est suspendu. | POST /v1/marketplace/packages/{name}/status | tenant_admin, security_officer |
| Reprendre le pack | Boîte de dialogue Approbation, Raison ; lever une suspension passe par une approbation à double validation. Affichée pour un pack suspendu. | POST /v1/marketplace/packages/{name}/status | tenant_admin, security_officer |
| Onglet Contrôle préalable, formulaire puis Exécuter | Vérifie compatibilité, signature, permissions et références de secrets ; affiche le rapport. | POST /v1/marketplace/preflight | tenant_admin, security_officer |
| Onglet Éditeurs de confiance, Actualiser | Lit les éditeurs. | GET /v1/marketplace/publishers | Membre du tenant |
| Ajouter un éditeur puis Créer | Formulaire Nom (obligatoire), Clé publique (obligatoire, PEM -----BEGIN PUBLIC KEY-----). | POST /v1/marketplace/publishers | tenant_admin, security_officer |
| Révoquer (éditeur) | Confirmation destructive ; les packs signés avec cette clé ne sont plus de confiance. Affichée sauf si révoqué. | POST /v1/marketplace/publishers/{name}/revoke (impact : GET /v1/lineage/graph) | tenant_admin, security_officer |
Rôles
D'après services/control-plane/src/eai/domains/marketplace/routes.py : la lecture exige un principal rattaché à un
tenant ; la promotion, le statut des packs et les éditeurs exigent TRUST_ROLES (tenant_admin, security_officer) ;
le contrôle préalable exige tenant_admin ou security_officer. platform_admin passe chaque contrôle. Le portail
masque les actions d'écriture et l'onglet Contrôle préalable aux autres rôles.
Tâches courantes
Faire confiance à un nouvel éditeur
- Ajouter sa clé. Onglet Éditeurs de confiance > Ajouter un éditeur : Nom de l'éditeur, Clé
publique en PEM, puis Créer. La clé vérifie la signature de chaque pack de cet éditeur. Résultat attendu : une
ligne au statut
active. En cas d'échec :publisher_invalid_key(HTTP 422) si la clé ne peut pas être lue.
Vérifier un pack avant de l'installer
- Lire la version. Onglet Paquets, menu de la ligne > Détail de la version, puis SBOM. Résultat
attendu : deux panneaux latéraux avec le manifeste et les composants. En cas d'échec :
marketplace_version_not_found(HTTP 404). - Lancer le contrôle préalable. Onglet Contrôle préalable : Paquet, Version, Environnement
prod, Permissions approuvées (par exemplerag:query, tools:invoke), puis Exécuter. Résultat attendu : le rapport avec chaque contrôle. En cas d'échec :preflight_failed(HTTP 422) liste les contrôles en échec ; corrigez-les avant l'installation.
Promouvoir une version en production
- Demander la promotion. Menu de la ligne > Promouvoir en production, laissez Approbation vide, envoyez.
Résultat attendu : la réponse avec
pending_approvalet un identifiant d'approbation. En cas d'échec : la réponse liste la porte de production en échec. - La faire approuver, puis appliquer. D'autres personnes décident la demande dans Approbations ; relancez ensuite Promouvoir en production avec l'identifiant dans Approbation. Résultat attendu : la promotion est appliquée. En cas d'échec : l'approbation n'est pas encore accordée.
Dépannage
| Symptôme | Cause | Correction |
|---|---|---|
| Pas d'onglet Contrôle préalable, aucune action d'écriture | Votre rôle n'est ni tenant_admin ni security_officer. | Adressez-vous à un administrateur du tenant. |
preflight_failed (HTTP 422) | Un contrôle a échoué (compatibilité, signature, permissions, références de secrets). | Lisez les contrôles en échec dans les détails et corrigez-les. |
marketplace_package_not_found / marketplace_version_not_found (HTTP 404) | Pack ou version inconnu. | Vérifiez le nom et la Dernière version. |
publisher_invalid_key (HTTP 422) | La clé publique n'est pas une clé PEM valide. | Collez le bloc PEM entier. |
publisher_not_found (HTTP 404) | Éditeur inconnu. | Cliquez Actualiser. |
package_suspended (HTTP 409) | Le pack est suspendu par son arrêt d'urgence. | Reprenez le pack après approbation. |
forbidden (HTTP 403) | L'action exige tenant_admin ou security_officer. | Adressez-vous à l'un de ces rôles. |