Skip to content

🐛 [BUG] - server-nestjs : POST /api/v1/system/settings sans garde d'administration (bloque la bascule) #2722

Closed

Description

@shikanime

Description

Le contrôleur SystemSettingsController de server-nestjs (api/v1/system/settings) expose POST sans garde : ni UserGuard, ni @RequireAdminPermission('ManageSystem'), et aucune protection globale APP_GUARD n'existe dans l'application. Or la route legacy correspondante (apps/server/src/resources/system/settings/router.ts, upsertSystemSetting) exige AdminAuthorized.ManageSystem.

Ce défaut de parité bloque la bascule nginx-strangler de /api/v1/system/settings : aujourd'hui routée vers le legacy (garde active), elle deviendrait une écriture de configuration système non authentifiée au moment de la bascule. Le GET est volontairement public des deux côtés — parité correcte, ne pas ajouter de garde.

Issue découverte lors de l'audit de parité pré-bascule Vague 1 (voir la PR de bascule).

PRs liées

Issues liées

Exemples simples

Spécifications techniques

  • Ajouter @UseGuards(UserGuard) + @RequireAdminPermission('ManageSystem') sur upsert uniquement, même anatomie que SystemConfigController.
  • Le schéma (SystemSettingSchema) est déjà validé côté contrôleur — la garde est le seul écart.

Définition du fini

  • La fonctionnalité est terminée
  • Les tests liés à cette fonctionnalité ont été ajoutés (spec : POST sans session → 401/403)
  • La bascule /api/v1/system/settings est débloquée (garde vérifiée en parité du legacy)
  • La documentation liée a été ajoutée

Activity

  1. added this to the 9.27.0 milestone on Sep 11, 2026
  2. self-assigned this
    on Sep 11, 2026
  3. moved this from Backlog to In review in Cloud Pi Nativeon Sep 29, 2026
  4. added theissue type on Sep 29, 2026
  5. moved this from In Progress to Done in Cloud Pi Nativeon Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions