Aller au contenu

TOML : Tom's Obvious, Minimal Language

Infrastructure

TOML : Tom's Obvious, Minimal Language, format de fichier de configuration conçu pour être lu par des humains. « Un format qui se proclame évident, ce qui n'a jamais dispensé personne de lire la documentation », par analogie avec la notice de meuble en kit, presque sans texte et pourtant source de longues discussions conjugales.

Repères : Créé en 2013 par Tom Preston-Werner, cofondateur de GitHub, qui lui a donné son prénom par modestie. La version 1.0.0 a été publiée en janvier 2021. Le format range des paires clé = valeur dans des tables annoncées entre crochets, avec des types précis : chaînes, entiers, booléens, dates.

Où on le croise : Cargo.toml pour Rust, pyproject.toml pour Python, et la configuration de nombreux outils, dont des scanners de secrets comme gitleaks, où les règles de détection et les exceptions s'écrivent en TOML.

Côté sécurité : Le format n'exécute rien, à la différence de certains chargeurs YAML trop serviables. Le danger vient du contenu : mots de passe écrits en clair dans un fichier commité, ou exceptions trop larges dans la configuration d'un scanner, qui transforment l'outil de contrôle en outil d'amnistie.

Ce qui arrive si on s'en passe

Un secret écrit en clair dans un fichier TOML commité est un secret publié : il reste dans l'historique Git même après sa suppression, et se retrouve dans chaque clone, chaque fork et chaque sauvegarde. Côté contrôle, une exception trop large dans le fichier TOML d'un scanner de secrets, du genre « ignorer tous les fichiers de configuration », désactive la détection précisément là où les secrets aiment se ranger. Ces fichiers d'exceptions méritent donc une revue aussi attentive que le code, puisqu'ils décident de ce que personne ne verra.

Explication de la marmotte

TOML est une façon d'écrire des fichiers de réglages pour les logiciels, avec des lignes simples du type nom = valeur, regroupées en sections. Beaucoup d'outils de programmation l'utilisent, car il est facile à lire. Le format ne pose pas de problème en soi, mais il ne faut pas y écrire de mots de passe en clair, surtout si le fichier est partagé sur un dépôt de code. Les outils qui traquent ces mots de passe oubliés sont d'ailleurs souvent réglés avec un fichier TOML.

Où ce terme est utilisé

← Tout le glossaire