Cozy registry

Introduction

Vocabulaire :

  • Registry : Le registry correspond à la liste des applications et des connecteurs installables. Chaque application, connecteur est défini par son manifeste dans lequel on retrouve les informations d’installation (lien vers la tarball, nom, éditeur, description, …)
  • Offre : L’offre permet de différencier les utilisateurs en fonction du projet auquel leur Cozy appartient (ex: mesinfos, edf_ptnb, …). En fonction de l’offre, l’utilisateur n’aura pas les même applications disponibles, les mêmes comportements, …
  • Espace : L’espace correspond à une liste spécifique d’applications. Un utilisateur a une offre définie dans son Cozy, en fonction de son offre, il va avoir accès à plusieurs espaces de registry. Par exemple un utilisateur mesinfos aura accès au registry  mesinfos et default
  • Environnement : Nous avons actuellement 4 environnements sur notre infra : dev, int, stg et prod.
  • Channel : Au sein d’un même registry, nous retrouvons 3 channels : dev, beta et prod. Cela permet de rendre disponible des versions plus ou moins stables des applications en fonction de ce que l’utilisateur souhaite.
  • Store : Le Store est l’application cliente Cozy qui permet aux utilisateurs d’installer leurs applications et leurs connecteurs sur leur Cozy.


Documents de références :


Adresse du registry

Architecture

La registry ne stocke pas les applications, mais des métadonnées décrivant les applications uniquement ainsi que leur URL de téléchargement (généralement sur github pour les applications publiques).
Dans le cas d’applications internes dont le repo est sur le gitlab interne, il est envisagé de stocker également l’appli dans la registry. Dans ce cas, les applis en question pourraient être stockées dans un tenant dédié swift (tenant différent des données de production des utilisateurs). L’application registry étant chargée de faire le proxy entre les requêtes HTTP et les accès à swift pour le téléchargement.

Architecture applicative

Architecture Infra

Schéma d’architecture infra

Environnements de la registry
  • Dev -> c'est pour tester des trucs ou l'on sait que ça risque de casser des trucs & restart intempestifs
  • Int c'est pour tester s'il n'y a pas de régression dans le service”registry”. Et que tout continue de fonctionner ensemble.
  • Prod -> On peut tout y mettre

Relations entre les environnements registry, les environnements stack et les offres
forme à challenger et tableau à compléter. Insérer dans chaque case les espaces concernés.

registry dev
registry int
registry prod
stack dev
test_registry

cozy_beta, edf_ptnb, 
maif_obseques, cozy_vip
stack int

test_registry
cozy_beta, edf_ptnb, 
maif_obseques, cozy_vip
stack stg


cozy_beta, edf_ptnb, 
maif_obseques, cozy_vip
stack prod OVH


cozy_beta, edf_ptnb, 
maif_obseques, cozy_vip
stack prod gandi


?

Lien registry/environnement/channel