Skip to content

💡 [REQUEST] - Abstraction plugins : interface fournisseur vs service externe #2427

Description

@yorha-operator

Description

Actuellement, les plugins du Console couplent la capacité métier (fournir une identité / un secret / un dépôt) à l'implémentation du service externe (GitLab, Vault, Keycloak…). Chaque plugin réimplémente la logique d'appel au service, ce qui :

  • duplique la gestion d'erreurs, de retry et de mapping des credentials entre plugins ;
  • rend le changement de fournisseur (ex. Vault → autre secret-manager) impossible sans réécrire le plugin ;
  • empêche de tester la logique Console indépendamment du service externe.

L'objectif est d'introduire une couche interface par capacité (IdpProvider, SecretManagerProvider, VcsProvider, …) découplée des implémentations service externe (GitlabProvider, VaultProvider, …). Le plugin consomme l'interface ; l'implémentation est injectée. Cela isole la logique Console de l'origine du service et prépare un changement de fournisseur sans rupture de plugin.

PRs liées

No response

Issues liées

Exemples simples

No response

Spécifications techniques

No response

Définition du fini

  • Le contrat d'interface par capacité (idp / secret-manager / vcs) est défini indépendamment du service externe
  • Les implémentations service externe (GitLab, Vault, Keycloak…) satisfont l'interface sans logique Console en dehors
  • Le plugin consomme l'interface ; l'implémentation est injectée
  • Les tests unitaires liés à cette fonctionnalité ont été ajoutés
  • La documentation liée à cette fonctionnalité a été ajoutée (cf. https://github.com/cloud-pi-native/documentation)
  • La communication avec les autres équipes impliquées par cette fonctionnalité a été faite

Metadata

Metadata

Assignees

Labels

technical debtRésoud de la dette technique

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions