Skip to content

feat(project): create a dedicated owner OIDC group across tools - #2855

Draft
shikanime wants to merge 1 commit into
fix/owner-transfer-admin-rolefrom
feat/owner-oidc-group
Draft

shikanime wants to merge 1 commit into
fix/owner-transfer-admin-rolefrom
feat/owner-oidc-group

Conversation

@shikanime

Copy link
Copy Markdown
Member

Pourquoi

Le propriétaire d'un projet et ses administrateurs partagent le même groupe OIDC (/{slug}/console/admin) : l'appartenance est indiscernable côté Keycloak et dans tous les services mappés sur les groupes SSO. La séparation propriétaire/admin exige un groupe dédié /{slug}/console/owner, créé et peuplé comme les autres groupes de rôles.

Empilée sur #2854 (le transfert accorde le rôle ; ce PR rend ce rôle distinct d'Administrateur).

Quoi

  • Nouveau rôle système « Propriétaire » (position 0, MANAGE, oidcGroup /{slug}/console/owner) : seedé à la création du projet, backfillé par migration idempotente sur les projets existants (les positions existantes décalent d'un cran)
  • isOwnerRole dans keycloak.utils ; la réconciliation Keycloak ajoute le propriétaire implicite au groupe owner au lieu du groupe admin
  • Le transfert de propriété accorde le rôle Propriétaire à l'ancien propriétaire (au lieu d'Administrateur)
  • Defaults de suffixes admin des outils intègrent le groupe owner : sonarqube (admin projet), gitlab (maintainer), nexus (write projet), registry (admin projet), vault (alias additionnel sur le groupe d'identité admin — même policy, groupes distincts)
  • ArgoCD exclu : son suffixe atterrit en chaîne unique dans les values Helm consommées par la chart externe, qui ne prend pas de liste — le suivi chart-side est un changement séparé

Références

@github-actions github-actions Bot added the built label Oct 14, 2026
@cloud-pi-native-sonarqube

Copy link
Copy Markdown

@shikanime
shikanime added this pull request to stack #2859 October 14, 2026 14:36
@shikanime shikanime self-assigned this Oct 15, 2026
@shikanime shikanime modified the milestones: 9.28.0, 10.0.0 Oct 15, 2026
The project owner and the administrators shared the same OIDC group
(/{slug}/console/admin), making ownership indistinguishable from admin in
every SSO-group-mapped service. A new system role Propriétaire seeds
/{slug}/console/owner: the Keycloak reconciler adds the implicit owner
there instead of the admin group, and ownership transfers grant it so the
previous owner keeps access under their own group. Project-tier admin
group defaults in sonarqube, gitlab, nexus, registry and vault now include
the owner group, keeping the owner's access level while separating the
groups. ArgoCD is left out: its suffix lands as a single string in Helm
values consumed by the external chart, which cannot take a list.

Refs #2853

Co-authored-by: Automata <automata@shikanime.studio>
Signed-off-by: William Phetsinorath <william.phetsinorath-open@interieur.gouv.fr>
Change-Id: I07c2163bfe1a89837085d42ba7a211c56a6a6964
@shikanime
shikanime force-pushed the feat/owner-oidc-group branch from d5be01c to 845c61b Compare October 15, 2026 13:39
import { PrismaService } from '../infrastructure/database/prisma.service'
import { StartActiveSpan } from '../infrastructure/telemetry/telemetry.decorator'
import { isAdminRole } from '../keycloak/keycloak.utils'
import { isOwnerRole } from '../keycloak/keycloak.utils'
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.

🐛 [BUG] - Transfert de propriété : l'ancien propriétaire perd tout rôle (aucun accès)

1 participant