Aller au contenu principal

Atelier de plugins

L'écran Atelier de plugins vous permet d'écrire un manifeste Plugin (capacités, bac à sable, permissions, artefact OCI signé), de le vérifier selon le contrat plugin-manifest et de l'enregistrer : le registre vérifie la signature. Chemin dans le portail : /studio/plugins. Il sert aux développeurs et aux administrateurs du tenant qui publient des plugins ; le pack lui-même est créé et signé par la CI du pack.

Ce que montre l'écran​

  • À gauche, la liste des plugins (GET /v1/plugins), paginée, avec Nouveau en haut. Une liste vide affiche Aucun plugin pour l'instant.
  • Onglet Éditeur : Manifeste (JSON) vérifié en direct selon le schéma JSON plugin-manifest, les problèmes de l'éditeur, JSON invalide : ..., les boutons Valider sur le serveur et Créer ou Enregistrer comme nouvelle version, le résultat de validation et la réponse du registre.
  • Onglet Test, une fois un plugin enregistré ouvert : Statut dans le registre avec le bouton Lire le statut (vérification, runtime du bac à sable et déploiement).
  • Le manifeste de départ new-plugin contient artifact (référence OCI, empreinte, type de média), signature (empreinte, signataire), capabilities (un outil), sandbox (gvisor, réseau deny_all, système de fichiers racine en lecture seule, limites de CPU, de mémoire et de durée) et permissions.
  • Ouvrir un plugin lit son manifeste depuis GET /v1/plugins/{name}.

Actions​

Bouton ou actionCe qu'il faitAppel APIRôles
NouveauCharge le manifeste de départ new-plugin.AucunTout le monde
Clic sur un plugin de la listeCharge son manifeste enregistré.GET /v1/plugins/{name}Tout utilisateur connecté
Valider sur le serveurValide le manifeste selon plugin-manifest.POST /v1/contracts/{name}/validateTout utilisateur connecté
CréerEnregistre le plugin ; le registre vérifie la signature de l'artefact.POST /v1/pluginstenant_admin, developer
Enregistrer comme nouvelle versionEnregistre le manifeste en augmentant de un le dernier numéro de metadata.version.POST /v1/pluginstenant_admin, developer
Lire le statut (onglet Test)Lit la vérification, le runtime du bac à sable et le déploiement du plugin.GET /v1/plugins/{name}/statusRelation lecteur sur le plugin
Réessayer (état d'erreur)Relit la liste ou les schémas.GET /v1/plugins ou GET /v1/contracts/{name}Tout utilisateur connecté

Rôles​

Le portail active les boutons d'enregistrement pour STUDIO_WRITERS (tenant_admin, developer). Le Control Plane accepte tenant_admin, developer et application_owner sur POST /v1/plugins (WRITE_ROLES, services/control-plane/src/eai/domains/plugins/routes.py) et enregistre l'appelant comme propriétaire du plugin. GET /v1/plugins/{name}/status demande la relation lecteur sur le plugin. L'installation d'un plugin ne se fait pas ici : elle reste dans le catalogue.

Tâches courantes​

Enregistrer un plugin construit par la CI​

  1. Partir du modèle de départ. Cliquez sur Nouveau. Résultat attendu : le manifeste new-plugin. En cas d'échec : rechargez la page.
  2. Référencer l'artefact. Le registre vérifie ce que la CI a produit. Copiez la référence OCI, l'empreinte et la signature fournies par la CI du pack dans spec.artifact et spec.signature. Résultat attendu : Aucun problème détecté par l'éditeur. En cas d'échec : une empreinte s'écrit sha256: suivi de 64 caractères hexadécimaux.
  3. Régler le bac à sable et les permissions. Gardez le réseau fermé sauf besoin du plugin. Résultat attendu : un JSON valide. En cas d'échec : corrigez la ligne citée par le problème.
  4. Valider sur le serveur. Cliquez sur Valider sur le serveur. Résultat attendu : Valide selon contracts/v1. En cas d'échec : lisez la liste des erreurs.
  5. Créer. Cliquez sur Créer. Résultat attendu : le message Enregistré en version 0.1.0 et la réponse avec apply_status. En cas d'échec : voir Dépannage.

Vérifier le statut dans le registre​

  1. Ouvrir le plugin. Cliquez dessus dans la liste. Résultat attendu : l'onglet Test apparaît. En cas d'échec : enregistrez-le d'abord.
  2. Lire le statut. Ouvrez Test et cliquez sur Lire le statut. Résultat attendu : le JSON avec la vérification, le runtime et le déploiement. En cas d'échec : plugin_not_found signifie que le plugin n'est pas enregistré.

Dépannage​

SymptômeCauseCorrection
Erreur invalid_signature (401)La signature ne correspond pas à l'artefact.Reprenez l'empreinte et la signature produites par la CI.
Erreur plugin_blocked (403)Le plugin est bloqué par le registre.Demandez à un responsable sécurité la raison du blocage.
Erreur invalid_manifest (422)Le manifeste ne respecte pas le contrat.Corrigez les champs listés dans errors.
Erreur pack_requires_marketplace (422)L'artefact est un pack, installé par la marketplace.Publiez-le plutôt dans le Catalogue de packs.
Erreur plugin_not_found (404) sur le statutLe plugin n'est pas enregistré.Enregistrez-le d'abord.

Pages liées​