Skip to content

fix(server-nestjs): make Nexus create paths idempotent - #2627

Draft
shikanime wants to merge 2 commits into
mainfrom
fix/nexus-create-idempotent
Draft

fix(server-nestjs): make Nexus create paths idempotent#2627
shikanime wants to merge 2 commits into
mainfrom
fix/nexus-create-idempotent

Conversation

@shikanime

Copy link
Copy Markdown
Member

Issues liées

#2619 (fermer délibérément après la fusion)

Quel est le comportement actuel ?

Lors de la synchronisation Nexus d'un projet, chaque ressource est créée après une lecture préalable (GET puis POST). Sous synchronisations concurrentes, deux exécutions peuvent valider la lecture puis l'écriture perdante échoue avec un NexusError (statut 409 ou message évoquant une ressource déjà présente), interrompant toute la synchronisation du projet.

Comportement attendu

La création concurrente d'une ressource déjà présente ne doit plus interrompre la synchronisation : le client récupère la ressource existante et la retourne, laissant la branche de mise à jour du demandeur réconcilier l'écart au cycle suivant.

Changements

  • Chaque méthode de création (rôles, utilisateurs, privilèges, dépôts Maven/NPM hébergés et groupes) tolère la collision de création en relisant la ressource existante au lieu de lever une erreur.
  • La détection de collision accepte un statut 409 ou une erreur 4xx dont le message évoque une ressource déjà présente.
  • Les comportements de mise à jour et de suppression restent inchangés.
  • Ajout de tests unitaires couvrant les cas de relecture après collision (rôles et dépôt Maven hébergé).

@github-actions github-actions Bot added the built label Aug 28, 2026
@shikanime
shikanime force-pushed the fix/nexus-create-idempotent branch from 898e236 to d017f6a Compare August 28, 2026 11:39
@cloud-pi-native-sonarqube

Copy link
Copy Markdown

Signed-off-by: William Phetsinorath <william.phetsinorath-open@interieur.gouv.fr>
Change-Id: Iff465b31836b84656a084678aeec082a6a6a6964
…tolerance)

Refs #2619

Co-authored-by: Automata <automata@shikanime.studio>

Signed-off-by: William Phetsinorath <william.phetsinorath-open@interieur.gouv.fr>
Change-Id: I7119237dea4827b8ea5a8ed631d47c1d6a6a6964
@shikanime
shikanime force-pushed the fix/nexus-create-idempotent branch from d017f6a to 77bceb6 Compare August 28, 2026 14:20
@shikanime
shikanime changed the base branch from main to fix/uniformize-error-guards August 28, 2026 14:22
Base automatically changed from fix/uniformize-error-guards to main August 28, 2026 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant