Fournir une API & IHM permettant d'importer et d'exporter la configuration du portail
Pour fournir une API & IHM permettant d'importer la configuration du portail
- définir une API permettant de téléverser un fichier JSON d’éléments à importer
- définir une API de lancement de l'import (asynchrone)
- définir une API de statut pour suivre l'importation
- définir une API permettant de récupérer le rapport d'importation
En entrée le format du JSON sera pour l'import et l'export :
{
"groupe" : [ { nom:"Groupe 1" },
{ nom:"Groupe 2" },
{ nom:"Groupe 3", utilisateurs : [ "titi", "toto" ] },
],
"structure" : [ { nom:"Structure 1" },
{ nom:"Structure 2" },
{ nom:"Sous-Structure 2", parent:"Structure 2" },
],
"domainsEmail" : [ { domain:"ac-dijon.fr", nom:"Structure 2" },
{ domain:"ac-besancon.fr", nom:"Structure 1" },
{ domain:"mim-libre.fr", nom:"PCLL" },
],
"utilisateurs": [ { mail:"titi@ac-dijon.fr", nom:"titi" },
{ mail:"toto@ac-besancon.fr", nom:"toto" }
],
"services": [ { url:"https://auth.eole3.dev/auth", nom:"Auth Eole3Dev" ... },
{ url:"https://gitlab.mim-libre.fr", nom:"Gitlab Mim-Libre" ... },
],
"bookmark": [ { bookmark:"eole3dev", url:"https://auth.eole3.dev/auth", utilisateur:"titi" },
{ bookmark:"gitlab", url:"https://gitlab.mim-libre.fr", groupe:"Groupe 1"},
],
}
En sortie, le rapport pourrait être
{
"groupe" : [ { nom:"Groupe 1", id:"12345", statut:"ok" },
{ nom:"Groupe 2", id:"12346", statut:"ok" },
{ nom:"Groupe 3", id:"12347", statut:"ok" },
],
"structure" : [ { nom:"Structure 1", id:"12348", statut:"ok" },
{ nom:"Structure 2", id:"12349", statut:"ok" },
{ nom:"Sous-Structure 2", id:"12349", statut:"ok" },
],
"domainsEmail" : [ { domain:"ac-dijon.fr", id:"12350", statut:"ok" },
{ domain:"ac-besancon.fr", id:"12351", statut:"ok" },
{ domain:"mim-libre.fr", id:"12352", statut:"ok" },
],
"utilisateurs": [ { nom:"titi", id:"12350", statut:"ok" },
{ nom:"toto", id:"12351", statut:"ok" }
],
...
}