Notes de version techniques
L'ensemble des évolutions depuis le début de l'année.
fonctionnalité
- cog : le rapport rappelle de relancer l'import des territoires d'industrie
- territoires-industrie : tâche d'import de la liste 2023-2027 de l'ANCT
- admin : tâche de mise à jour du COG INSEE
- admin : sélecteur de tâches avec recherche, libellés préfixés par leur groupe
- admin : « Établissements : NAF 2025 » par tranches de communes
amélioration
- app : fiche établissement et collectivité, données d'équipe lues à part et rechargées seules
- api : fiche établissement, données publiques et données d'équipe lues à part
correction
- app : taille de l'icône Remix large, sélecteur ::before mal orthographié
- app : pictos de suivi centrés sur les badges et l'étoile des favoris
- filtres : la BAN rend des adresses en plus de celles déjà choisies
- filtres : filiales et détentions déjà choisies exclues de la recherche d'entreprises
- filtres : QPV et ZFU déjà choisis exclus de la recherche
- suivis : participants déjà choisis exclus de la recherche
- admin : territoires déjà ajoutés exclus de la recherche à la création d'équipe
- filtres : territoires déjà choisis exclus de la recherche des sélecteurs
- filtres : Métropole du Grand Paris avec ses EPT, Paris avec ses arrondissements
- e2e : statut « ANNULATION » attendu tel que le badge l'affiche
- test : banc d'envoi du contrat, « Index établissements - NAF 2025 » avec et sans communes
- admin : actions d'une tâche dans un menu Actions, annulation comprise, logs en plein écran et en live
fonctionnalité
- taches : pointages et requêtes annulables dans les étapes longues des tâches
- admin : annulation immédiate des requêtes SQL longues d'une tâche annulée
- admin : annuler une tâche depuis Admin › Tâches, arrêt au pointage de progression suivant
- sirene : reprise de toutes les tâches SIRENE à une étape et un curseur, préremplie par « Relancer »
- admin : imports Data Subvention, ratios INPI et ESS France depuis la page
- admin : tâches regroupées en un menu, routes /source appelées par le contrat
correction
- elastic : log d'erreur borné au début du corps de la requête
- elastic : mises à jour partielles en flux un lot de 200 ko à la fois, sans relance du client
- taches : annulation, corrections de l'audit (sous-tâches, statuts, verrou, psql)
- queue : expiration à 12 h et sans nouvelle tentative pour « Établissements : NAF 2025 »
- sources : scripts psql des imports INPI, ESS France et stock SIRENE exécutables
- securite : lien du fichier Data Subvention masqué dans les journaux
- appel-api : cadence des appels en fenêtre glissante, sans attente sous la limite
fonctionnalité
- explorateur : interrupteurs seuls, libellés réels des notifications
- explorateur : sommaire par composant et par page, « Mis en avant » par branche
- explorateur : review apps Scalingo réduites à l'explorateur
- explorer : propositions pour petit écran
- front : variantes pour petit écran (cartes, menu Actions, onglets)
- front : layouts utilisables sur petit écran
- suivis : modales de suivi sur Lib.Formulaire
- formulaires : Lib.Formulaire sur dwayne/elm-form, premiers écrans (subvention, fichiers, local, contact, créateurs)
- territoires : communes disparues hors vigueur, écartées de la recherche et des périmètres
- equipe : contrôle quotidien des SIRET d'équipes
- comptes : désactivation automatique des comptes inactifs
- admin : écran des droits superadmin dans la page Utilisateurs
- admin : donner ou retirer les droits superadmin, contre le second facteur
- naf : activité NAF 2025 de l'entreprise
- naf : statistiques par code NAF 2025
- naf : activité NAF 2025 sur la fiche et la carte de liste
- naf : filtre NAF 2025 dans la recherche d'établissements
- naf : NAF 2025 dans l'API : autocomplétion, filtres, statistiques, fiche, exports et flux
- naf : tâche de rattrapage du code NAF 2025 par l'API Sirene
- naf : code NAF 2025 dans l'index des établissements
- naf : import SIRENE du code NAF 2025 provisoire des établissements
- naf : tâche d'import du référentiel NAF 2025 depuis le SPARQL de l'INSEE
- carto : prévenir quand WebGL manque et dire quoi faire
- admin-taches : mise en file des liasses fiscales en attente
- admin : page API tierces, disponibilité par fournisseur et derniers échecs
- api : appels aux API tierces enregistrés à part, pannes des tiers hors Sentry
- stats : refus au-delà de 10 millions d'établissements, échecs Elasticsearch surveillés, équipe introuvable en erreur
- locaux : filtre « Sans numéro », numéros sans zéros de tête, exclusions de territoire en exclusion
- contrat : paramètres, query et réponses décrits par Zod, lus par des décodeurs Elm générés et des conversions totales
- contrat : contrat OpenAPI généré depuis le routeur et les schémas Zod, types et encodeurs Elm générés
- carte : contours servis à part des résultats, zones sélectionnées gardées en mémoire
- cerema : audit, structures chargées page par page
- cerema : interrupteur CEREMA_ENABLED, CEREMA_MODE à quatre paliers
- cerema : audit, mode permissions seules
- cerema : audit, compte Cerema inactif d'après cgu_valide
- cerema : script d'audit des comptes et équipes
- cerema : date de validation des CGU conservée en cache
- cerema : bandeau décidé par équipe, palier coercitif et sa date
- cerema : structures et utilisateurs, routes en /, 5 appels par seconde
- cerema : rafraîchissement du jeton avant son expiration
- cerema : fonctionnalité locaux par l'équipe, données par le Cerema en mode autorité
- cerema : activation par paliers, log de l'écart et bandeau d'information
- cerema : réponses validées par schéma, alerte sur réponse inattendue
- cerema : un périmètre par niveau d'accès, propriétaires local par local
- locaux : filtre « Avec contact » et recherche par nom étendue aux noms des contacts
- etablissements : tables de travail en UNLOGGED et ordre de l'initialisation aligné sur les locaux
- locaux : tables de travail de l'indexation déclarées et remplies par le code
- demande-compte : états, équipe assignée, dépôt par un superadmin, tri par date
- admin : filtre et colonne « N° de compte » sur la page Utilisateurs
- admin : « Demandes de compte » en tête du menu Admin
- locaux : export GeoJSON aligné sur les colonnes de l'onglet « Locaux » de l'export Excel
amélioration
- explorateur : fichier Elm copié tel quel au build, sans transformation vite
- front : composants génériques des listes et des fiches partagés
- front : cinq layouts partagés (Carte centrée, Menu latéral, Liste, Fiche, Tableau de bord)
- Activité : camemberts regroupés en « Autres » au-delà de 10 parts
- Graphiques : courbes sans libellé imposé à chaque point
- api : contactInputValidator repris de la table par pick
- app : fiche local chargée par onglet
- api : fiche local lue en deux parties, en-tête et onglet Local
- app : fiches établissement et collectivité chargées par onglet
- api : fiche établissement lue en trois parties, en-tête et onglets
- exports : format ndgeojson retiré, un export réussi sans taille lève une erreur
- front : envois des écrans par les modules du contrat, saisies contrôlées avant l'envoi, aucune requête depuis un état invalide
correction
- sirene : cadence des appels réservée en base, 2,1 s entre deux appels pour tous les conteneurs
- naf25 : le rattrapage n'écrit plus qu'en base, une tâche à part reporte les codes dans l'index
- liasses : une liasse sans réponse de l'API n'est plus marquée récupérée
- front : étapes de prebuild enchaînées au lieu d'être lancées en parallèle
- formulaires : état des formulaires en type nommé, la compilation n'explose plus en mémoire
- e2e : hiérarchie des titres, modales fermées ignorées et modale ouverte lue après la page
- api : le maximum de surface d'une recherche de locaux inclut la valeur saisie
- admin : focus initial et libellé d'Elastic et de SIRENE sur le bon champ
- admin : une autorisation de délégation se retrouve par son numéro, même après une suppression
- filtres : les sous-filtres de mutation et de procédure collective survivent quand Oui et Non sont cochés
- subventions : un montant nul est refusé sous le champ, comme le fait l'API
- etiquettes : une étiquette créée par un compte GPL démarre sur le type « Zones », le premier proposé
- dsfr : la barre de recherche n'envoie plus le formulaire qui l'entoure
- admin : identifiants de champ propres, double envoi et focus corrigés (équipes, délégations, Espace Opérateur, CGU)
- collectivites : années de subvention des filtres saisies comme pour les établissements, de 1900 à 2099
- suivis : un filtre sur la date de dernière édition affiche ses tags
- suivis : les tags des filtres montrent la recherche appliquée, pas le brouillon du panneau
- dsfr : une recherche validée par Entrée ne part qu'une fois, une option de select garde la valeur vide
- menu : options du menu Actions sur toute sa largeur
- a11y : contour de focus entier dans les filtres, la liste des équipes et les notes à affecter
- explorer : bandeau Cerema dans l'utilisateur de démonstration
- deps : Node 24.22.1 au minimum, certificats eMudhra compromis refusés
- a11y : titre des modales en h2, sous le h1 de la page
- a11y : hiérarchie des titres, un h2 masqué par onglet de page et un contrôle E2E
- a11y : icônes d'état, infobulles d'icône, tuiles, liens d'entité, participants et pagination lus aux lecteurs d'écran
- a11y : sélection, camemberts, géolocalisation et email de bienvenue lisibles sans la couleur
- a11y : clavier : focus dans la modale, Tab hors de l'éditeur riche, onglets aux flèches
- a11y : champs obligatoires et en erreur déclarés, titres de Créer mon compte au niveau 2
- a11y : résultats, chargements, succès et copies annoncés aux lecteurs d'écran
- selecteurs : Échap et clic en dehors reviennent à la valeur retenue du sélecteur distant
- etiquettes : les suggestions du nom s'affichent par-dessus la modale au lieu de la décaler
- selecteurs : la liste des options flotte au-dessus de la page au lieu de la décaler
- a11y : titres des pages superadmin suffixés du produit, comme les autres pages
- a11y : colonnes des tableaux déclarées dans un colgroup, avant l'en-tête
- a11y : l'éditeur riche ne demande plus à masquer son contour de focus
- a11y : création d'une étiquette possible au clavier, suggestions fermées à la sortie du champ
- a11y : alertes du mot de passe oublié et de la suppression d'un créateur reformulées
- a11y : le lien INSEE des établissements employeurs sort de l'infobulle
- a11y : autocomplete valide, réponse d'une requête admin au clavier, bouton de copie sans contrôle imbriqué
- a11y : groupes de journaux ouvrables au clavier, suggestions d'étiquette ouvertes au focus
- a11y : sélecteurs à recherche annoncés comme des listes déroulantes
- a11y : infobulles atteignables au clavier et annoncées par leur déclencheur
- a11y : sens de l'astérisque des champs obligatoires indiqué en tête de chaque formulaire
- a11y : « Modifier » et « Supprimer » disent sur quoi ils portent
- a11y : graphiques nommés par le titre qui les surmonte
- a11y : carte et graphiques en français, éditeur riche nommé et état de ses boutons annoncé
- a11y : cartes, compteurs, tris et « Voir plus » utilisables au clavier, ouverture et tri annoncés
- a11y : erreur du nouveau mot de passe annoncée, pagination nommée, menus d'actions hors navigation, iframe titrée
- a11y : liens de menu annoncés comme des liens, panneaux d'onglets nommés par leur onglet
- a11y : type de chaque alerte écrit dans son texte
- a11y : intitulés explicites pour les liens « cliquant ici »
- a11y : autocomplete normalisé sur ses propres données, désactivé sur celles des autres
- a11y : succès et informations annoncés en statut, plus en alerte
- a11y : un titre de niveau 1 sur chaque page
- a11y : liens externes annoncés « nouvelle fenêtre »
- a11y : focus sur le contenu à chaque changement de page
- a11y : liens d'évitement qui déplacent le focus sans recharger la page
- connexion : l'aide de l'identifiant donne aussi un exemple sans arobase
- local : un montant non entier est refusé avec un message, au lieu d'être effacé
- fichiers : la modale suit son propre envoi (erreur affichée, second envoi bloqué)
- local : un échec d'enregistrement du statut libère sa modale
- suivi : le choix des collègues qui voient une note met à jour son propre sélecteur
- export : libellé NAF de la sous-classe dans les feuilles des demandes et des échanges
- geocodage : point BAN de score 0,5 ou moins ignoré, regéocodé et retiré de l'index
- geocodage : filtre sur la commune seule, requête nettoyée et repli sur les lieux-dits
- api : arrêt propre du serveur web, requêtes en cours terminées
- api : barycentre du territoire d'équipe gardé une heure au plus
- Statistiques : années des créations et fermetures réunies sur les deux graphiques
- Statistiques : graphiques limités aux 10 premiers annoncés comme tels
- e2e : rejouer le clic d'envoi de fichier perdu pendant un réaffichage
- etablissement-creations : une seule transformation en vigueur par création
- etablissement-creations : garde des créations transformées remontée route par route, commentaire figé
- source : statut d'une tâche par jeton sans lecture d'une équipe absente
- test : premiereFois retiré de la mise à jour du compte deveco
- evenement : désactivation d'un compte, l'événement porte l'auteur et le compte visé
- index-etablissements : géolocalisation des données d'équipe lue pour leurs seuls établissements, sans dépendre du dernier lot public
- etiquettes : renommage reporté dans les recherches enregistrées et les liens de flux de l'équipe
- tests : l'infini attendu à null par le test par propriétés de querystringToNumber
- api-entreprise : réponse « pas de donnée » enregistrée une semaine, RNE compris
- tests : fixtures alignées sur le schéma, typage des tests rétabli
- api : alertes de jeton réutilisé et d'étiquettes refusées retirées, Infinity écarté de la query, ligne Cerema lue une fois
- etablissement-creation : création et créateurs dans une même transaction, toujours un créateur
- cerema : 200 ms comptées depuis l'appel réel, même quand le précédent part en retard
- demande-compte : date de modification posée par Postgres, comme la date de création
- zonage : suppression en transaction, index en dernier, et tâche de rattrapage base/index
- carte : carte de géolocalisation des filtres montée seulement à l'ouverture de la modale
- demande-compte : plus de mail à contact@ au dépôt d'une demande
- cerema : cgu_valide vaut null, pas false, sans CGU validées
- e2e : base de seed créée avec l'utilisateur de la base
- locaux : « Locaux : équipes » n'efface plus les mutations dans l'index
- etablissements : une panne d'ElasticSearch ne marque plus la géolocalisation comme envoyée
- etablissements : documents de l'index complets à la réindexation et au fil de l'eau
- locaux : documents de l'index complets à la réindexation et au fil de l'eau
- api-entreprise : niveau des logs selon le statut, 429 en erreur et remonté à Sentry
fonctionnalité
- index : mesure quotidienne de l'écart entre la base et les index des établissements et des locaux
correction
- admin : suppression d'un compte brouillon en erreur 500 à cause de son historique de création
- createurs : identifiant de création mal formé refusé en 404 par le contrôle d'entité, avant toute lecture en base
- contacts : fonction d'un contact toujours renseignée sur les fiches établissement, local et créateur
- api : schémas des API externes alignés sur le code qui les lit (API Entreprise, Sirene, RNE)
- createurs : modification et retrait d'un créateur refusés en 400 depuis la validation des paramètres
- ui : badges d'un groupe alignés sur le badge voisin
- sirene : schéma aligné sur les réponses réelles de l'INSEE (année de catégorie en chaîne, indicateur de purge et nombre de périodes facultatifs)
fonctionnalité
- modale : fermeture par la touche Échap
correction
- sirene : date absente enregistrée vide et non au 1er janvier 1970, champs facultatifs de l'API déclarés nullables
- etablissements : chiffre d'affaires égal à une borne compté dans sa tranche, liste et statistiques validées par un schéma
- siretisation : colonnes rNaf et rCatjur en trop retirées du fichier rendu, recherche validée par un schéma
- mandataires : personnes physiques du RNE sans type de personne affichées et exportées
- select : Échap replie la liste ouverte sans fermer la modale
- collegues : le bouton Copier le lien copie le lien d'inscription affiché
- elmbook : croix de la modale de clôture, titre de la modale de rapport de tâche
- elmbook : module DSFR des interrupteurs chargé
- toggle : options de groupe désactivé, libellé à gauche et attributs prises en compte
- footer : bouton Paramètres d'affichage souligné au survol
- layout : rechargement de la page par un bouton souligné comme un lien
- footer : bouton Paramètres d'affichage au style des liens du pied de page
- footer : lien Accessibilité aligné sur les autres
- tags : zonages automatiques et étiquettes de créateur liés à leur recherche
- tags : tags non interactifs rendus sans bouton inerte en édition
- listes : cinq cartes de chargement au lieu de trois
- listes : trois cartes de chargement par ligne
- import : liens des modèles d'import en boutons secondaires
- modale : pied fixe et champ de recherche fixe dans le panneau latéral
- rte : barre d'outils propre à chaque éditeur de la page
- app : boutons incohérents signalés par les types corrigés
- tests : type d'équipe par défaut semé dans la base de test
- db : schéma déclaré aligné sur les bases, contrôle étendu aux types
- filtres : décimales acceptées dans les variations de CA et d'effectif
- elastic : champs hors mapping retirés des index, WFS sur l'effectif décimal
- elastic : correction des adresses sans Etalab de nouveau exécutable
- release : tag créé au moment du push, poussé avec main et prod en une opération
fonctionnalité
- stats : progression visible de la copie Metabase
- app : e-mail de l'auteur des subventions, secrets d'URL masqués
- stats : comptes, devecos, équipes et territoires copiés pour Metabase
- logs : filtre Perf sur la page Logs
- contacts : anonymisation annoncée, marquage mensuel et conservation
- logs : identifiants de la tâche et de ses parents sur chaque ligne
- logs : niveau debug pour les requêtes peu informatives
- cerema : droits personnalisés Cerema sur les locaux
- equipe : scinde le droit données restreintes en locaux et établissements
- http : alerte Sentry sur les 429 répétés d'une API externe
- stats : instantané d'activité retiré de stats
correction
- elastic : effacements de l'index en tâche de fond, sans relance du client
- securite : modification d'une subvention limitée à son établissement
- api : erreurs front tronquées et étiquettes longues acceptées en recherche
- admin : création d'équipe, modification de compte et demandes d'équipe
- suivi : dates vides acceptées et citations markdown préservées
- collectivites : filtre Activités retiré, activités ignorées par la recherche et conservées par la fiche
- fiches : commentaire des contacts, créations d'établissement et qualification de masse des collectivités sans activités
- locaux : vacance cohérente avec l'occupation sur la fiche, en masse et à l'ajout ou au retrait d'occupant
- locaux : données personnalisées vidables et vérifiées, remembrement indexé, qualification de masse complète
- api : variations décimales dans l'index, hausse et baisse strictes, effectifs RCD réindexés
- api : évolution du CA, même fenêtre et même appariement pour l'index et l'affichage
- locaux : seuls les propriétaires du dernier millésime sont affichés
- api : entrées malformées validées, accès restreints à l'équipe
- env : variables d'environnement booléennes lues comme des booléens
- brevo : le corps des e-mails n'est plus journalisé quand Brevo est désactivé
- logs : erreurs du front reconnues par leur origine, pile complète des filets d'erreur
- taches : noms écrits dans les logs alignés sur les noms des tâches
- taches : nom de la sous-tâche établissements de la mise à jour SIRENE par requête
- logs : messages des imports écrits en base
- contacts : les contacts supprimés ne sont pas comptés dans le mail d'anonymisation
- logs : borne de début du lien Logs d'une tâche
- securite : recherche par propriétaire et locaux occupés soumis aux droits locaux
- securite : garde les routes locaux de equipe-meta par la fonctionnalité locaux
- Suivis : formulation des Brouillons
- api-entreprise : erreurs d'authentification remontées à Sentry
- rcd : index de la table annuelle renommé au nom déclaré lors de la bascule
- stats : bascule Metabase avec des originaux hors service
fonctionnalité
- stats : activité des équipes en agrégats et modification en place des copies
- stats : fiches territoriales dans stats et sélection des questions de la bascule
correction
- stats : bascule Metabase au format pMBQL, questions publiques modifiées en place et reprise
- stats : clés primaires sur le référentiel copié dans stats
fonctionnalité
- stats : statistiques Metabase expurgées, copiées chaque nuit hors de la prod
- e2e : restaure la documentation autodoc et la publie sur une branche orpheline
- email : visionneuse des e-mails envoyés par Deveco
- taches : terminer en échec les tâches sans nouvelles depuis 24 h
- admin : indexation ciblée depuis la page des tâches
- admin : mises à jour SIRENE ciblées et correction du géocodage depuis la page des tâches
- admin : mise à jour RNE par date depuis la page des tâches
- egapro : import des exports publics en tâche depuis la page des tâches
- admin : mise à jour BODACC depuis la page des tâches
- admin : mise à jour SIRENE par requête depuis la page des tâches
correction
- stats : une connexion prod par table copiée vers stats
- index : ne plus avaler les échecs des mises à jour par requête des établissements
- index : signaler les établissements écartés de l'index
- index : rattrapage des échecs d'indexation des établissements
- index : recherche de l'écart entre la base et l'index des établissements
- e2e : fiabilise la campagne et aligne les samples d'environnement
- admin : tâches de la fenêtre Actions par ordre alphabétique
- e2e : scénarios de la page des tâches remis dans la campagne
- taches : terminer chaque tâche et garder la cause de ses échecs
- geoloc : géolocalisation INSEE prioritaire seulement si l'adresse est trouvée au numéro
- sécurité : jeton obligatoire sur la mise à jour SIRENE des liens de succession par requête
- sirene : alertes sur les volumes reçus de la mise à jour SIRENE
fonctionnalité
- rcd : reprise de la réindexation depuis la route et la page des tâches
- admin : reprise et arrêt de l'import de la géolocalisation depuis la page des tâches
- geoloc : arrêt propre et reprise par tranche de l'import, depuis la table de travail
- admin : import et réindexation de la géolocalisation depuis la page des tâches
- geoloc : import du fichier de géolocalisation SIRENE en tâche
- admin : lancement de l'import RCD depuis la page des tâches
- effectifs : variation annuelle précalculée à l'import + résilience RCD
- appareils : se souvenir de cet appareil
correction
- sirene : remonter l'échec d'authentification INSEE au lieu d'une journée vide
- sirene : attendre la publication INSEE avant la mise à jour quotidienne
- admin : « Relancer » préremplit la période et la table de l'indexation des établissements
- admin : table de SIRET facultative dans l'action d'indexation des établissements
- index : indexation des établissements d'une table de SIRET arbitraire
- sécurité : améliorations des appareils connus
- geoloc : la réindexation de la géolocalisation recalcule QPV et ZFU et garde la contribution d'équipe prioritaire
- Notifications : titre de page
- geoloc : réindexation par lancements bornés avec une limite obligatoire
- geoloc : vue temp alignée et réindexation de la géolocalisation depuis une table de travail
- geoloc : géolocalisation INSEE prioritaire seulement si plus récente que SIRENE
- queue : délai d'expiration choisi par la tâche, 3 heures pour l'import RCD
- sources : mot de passe postgres hors des arguments de psql
- Effectifs : lecture de la variation précalculée dans l'indexation complète
- zonage : un refus d'Elasticsearch à l'indexation répond 400 et annule l'écriture
- zonage : refuse en 400 un zonage dont une coordonnée sort des bornes
- zonage : une panne à la création remonte en 500, seule une forme refusée répond 400
- zonage : journalise une indexation dont la transaction est annulée
- zonage : création et modification en transaction avec l'indexation
- api : détail Zod dans le message des refus de partage et de connexion personnalisée
- api : trace les refus 4xx de ProConnect et du WFS
- api : journalise en détail l'appelant refusé hors navigateur
- api : trace les refus 403 de compte désactivé et hors navigateur
- api : journalise le premier dépassement du rate-limit par IP
- api : journalise en info les refus de validation Zod
- api : journalise en info les erreurs 4xx levées
fonctionnalité
- mfa : clé à saisir à la main sous le QR code, à l'activation et au changement d'appareil
correction
- email : heure de Paris dans l'objet des e-mails de connexion
- session : fenêtre d'inactivité de 3 jours et non de 10
- profil : ancien mot de passe exigé seulement si le compte de la session en a un
- auth : lien de connexion expiré expliqué sans parler de jeton
- demandes : une demande ouverte se repère à sa date de clôture, pas à son motif
- ui : badges centrés verticalement, alignés au pixel côte à côte
- email : heure de Paris dans les alertes de connexion et de sécurité
- mfa : applications d'authentification listées au changement d'appareil
- demandes : la réouverture efface le motif de clôture
correction
- ProConnect : retrait de la trace de connexion
- securite : authentification, MFA et ProConnect
- ProConnect : alias /logout vers la connexion pour le retour de déconnexion
- securite : l'appareil inconnu devient une alerte avec lien de désaveu
- session : la bascule d'équipe révoque l'ancienne lignée
fonctionnalité
- auth : focus automatique sur l'identifiant à la connexion et sur le code au challenge MFA
- mfa : lien sandbox pour se connecter sans activer le second facteur
- securite : IP client de confiance via en-tête proxy configurable
- explorer : chapitres des panneaux de filtres des cinq listes
- demandes : filtre de statut en colonne, légende en gras
- demandes : participants contacts et collègues sur les demandes
- demandes : statut dérivé, résultat à la clôture, badges et filtre à cinq statuts
- mfa : codes de secours, sessions compactes, explication et diagrammes des parcours
- mfa : origine de l'activation, sessions lisibles et identifiant du profil
- auth : MFA et mots de passe
- demande-compte : dépôt public et traitement admin des demandes de compte
- admin : l'équipe de rattachement se choisit à l'activation du compte
correction
- Scalingo : restauration des buildpacks sans suffixe .git
- mfa : navigateur visible dans les sessions, demande de compte orientée vers ProConnect et préremplie après un échec
- elmbook : exemples de demande complétés et vérifiés par un test
- Scalingo : mise à jour des buildpacks
- notes-service : filtre de statut envoyé à l'API et motif de clôture enregistré
- auth : lien magique consommable sans corps de requête
- mfa : lien d'enrôlement rendu dans la réponse en sandbox
- auth : gardes superadmin par personne et échappement des e-mails
- demande-compte : corrections post-prod des écrans utilisateurs et demandes
- admin : les pages sources et API partagent un menu latéral
- admin : la suppression d'un compte brouillon demande confirmation
- e2e : pile e2e remise en état et scénarios alignés sur l'application
fonctionnalité
- admin : bouton de copie sur la réponse des requêtes admin
- admin : interroge l'Espace Opérateur sur un SIRET
- brevo : vérifie les templates Brevo avant chaque mise en production
correction
- établissement : ressources préservées lors du transfert
- demo : répare make demo de bout en bout
- siretisation : conserve le point interne des noms dans la recherche
- recherche : retire les accents des noms de contacts à la reconstruction de l'index
- cron : laisse les erreurs remonter a jobCron pour alerter Sentry
correction
- Carto : clusters irréductibles, harmonisation des deux cartes, transport allégé
fonctionnalité
- ProConnect : création automatique de compte via l'Espace Opérateur
- UI : ajout d'une page de démo des graphiques
correction
- ProConnect : création de compte via l'Espace Opérateur
- app : infobulles DSFR qui restent affichées
- e2e : remise en place des tests E2E
- test : chargement global des modules avant les tests
- Etablissements : indexation des référent(e)s et du booléen locaux à la reconstruction des index
- Carto : gestion correcte des points et du recalcul de zoom
- anonymisation : meilleur suivi
fonctionnalité
- Imports : utilisation d'un template de mail dédié
correction
- Email : correction du mois utilisé pour certaines recherches du mail mensuel d'activité
- etablissements : mauvais champ mis à jour après échec de suppression d'une recherche enregistrée
- tech : elm-ts-types et elm-watch
correction
- routage : ajout d'un répertoire pour le site vitrine
- Test : chargement conditionnel du contrôleur de test
correction
- Koa : route sensibles à la casse
- XSS : protection contre le XSS dans les champs riches
- Compte : contrôle du mot de passe, s'il existe, lors d'un changement de mot de passe utilisateur
- Référents : vérification que les référents font partie de l'équipe
- Logs : meilleurs logs pour les erreurs de génération de flux
- Création : meilleur contrôle des Contacts ajoutés en Créateur
correction
- ES : activation du retry dans l'update d'un doc unique
- Erreurs : ajout de validation de certaines routes
- ES : meilleur log quand le document n'est pas trouvé
- Zonage : nettoyage optimisé des géométries
correction
- ES : retour à des requêtes séquentielles pour alléger la mémoire
- ES : meilleure gestion des requêtes et des réponses vides
correction
- Exports : erreur de synchronisation lors de l'export geojson
- Export : meilleure gestion de la queue PGBoss pour les exports qui échouent
correction
- Carto : meilleure gestion de la bucketisation dans ElasticSearch
fonctionnalité
- UI : ajout d'un lien Remonter en haut de la page
correction
- GPL : masque totalement les étiquettes Activités
- Commentaires : limite de la taille du bloc Commentaires
- Logs : meilleure gestion de l'envoi d'erreurs front
- Suivi : erreur correcte quand l'entité n'est pas trouvée
- Suivi : récupération des Suivis uniquement sur le bon onglet
- Locaux : suggestions d'occupants désormais fonctionnelles
- zonage : index géométrie en GiST dans le schéma (alignement sur la prod)
- cron : baisse la fréquence d'une vérification DB pour préserver le pool
- Carto : typage et résolution de bug d'encodage
- zonage : tolérance ES sur le nettoyage géométrique (geo_shape rejetait des doublons)
fonctionnalité
- Collectivités : ajout du modèle d'import de données Collectivités
- Etablissements : possibilité de filtrer par l'une ou l'autre de plusieurs adresses
- étiquettes : ajout d'une description aux étiquettes
- étiquettes : ajout d'une description aux étiquettes
- Admin : affichage du nombre d'utilisateurs et d'équipes
correction
- auth : utilise la source du userAgent plutôt qu'entièrement
- Carto : problème de clic sur certains points sur la carte
- Stats : résolution d'une requête N+1
- GPL : modèle dédié pour l'activité du service
- Suivis : vérification des demandes liées aux échanges
- Log : rate-limiting pour la route de log d'erreur front
- MFA : sécurisation de l'énumération des comptes
- diagnostic de quelques erreurs
- entreprises : garde données restreintes sur GET /:entrepriseId/participation
- JWT : stockage plus fin du user-agent
fonctionnalité
- GPL : ajout des fichiers dans les Communications Générales
- Admin : amélioration des tableaux Utilisateurs et Equipes
- Contacts : ajout du bouton Voir plus pour limiter les tableaux de Contacts
correction
- Admin : gestion du parcours MFA via ProConnect
- Admin : ajout de la fonction dans l'export Utilisateurs
correction
- locaux : l'import des fichiers écrasait les étiquettes existantes
- Locaux : recherche par numéro
- Carto : mauvaise interaction entre les deux blocs carto sur les pages de recherche
- Locaux : rayon par défaut quand le rayon fourni vaut 0
- Locaux : on enlève le 0 qu'on a rajouté aux numéros
- Import : adaptation de la page Imports en fonction des accès aux entités
fonctionnalité
- étiquettes : meilleure gestion des admins étiquettes et édition des utilisateurs et équipes
correction
- Collectivités : champ commentaire non fonctionnel
fonctionnalité
- filtres : recherche d'établissements et locaux par géolocalisation et rayon
- auth : supprime les multi-équipes du JWT; propose les équipes dans une liste au changement
correction
- GPL : erreur lors de la validation des commentaires
- Admin : les comptes importés en masse sont admin d'étiquettes
- suivi : filtre les pièces jointes trop volumineuses lors de la création par mail
fonctionnalité
- Admin : améliorations de l'import de masse
fonctionnalité
- Admin : pagination et liens entre les pages Équipe et Utilisateurs
- Admin : suppression de comptes brouillons, édition des droits d'une équipe
- Admin : création de comptes en masse, ajout du concept de Brouillons
correction
- front : suppression de l'équipe externe pour les Suivis
- tech : exclusion d'un path dans tsconfig
- Locaux : recherche de catégorie par code et par intitulé
- tech : nom de colonne changé en prod mais pas dans les fichiers
- tech : amélioration des "as const" et des requêtes Drizzle
- exports : typo dans le nom de la clé des commentaires
- rne : pas d'authentification si l'API RNE est désactivée
- Logs : calcul des requêtes HTTP
- env : gestion des configurations facultatives
- Excel : correction des colonnes pas remplies pour Échanges et Demandes
fonctionnalité
- log : stockage des métriques serveur dans une table dédiée
correction
- Export : correction du message pour les exports trop grands
- log : meilleure gestion du log des erreurs
fonctionnalité
- Locaux : dans l'export, ajout du code de catégorie et formattage de la date des mutations
- API : gère la récupération des infos API Entreprise et RNE côté front
- commentaires : affiche et exporte la date de modification
- filtres : recherche textuelle de filtres
- Excel : exporte les référents des entités
- exports : permet de supprimer une demande d'export prête ou échouée
- API : contrôle des APIs
- Tâches : exécution depuis l'interface admin
correction
- Exports : style de la modale de confirmation de suppression
- Webinaire : suppression de la mention obligatoire
- ElasticSearch : ajoute un check avant de faire des requêtes sans body
- modification des liens et emails d'invitation de collègues
- Excel : affichage des colonnes de création/modification
- GPL : formulation
correction
- Collectivités : bug dû à la gestion de l'impression de fiche
- Stats : le graphique des subventions n'est plus tronqué sur 10 ans
- fixtures : ajout du refresh des vues matérialisées
- fixtures : ajout d'une équipe de type GPL dans les fixtures
- Activité : liens plus précis sur les blocs de Suivis
fonctionnalité
- Admin : requêtes API SIRENE depuis l'interface
- Admin : requêtes ElasticSearch depuis l'admin
correction
- Activité : correction des liens depuis la page Activité du service
fonctionnalité
- changelog : ajout du suivi des nouveautés
- Excel : ajout de qui a créé et modifié un Contact
- Excel : ajout de qui a créé et modifié un échange et une demande
- établissements : tâche de rattrapage des données non-diffusibles depuis l'API SIRENE
correction
- deploy : supprime le symlink api/node_modules commité par erreur
- Erreurs : possibilité de logger des erreurs fronts sans compte
- établissements : colonne manquante dans l'insertion des successions
- établissements : déduplication lors du rattrapage des liens de succession
fonctionnalité
- établissements : filtre par famille et nature de procédures collectives
- locaux : ajoute les référents + filtre
- local : permet d'ajouter et de filtrer par la date de vacance économique
- referents : qualification de masse pour toutes les entités
- commentaire : uniformise l'édition de commentaire sur toutes les entités
- créateurs : uniformisation des icônes de portefeuille et du filtre accompagné
- siretisation : ajout du code NAF et catégorie juridique dans la réponse
- Tâches : filtre par statut
correction
- local : le tooltip de date de vacance s'affiche sur la bonne carte de résultat
- créateurs : ajout du filtre référents et uniformisation
- créateurs : placement de l'icône référent
- Logs : la page se recharge correctement
fonctionnalité
- wfs : implementation basique
- local : permet de filtrer par type, date et montant de mutation
- data.subventions : recherche et affiche des subventions
- établissement : ajout d'un filtre "employeur"
amélioration
- data.subventions : importe le fichier en streaming
correction
- wfs : retourne le token dans les liens dans la réponse XML
- sécurité : validation Zod de /logger
- sécurité : valide les paramètres OAuth de /proconnect/custom-connection
- imports
- effectifs : reprise sur erreur (dernier siret traité) pendant l'indexation de l'import
- établissements : ajout de la source data.subvention dans le tooltip des subventions
- data.subventions : corrige le nom de la vue matérialisée, factorise la logique de requêtage
- établissements : label de la qualité employeur de l'établissement
correction
- a11y : labels manquants
correction
- fixtures : init.sql
- fixtures : script de migration
- subventions : corrige l'erreur d'indexation des subventions
- ratios-financiers : ne sélectionne que les bilans 'C' pour l'affichage
- Zonage : récupération en base de l'id uniquement
correction
- regex
fonctionnalité
- établissements : précise que l'on peut rechercher des établissements par contact
- contact : ajoute un champ commentaire lors de l'édition
- ajout d'équipes GPL en autonomie
- Suivis : affichage et recherche séparés pour la création et l'édition
amélioration
- établissements : optimisation de la recherche de subventions par année ou montant
correction
- taches : vue timeline d'une tâche et son arborescence
- effectifs : copie le script SQL dans le bon répertoire après compilation; ajout des variables d'environnement RCD_MINIO_XXX
- effectifs : ne supprime la connexion qu'en mode script; log d'erreur sur plusieurs lignes
- logs : enlève le padStart pour l'utilisation CPU et mémoire
- typo
- amélioration des logs
- Sentry : ne capture pas les erreurs métier
- suivi : bloque les contenus de descriptions > 100 Ko
fonctionnalité
- Metrics : ajout d'une route pour récupérer les métriques Prometheus
- taches : affichage en timeline
correction
- a11y : capture correcte des tabs dans les modales
- Sirene : amélioration de la date de mise à jour pour optimiser l'indexation
- taches : les filtres sur les dates n'incluaient pas la date choisie
- import : encapsule les imports SIRENE dans des transactions
- index : encapsule la création d'index d'établissement dans une transaction
- front : select Adresse
- sécurité : ajoute helmet, CORS et rate-limiting
- drizzle : supprime l'utilisation de sql.raw et corrige les potentielles injections SQL
- import : propage l'erreur RNE et logue les jobs singleton refusés
- front : corrige les erreurs de boucle de focus dans certains cas d'utilisations de plugin navigateur
correction
- ElasticSearch : densité communale
- Locaux : certains filtres redirigeaient vers établissements
- Indexation : amélioration des procédures
fonctionnalité
- Contacts : ajout des dates de création et de modification dans l'export
correction
- FRR : mise à jour de l'index de façon asynchrone
- Contacts : la date et le compte de modification n'étaient pas enregistrés
- Zonages : vérification ElasticSearch avant sauvegarde en base
fonctionnalité
- logs : partage de log id
- densité-communale : ajoute un filtre sur la densité communale de la commune d'un établissement
- densité-communale : utilise un sélecteur MultiSelect
amélioration
- index : utilisation de l'option track_total_hits pour se passer d'une seconde requête en parallèle
- index : utilise le filtre pour la requête par géolocalisation au lieu de must
- index : désactive le refresh lors de l'indexation de masse
- etab : découpage des statistiquese en plusieurs requêtes séquentielles
- FRR : indexation des établissements en FRR par requête ciblée plutôt que document par document
correction
- densité-communale : utilise un flux pour lire le fichier XLSX
- FRR : envoie les communes par batch pour la mise à jour de l'index
- densite-commune : corrige l'import du fichier XLSX de l'INSEE
correction
- indexation : utilisation d'une vue dédiée pour l'indexation
- définition de la table temporaire
fonctionnalité
- FRR : import des zonages FRR et filtrage des établissements et locaux
- FRR : ajout des filtres pour établissements et Collectivités
correction
- Suivis : validation zod des fichiers
- taches : corrige l'affichage du statut en fonction du rapport
- index : enlève les logs 'document missing' qui causent des problèmes mémoire
- ProConnect : ajout de la fonction
- FRR : correction de l'indexation
- ProConnect : fonction
correction
- Exports : meilleure gestion de la taille des fichiers d'export
- Import : bug de parsing de date Excel à 4 chiffres
- Import : problème d'interprétation de lettre de cellule
- DSFR : mise à jour du composant Notice
- Excel : on ne récupère pas les images inline dans les échanges
- ElasticSearch : type de la colonne d'Efdectifs à virgule
- ElasticSearch : mauvais type de colonne
fonctionnalité
- meilleure UX lors d'un changement de version de l'appli
correction
- ProConnect : récupération du nom de famille, téléphone et insertion de lien entre contact et établissement
- ElasticSearch : indexation effectifs à virgule
- ElasticSearch : try/catch lors du resetIndexes
- imports : correction du chemin absolut des scripts SQL
- db : reconnexion à la base de données automatique
- Tâches : date de début facultative
- étabs : corrige la construction de l'index des effectifs
- Contacts : validation de la date de naissance
fonctionnalité
- Import : ajout d'un notice quand certains onglets sont manquants
correction
- contact : validation de la date de naissance optionnelle
- tech : validateurs
- tech : validateurs
- tech : validateurs
- SIG : corrige les problèmes de mémoires lors du streaming de grandes équipes
- tests : tests de validateurs
- SIG : corrige les problèmes de connexion coupée lors d'un téléchargement
- tech : validation des Fichiers pour Suivis
- http : corrige le reporting d'erreur en cas de fermeture prématurée de connexion
correction
- Exports : ajout d'une clef manquante
- tests : mauvais alias
- ES : propositions d'améliorations de performance
correction
- établissements : colonne manquante dans l'indexation des effectifs
fonctionnalité
- logs : plein écran
- logs : ajout du pourcentage de CPU utilisé
- logs : graphiques
- Suivis : envoi de nouvelles notifications pour les Rappels
correction
- tech : tsc-alias
- tests : mauvais mock
- tests : mocks
fonctionnalité
- taches : ajout des paramètres
- Logs : page de visualisation Admin
correction
- ElasticSearch : corrige les logs de la màj avec multiples essais
- logs : formattage des messages
- Établissement : affichage du statut microentreprise dans le bloc Sirene
correction
- tâche ElasticSearch
- Stats : dates des statistiques d'établissements et de subventions
correction
- import de node-fetch oublié
- Sirene : encodage de la requête et suppression de node-fetch
correction
- RNE : erreur lors de l'ajout de valeurs vides
fonctionnalité
- Sirene : ajout du tri par dateDernierTraitementEtablissement et dateDernierTraitementUniteLegale
- Admin : route de récupération du statut d'une tâche
- Sirene : meilleur log des tâches et script
correction
- logs : tâche ElasticSearch
- version des types node
- RNE : corrige la récupération des informations du RNE de l'INPI
correction
- indexation des QPVs suite à une mise à jour SIRENE
- logs : nom des tâches liées au géocodage
- meilleure gestion des fonctions httpGet/httpPost
- URL : bug dans urlJoin
- tech : utilisation des alias pas au point
- tech : utilisation des alias pas au point
- Sirene : problème de valeur falsy dans la validation
- ElasticSearch : correction du nom de la colonne de siret pour l'indexation
fonctionnalité
- rne : récupération des informations du RNE depuis l'API de l'INPI
- Sécurité : connexion en MFA exigée pour les superadmins
- DSFR : utilisation des tableaux DSFR pour certaines données
correction
- drizzle : ajout du compte pour l'API RNE
- tests : migration des fichiers de tests vers le répertoire approprié
- Locaux : gestion des coordonnées dans l'URL (pour la recherche depuis la carto)
- encodage des paramètres lors de la recherche par la carto
- lint
- chemins d'import des fichiers
- Sirene : écrasement à tort de la date d'insertion dans Deveco lors des mises à jour
- Sirene : backport de beta-751
correction
- Locaux : gestion des coordonnées dans l'URL (pour la recherche depuis la carto)
- encodage des paramètres lors de la recherche par la carto
correction
- Sirene : meilleur monitoring des récupérations d'unités légales
fonctionnalité
- pièces jointes dans les Suivis (hors Brouillon)
- ajout des pièces jointes dans les Brouillons/Communications Générales ; gestion de la transformation
- e2e : ajout de documentation générée par les tests E2E
- Admin : visualisation des tâches admin
- Admin : filtres et tri des Tâches
correction
- correction d'une migration
- meilleur synchro de l'URL lorsque certains filtres sont illégaux
- débloque le scroll quand une modale disparaît
- utils : unknownToNumber
- Contact : boutons sur la page Contact
- Établissements : mauvaises icônes de portefeuille
- Sirene : mauvaise procédure de mise à jour d'indexation
- Sirene : possibilité de mise à jour avec une date complète
- Locaux : suppression de la limite des 10k pour l'export GeoJSON
- Stats : affichage des nombres à virgule
- Suivis : pièces jointes
- gestion de memlab qui est une devDependency
correction
- Sirene : possibilité de mise à jour avec une date complète
- Contact : boutons sur la page Contact
- Établissements : mauvaises icônes de portefeuille
- Sirene : mauvaise procédure de mise à jour d'indexation