## [6.5.0] - 2025-09-30 ### Évolutions - **Intégration Sentry** (Redmine 26581) Nouvelle intégration Sentry pour le suivi des erreurs et des performances : - Activation uniquement si `SENTRY_DSN` est défini - Nouvelle variable `ENV_MODE` (`dev`, `recette`, `prod`) pour ajuster le sampling - Configuration du logging adaptée pour éviter les doublons et n’envoyer que les erreurs - **Authentification et SSO Keycloak** (Redmine 26839, 27386, 27383, 27381, 27242) - Nouveau mode de connexion via Keycloak (SSO OIDC) - Gestion des comptes administrateurs via groupes Keycloak (`SSO_ADMIN_USER_GROUPS`) - Ajout d’un système de notifications à la création d’utilisateurs via Keycloak - Prise en compte des groupes Keycloak lors de l’authentification - **Notifications aux groupes d’utilisateurs** (Redmine 26377) Mise en place d’un système de notifications par groupes d’utilisateurs : - Nouveau modèle `UsersGroup` et gestion des appartenances via `UserGroupMembership` - Possibilité de sélectionner un groupe notifié lors de la création d’un signalement - Nouveau modèle de mail "Notification à un groupe", configurable dans l’admin Django - Introduction d’un groupe spécial `all`, permettant à certains utilisateurs (ex. référents) de recevoir systématiquement toutes les notifications - **Amélioration de la recherche textuelle dans les listes de valeurs** (Redmine 27831) - Priorité aux correspondances commençant par le terme recherché - Recherche insensible aux accents et aux tirets - Correction de l'affichage limité à 10 résultats (ex. "Rennes" n'apparaissant jamais) - Réponse API désormais paginée avec métadonnées (`results`, `total`, `limit`, `offset`) - **Permettre l'édition et suppression de géométries multiples** (Redmine 28563) - Affichage des boutons édition et suppression sur la page liste & carte même si uniquement géométrie multiple - Ajout de transition à l'apparition de bouton pour rendre le fonctionnement plus intuitif - Fixer automatiquement le statut du signalement en “publié” lors de la création (Redmine 27352) - Vérification supplémentaire lors de la création d’un compte utilisateur (Redmine 25582) ### Correctifs - **Génération des vues SQL** (Redmine 27462, 23375) Amélioration de la robustesse de la commande de génération des vues SQL, pour corriger des cas problématiques rencontrés en production : - Détection explicite des modes invalides/ambigus - Inclusion automatique des `feature_data` même sans champ défini - Gestion des suppressions en cascade, entités orphelines et conflits de noms de `CustomFields` - Ajout du paramètre `--force_project_view_with_aliases` - Connexion CAS IDGO – erreur 404 corrigée (Redmine 26721) - Liste signalements – incohérences dans la recherche par titre (Redmine 26138) - Pagination – doublon du premier et dernier numéro sur 5 pages (Redmine 26632) - Sécurisation : un utilisateur ne peut plus voir les signalements qui ne lui appartiennent pas (Redmine 27230) ### Breaking changes - L’API `/prerecorded-list-values/<name>/` ne renvoie plus une liste brute mais un objet structuré avec `results`, `total`, `limit`, `offset` - Suppression de la variable d’environnement `SSO_ADMIN_USERS`, remplacée par `SSO_ADMIN_USER_GROUPS` - Plusieurs migrations doivent être appliquées, notamment : - activation automatique de l’extension PostgreSQL `unaccent` - création des modèles `UsersGroup`, `UserGroupMembership` et du modèle de mail "Notification à un groupe" - ajout du modèle de template pour les notifications à la création d’utilisateur via Keycloak ### Variables d'environnement - `SENTRY_DSN` : DSN Sentry, activation seulement si défini - `ENV_MODE` : mode d’exécution (`dev`, `recette`, `prod`), par défaut `recette` - `SSO_ADMIN_USER_GROUPS` : groupes Keycloak recevant les droits administrateur - Variables LDAP/Keycloak : `LDAP_SERVER_URI`, `LDAP_BASE_DN`, `LDAP_BIND_DN_TEMPLATE`, `SSO_KEYCLOAK_URL`, `SSO_KEYCLOAK_DISCOVERY_ENDPOINT`, `SSO_KEYCLOAK_CLIENT_ID`, `SSO_KEYCLOAK_CLIENT_SECRET`, `SSO_CALLBACK_PATH`, `SSO_POST_LOGOUT_REDIRECT_URI`, `LOGOUT_URL` - Autres : `FEATURE_CREATION_REDIRECT_URL`, `EXTERNAL_HOME_LINK`, `HIDE_MENU_NON_ADMIN`