10 routes. Chemins relatifs à https://api.nexus-engine.eu/api/v1.
POST
/forge/identities
session de l’application seulement
Declare un compte de forge. Le poste vient de l’obtenir de la forge avec le jeton personnel du membre : seul le login remonte, jamais le jeton.
Corpsprovider (github, gitlab), host, login, externalId, avatarUrl, memberId (admin, pour un absent)
RéponseForgeIdentityDto
NoteDeclare pour soi, le compte est VERIFIE ; declare par un administrateur pour quelqu’un d’autre, il ne l’est pas, et aucun acces ne sera pose dessus. 409 si un autre membre a deja declare ce compte.
DELETE
/forge/identities/:provider/:host
session de l’application seulement
Retire un compte declare. Les acces deja poses ne sont pas touches.
RequêtememberId (admin, pour quelqu’un d’autre)
Réponse{ ok: true }
GET
/forge/settings
Owner et Admin
Le niveau donne a chaque role, les organisations de l’entreprise, et si Nexus applique seul ce qui est sans risque.
Réponse{ mapping, owners, auto }
PUT
/forge/settings
Owner et Admin session de l’application seulement
Modifie ces reglages.
Corpsmapping ({ OWNER, ADMIN, DEVELOPER } vers READ/TRIAGE/PUSH/MAINTAIN, nul = defaut), owners (github.com/agence…), auto
Réponse{ mapping, owners, auto }
GET
/forge/scope/:scope
Owner et Admin
Ce qu’il faudrait, et ce qu’il faut aller lire : les depots de l’objet et les places voulues. Aucune forge n’est appelee — c’est une projection de ce que Nexus porte deja.
Requêteid (l’objet ; inutile pour AGENCY). :scope vaut AGENCY, PROJECT, SITE, SERVER ou REPO
Réponse{ depots, places, sansCompte, owners, auto }
POST
/forge/ecart
Owner et Admin
L’ecart entre ce qui est voulu et ce que la forge porte, a partir de ce qu’un poste vient de lire. Ne stocke rien.
Corpsportee ({ scope, id }), constats (ForgeConstatDepotDto[])
Réponse{ ecart: ForgeEcartDto }
POST
/forge/plans
Owner et Admin
L’apercu : le meme calcul, ecrit en base avec l’empreinte de ce qui a ete lu. C’est CETTE ligne qu’on applique ensuite.
Corpsportee ({ scope, id }), constats (ForgeConstatDepotDto[])
Réponse{ planId, scopeLabel, risque, ecart }
POST
/forge/plans/:id/apply
Owner et Admin session de l’application seulement
Ouvre l’ecriture : le corps porte la RELECTURE des depots, dont l’empreinte est comparee a celle de l’apercu. Les acces sont ecrits en base AVANT que la forge ne bouge, puis les operations sont rendues au poste, qui les execute.
Corpsconstats (ForgeConstatDepotDto[])
Réponse{ operations, risque }
Note409 si quelqu’un est passe depuis l’apercu (relire, puis recommencer), si l’apercu a deja ete joue, ou s’il ne propose rien. Refuse a une cle : donner un droit d’ecriture sur le depot d’un client se confirme devant l’apercu.
POST
/forge/plans/:id/results
Owner et Admin session de l’application seulement
Ce que la forge a repondu, une ligne par operation.
Corpsresultats (ForgeResultatDto[], dans l’ordre des operations)
Réponse{ status, poses, retires, echecs }
NoteUne invitation en attente n’est PAS un acces : elle a son propre etat, et le retrait l’annulera plutot que de retirer un membre qui n’existe pas encore.