Aller au contenu principal

Projets et environnements

L'écran Projets et environnements permet de créer les projets qui regroupent agents, modèles et budgets, de les modifier ou de les supprimer, et d'ajouter leurs environnements dev, test, staging et prod. Chemin dans le portail : /admin/projects. Il sert aux administrateurs du tenant (tenant_admin) ; les autres membres du tenant lisent les projets auxquels ils ont accès.

Ce que montre l'écran​

Deux blocs, l'un sous l'autre.

Tableau Projets, avec Actualiser et Nouveau projet :

ColonneContenu
SlugIdentifiant du projet dans le tenant (minuscules, chiffres, tirets, 63 caractères au plus).
NomNom affiché.
DescriptionTexte libre.
CrééDate de création.

Un clic sur une ligne ouvre un panneau latéral avec le projet complet lu dans l'API (environnements compris). La liste est paginée par slug. État vide : Aucun projet, « Les projets délimitent agents, budgets et environnements. »

Bloc Environnements du projet, affiché dès qu'un projet existe : un sélecteur Projet (le premier projet est sélectionné par défaut) et le tableau de ses environnements :

ColonneContenu
Nomdev, test, staging ou prod.
CrééDate de création.

État vide : Aucun environnement, « Ajoutez dev, test, staging ou prod. »

Actions​

Bouton ou actionCe qu'il faitAppel d'APIRôles
Ouverture de l'écran, ActualiserLit les projets ; le sélecteur lit jusqu'à 200 projets.GET /v1/projectsMembre du tenant
Nouveau projet puis CréerFormulaire Slug (obligatoire), Nom (obligatoire), Description.POST /v1/projectstenant_admin
Clic sur une ligne de projetOuvre le panneau de détail.GET /v1/projects/{id}Membre qui détient la relation viewer sur le projet
ModifierBoîte de dialogue Nom, Description, puis Modifier.PATCH /v1/projects/{id}tenant_admin avec la relation editor sur le projet
SupprimerConfirmation destructive qui liste l'impact (dépendants lus dans le graphe de lignage), puis suppression.DELETE /v1/projects/{id} (impact : GET /v1/lineage/graph)tenant_admin avec la relation owner sur le projet
Sélecteur ProjetChoisit le projet dont les environnements s'affichent.GET /v1/projects/{id}/environmentsMembre qui détient la relation viewer
Nouvel environnement puis CréerFormulaire Nom (obligatoire : dev, test, staging, prod) et Paramètres (JSON, {} par défaut).POST /v1/projects/{id}/environmentstenant_admin avec la relation editor

Rôles​

D'après services/control-plane/src/eai/domains/tenancy/__init__.py :

  • Lire la liste exige un principal rattaché à un tenant (require_tenant) ; un principal sans tenant reçoit tenant_required.
  • Créer un projet ou un environnement, modifier et supprimer exigent tenant_admin (platform_admin passe toujours).
  • En plus du rôle, les routes d'un projet vérifient une relation ReBAC (require_relation) : viewer pour lire, editor pour modifier et ajouter un environnement, owner pour supprimer. Le créateur d'un projet en est inscrit propriétaire.

Le portail affiche les boutons à tout utilisateur (aucun rôle déclaré dans projectsCfg) ; le serveur fait autorité.

attention

Supprimer retire définitivement le projet. Lisez l'impact listé par la confirmation (agents, clés, quotas qui dépendent du projet) avant de confirmer.

Tâches courantes​

Créer un projet et ses environnements​

  1. Créer le projet. Bouton Nouveau projet : saisissez le Slug (risk), le Nom et une Description, puis Créer. Résultat attendu : le message Créé et la nouvelle ligne. En cas d'échec : conflict (HTTP 409) si le slug existe dans le tenant ; forbidden si vous n'êtes pas tenant_admin.
  2. Le sélectionner. Dans le bloc Environnements du projet, choisissez-le dans Projet. Résultat attendu : l'état vide Aucun environnement. En cas d'échec : le bloc manque quand la liste des projets est vide ; cliquez Actualiser.
  3. Ajouter chaque environnement. Bouton Nouvel environnement, choisissez Nom (dev, puis prod), gardez Paramètres à {} et Créer. Les environnements séparent les déploiements des agents et des applications. Résultat attendu : une ligne par environnement. En cas d'échec : conflict (HTTP 409) si l'environnement existe déjà pour le projet.

Renommer ou décrire un projet​

  1. Ouvrir l'action. Menu de la ligne > Modifier. Résultat attendu : une boîte de dialogue remplie avec le nom et la description actuels. En cas d'échec : une erreur forbidden à l'envoi signifie qu'il vous manque la relation editor ou le rôle tenant_admin.
  2. Changer les valeurs et envoyer. Bouton Modifier. Résultat attendu : le message Terminé et les nouvelles valeurs dans le tableau. En cas d'échec : lisez le code de l'erreur sous le formulaire.

Supprimer un projet​

  1. Ouvrir l'action. Menu de la ligne > Supprimer. La confirmation liste les dépendants trouvés dans le graphe de lignage. Résultat attendu : la boîte de confirmation destructive. En cas d'échec : quand le graphe ne peut pas être lu, la boîte garde le risque par défaut « Supprimer ne peut pas être annulé depuis cet écran ».
  2. Confirmer. Résultat attendu : le message Terminé et la ligne disparaît. En cas d'échec : forbidden si vous n'êtes pas propriétaire du projet ; not_found s'il a déjà été supprimé.

Dépannage​

SymptômeCauseCorrection
tenant_required (HTTP 403)La session n'agit pas dans un tenant.Connectez-vous avec un compte rattaché à un tenant.
forbidden (HTTP 403) sur Créer, Modifier ou SupprimerRôle tenant_admin absent, ou relation ReBAC editor / owner absente sur le projet.Adressez-vous à un tenant_admin, ou obtenez la relation via Permissions (ReBAC).
conflict (HTTP 409)Un projet avec ce slug, ou cet environnement du projet, existe déjà.Prenez un autre slug, ou gardez l'environnement existant.
not_found (HTTP 404)Le projet a été supprimé ou l'identifiant n'est pas un UUID.Cliquez Actualiser.
Le bloc Environnements du projet manqueLe tenant n'a encore aucun projet.Créez d'abord un projet.

Pages liées​