Les instances DINUM et ANCT passent en version 1.7.15 le 22/06/2026.
Ce qu’il faut retenir :
Côté produit
Une installation plus simple pour les auto-hébergeurs
Ceux qui installent Grist sur leur propre serveur sont maintenant accueillis par un assistant de configuration guidé dès le premier démarrage. Il pose les questions essentielles une par une (mode de connexion, permissions, sandbox…) et évite de se perdre dans des fichiers de configuration complexes. Les administrateurs peuvent aussi modifier les permissions par défaut depuis le panneau d’administration, sans avoir à relancer l’assistant.
Meilleure accessibilité
Grist devient utilisable au clavier et avec un lecteur d’écran : navigation dans les grilles, ouverture des menus contextuels, sélection de widgets — tout cela fonctionne désormais sans souris. Une documentation dédiée à l’accessibilité a été publiée en parallèle.
Nouveaux formats de date
De nouveaux formats d’affichage des dates sont disponibles, avec une meilleure détection automatique de la langue et des préférences locales de l’utilisateur.
Le widget calendrier ne dépend plus d’internet
Le calendrier intégré chargeait auparavant des fichiers depuis GitHub, ce qui pouvait le rendre inaccessible pour les utilisateurs ayant un bloqueur de publicités ou une connexion restreinte. Il est maintenant entièrement embarqué dans Grist.
CSS personnalisé dans les widgets
Si un administrateur a configuré une feuille de style CSS sur son instance, elle s’applique désormais aussi à l’intérieur des widgets personnalisés, pas uniquement à l’interface principale.
Côté technique
Nouvelles possibilités pour l’API
Deux ajouts notables : un endpoint POST /records/list qui permet d’envoyer des requêtes volumineuses dans le corps de la requête (et non plus dans l’URL, qui a une taille limitée) pour filtrer les enregistrements, et l’extension du support OAuth à plusieurs endpoints de l’API principale (/orgs, /workspaces, /docs…) avec filtrage automatique selon les permissions du token.
Plusieurs failles de sécurité corrigées
Cinq correctifs de sécurité ont été apportés : protection contre des injections dans les pages serveur, impossibilité de se reconnecter à une session WebSocket avec un simple identifiant de client, interdiction des widgets pointant vers la même origine que Grist (protection XSS), désactivation automatique des webhooks dans les copies/téléchargements de documents, et fermeture d’une fuite de métadonnées sur l’endpoint des formulaires.
Mises à jour de dépendances
Une vingtaine de bibliothèques tierces ont été mises à jour, dont ws (correction d’une fuite mémoire) et axios (meilleure gestion de la taille des requêtes). Ces mises à jour réduisent les vulnérabilités connues signalées par les outils d’audit.
Modernisation de l’infrastructure
TypeScript passe en version 5.9.3, le stockage externe (S3, MinIO…) est mieux configuré et signale immédiatement les erreurs au démarrage plutôt qu’en cours d’utilisation. Les clés de traduction ont été nettoyées pour permettre la suppression automatique des entrées inutilisées.
Grist v1.7.14 et v1.7.15 - note de mise à jour complète
Nouvelles fonctionnalités
Assistant de configuration au premier démarrage (v1.7.14)
L’assistant de configuration introduit en v1.7.13 devient le parcours par défaut pour toute nouvelle installation auto-hébergée. Connectez-vous avec la clé de boot (GRIST_BOOT_KEY) et l’assistant vous guide à travers /admin/setup. Améliorations :
-
Les sandbox de formules disponibles sont vérifiés dès l’ouverture de l’assistant, plus d’attente sur un spinner.
-
Redirections plus fluides après un changement d’authentification ou une connexion avec la clé de boot.
-
Configuration de «Se connecter avec getgrist.com» depuis l’assistant, avec retour dans l’assistant après inscription.
-
Les utilisateurs déconnectés ou non-administrateurs ne peuvent plus ouvrir la page Quick Setup.
-
Les changements d’authentification sont mis en attente comme les autres modifications, et déclenchent un renvoi vers la connexion.
-
Les quatre permissions par défaut à l’échelle de l’installation (sites équipe, sites personnels, accès anonyme, playground anonyme) sont modifiables depuis les Paramètres de sécurité du Panneau d’administration, et pas uniquement pendant l’assistant.
Endpoint POST /records/list (v1.7.14)
Un pendant POST à l’endpoint existant listant les enregistrements (GET /records) — les filtres volumineux peuvent être envoyées dans le corps de la requête plutôt que dans l’URL (limitée par la taille maximale autorisée par les navigateurs). Pour en savoir plus, se référer à la pull-request correspondante.
Améliorations
API
-
POST /records/list: nouvel endpoint pour les filtres volumineux (v1.7.14). -
OAuth étendu aux endpoints de l’API principale :
GET /orgs,GET /orgs/:oid/workspaces,POST /workspaces/:wid/docsetGET /profile/useracceptent désormais les tokens OAuth. Un token à périmètre limité ne voit que les organisations et documents pour lesquels il a été autorisé (v1.7.15). -
Résumés d’actions : les résumés utilisés par les webhooks indiquent désormais explicitement quelles valeurs de cellule sont inconnues, évitant qu’une fusion de deux résumés remplace une valeur connue par un joker (v1.7.14).
Accessibilité (v1.7.14, contribution de @manuhabitela)
-
Support des lecteurs d’écran dans les vues grille.
-
Ouverture des menus de lignes et de colonnes via raccourcis clavier.
-
Ouverture du menu contextuel via raccourcis clavier dans les widgets.
-
Le sélecteur de widgets de page fonctionne désormais au clavier et avec les lecteurs d’écran.
Widgets personnalisés
-
Un fichier CSS personnalisé configuré via
APP_STATIC_INCLUDE_CUSTOM_CSSest maintenant appliqué à l’intérieur des widgets, pas seulement dans l’application principale (v1.7.14, @manuhabitela). -
Le widget calendrier intégré charge depuis la copie embarquée dans Grist plutôt que depuis GitHub, qui importait des fichiers CDN externes parfois bloqués par les bloqueurs de publicités (v1.7.14).
Localisation
-
Nouveaux formats de date (v1.7.14).
-
Amélioration de la détection de locale et de la logique de repli (v1.7.14).
-
Nettoyage des clés de traduction pour débloquer l’élagage automatique : cinq points du code passaient une variable au lieu d’un littéral à
t(), masquant les clés au scanner i18next (v1.7.15).
Infrastructure interne
-
TypeScript mis à jour en 5.9.3, cibles
tscetesbuildpassées à es2020 (v1.7.15). -
Configuration du stockage externe rationalisée : chaque backend gère sa propre configuration, et un bucket S3 mal configuré (ex.
AWS_REGIONmanquant) échoue immédiatement au démarrage (v1.7.15). -
Backend de stockage basé sur le système de fichiers pour les tests, activable via
GRIST_FS_STORAGE_DIR(v1.7.14). -
README mis à jour pour le flux Quick setup, avec un nouveau champ
GRIST_IN_SERVICEdans le tableau des variables d’environnement (v1.7.15).
Correctifs de sécurité (v1.7.15)
-
Durcissement de l’interpolation des valeurs dans les pages rendues côté serveur. Les valeurs insérées dans les blocs
<script>sont échappées avecjsesc, protégeant contre les injections viaString.replace(comme$'ou$&). -
Reconnexion WebSocket : une session authentifiée correspondante est désormais requise. Un
clientIdseul ne suffit plus pour se rattacher à une session existante — on ne peut plus l’utiliser pour usurper une identité. -
Interdiction des URLs de widgets personnalisés en same-origin. Le nouveau helper
disallowCustomWidgetUrl()refuse les widgets dont l’URL est sur la même origine que Grist, en défense en profondeur contre les payloads XSS. -
Désactivation des triggers lors du téléchargement ou de la copie d’un document. Les webhooks et triggers e-mail sont désactivés dans tout document téléchargé ou copié ; les secrets de webhook sont régénérés correctement.
-
Assainissement des URLs dans le paramètre
nextde/welcome/select-account(same-origin requis) et dans les visites guidées de documents. -
Correction d’une fuite de métadonnées dans
GET /forms: l’endpoint lisait les métadonnées directement sans vérifier que la section était un formulaire, permettant de contourner les règles d’accès.
Autres correctifs
-
Lors d’une modification depuis la popup de l’assistant, Grist crée désormais une copie (fork) si le document est un modèle ou un brouillon non sauvegardé — l’original n’est plus modifié directement (v1.7.14).
-
Correction d’un contournement possible des vérifications d’accès via l’assistant lors de la prévisualisation d’un document en tant que propriétaire, avant le fork (v1.7.14).
-
Interdiction aux utilisateurs anonymes de forker des documents (v1.7.14).
-
Au premier démarrage, le healthcheck
/statusretourne désormais «starting» (HTTP 503) jusqu’à ce que le serveur soit prêt (v1.7.14). -
Correction d’une erreur console déclenchée par Ctrl+Alt+O sur la page d’accueil (v1.7.14).
-
Crash explicite si le middleware de connexion ne peut pas s’initialiser quand
GRIST_IN_SERVICE=trueet que le fournisseur d’identité est inaccessible au démarrage, plutôt qu’un repli silencieux (v1.7.15). -
Corrections du widget carte : les nouveaux widgets carte n’empruntent plus la mise en page de la fiche d’enregistrement quand les fiches sont désactivées ; une carte avec une mise en page ne référençant que des champs obsolètes revient à une mise en page par défaut (v1.7.15).
Documentation
-
Nouvelle documentation sur l’accessibilité couvrant la navigation au clavier, le support des lecteurs d’écran et le thème à fort contraste (v1.7.14, @manuhabitela).
-
Documentation de l’exécution locale des tests end-to-end navigateur (nbrowser) (v1.7.14).
Mises à jour de dépendances (v1.7.14 & v1.7.15)
Merci à l’équipe grist.gouv pour la surveillance des dépendances.
@gristlabs/grist-widget, file-type, uuid, axios, webpack-dev-server, ws (correction d’une fuite mémoire dans websocket.close()), multiparty, fast-uri, basic-ftp, node-forge, postcss, lodash, fast-xml-parser, svgo, flatted, follow-redirects, dompurify, @xmldom/xmldom, tmp, shell-quote, picomatch, minimatch, glob, serialize-javascript.