Contexte
Les permissions par défaut legacy sont encore actives dans server et server-nestjs, notamment everyonePerms non nul par défaut et un rôle admin initialisé à 0n. Cela empêche un comportement réel “least privilege by default”, et risque des régressions client lors du rapprochement des stacks.
Impact
- Nouveaux projets/membres : surface d’accès par défaut trop large.
- Harmonisation legacy -> NestJS : risque de régression fonctionnelle si non planifié.
Confirmé
| Point |
Légende |
Risque |
apps/server-nestjs/src/modules/admin-role/admin-role.service.ts:43 |
Nouveau rôle admin = 0n |
Désalignement legacy |
apps/server-nestjs/src/modules/admin-role/admin-role.controller.ts:15 |
GET /api/v1/admin/roles ouvert aux users auth |
Exception legacy |
apps/server/src/prisma/schema/project.prisma:111, apps/server-nestjs/.../project.prisma:111 |
everyonePerms @default(896) |
Défaut “tout le monde” |
packages/shared/src/utils/permissions.ts:22-33, apps/server-nestjs/src/modules/keycloak/keycloak.service.ts:643 |
everyonePerms appliqué comme base permissions |
Overprivilege implicite |
apps/client/src/components/ProjectRoles.vue:23,26 |
Nouveau rôle projet = 0n |
Désalignement UX |
migrations 20260217144930_enable_legacy_permissions |
Flag legacy supprimé |
Historique seulement |
À vérifier
- Seed/création projet dans NestJS : valeur cible de
everyonePerms.
- Autres routes sans permission explicite dans
server-nestjs.
- Default grants implicites dans plugins.
Décisions à prendre
- Cible pour les nouveaux rôles admin.
- Cible pour
everyonePerms par défaut.
- Liste des dérogations conservées + date de péremption.
- Owner/PR par sujet ou ticket groupé.
Contexte
Les permissions par défaut legacy sont encore actives dans
serveretserver-nestjs, notammenteveryonePermsnon nul par défaut et un rôle admin initialisé à0n. Cela empêche un comportement réel “least privilege by default”, et risque des régressions client lors du rapprochement des stacks.Impact
Confirmé
apps/server-nestjs/src/modules/admin-role/admin-role.service.ts:430napps/server-nestjs/src/modules/admin-role/admin-role.controller.ts:15GET /api/v1/admin/rolesouvert aux users authapps/server/src/prisma/schema/project.prisma:111,apps/server-nestjs/.../project.prisma:111everyonePerms @default(896)packages/shared/src/utils/permissions.ts:22-33,apps/server-nestjs/src/modules/keycloak/keycloak.service.ts:643everyonePermsappliqué comme base permissionsapps/client/src/components/ProjectRoles.vue:23,260n20260217144930_enable_legacy_permissionsÀ vérifier
everyonePerms.server-nestjs.Décisions à prendre
everyonePermspar défaut.