Résumé

  • La possibilité de fournir zéro règle dans un fichier CDDL ne dispense pas le modèle assemblé de posséder un point d’entrée. RFC 9682 réserve cette vérification à l’après-traitement des directives.
  • Le projet de structure modulaire rend visibles des choix qui dépassent le fichier livré : dépendances résolues, environnement de recherche et règle racine. Une réception sérieuse doit porter sur ce résultat précis.

Il existe une manière apparemment irréprochable de mal réceptionner un composant : lui demander de satisfaire, seul, une condition qui appartient à l’ensemble. Le fournisseur ajoute alors le contenu nécessaire au formulaire, sans que ce contenu contribue réellement à l’usage prévu. Le dossier devient conforme et le système moins intelligible.

Une modification de la grammaire CDDL montre comment éviter ce piège. Elle autorise l’entrée en scène d’un fichier vide de règles, parce que les règles peuvent venir d’ailleurs. Mais elle ne confond pas l’assemblage avec un abandon des contraintes. Le point d’entrée demeure nécessaire lorsque le modèle est constitué.

Ce n’est donc ni un plaidoyer pour multiplier les contrôles, ni une invitation à les supprimer. C’est une question de lieu : à quel moment dispose-t-on de l’objet sur lequel la condition a un sens ?

Un minimum syntaxique peut être prématuré

La notation ABNF distingue une répétition dont le minimum vaut un d’une répétition sans minimum indiqué, laquelle peut être nulle. Cette convention suffit à expliquer l’effet du changement de grammaire ; elle ne prouve rien sur l’achèvement d’une opération. RFC 5234, section 3.6

RFC 9682, publié en novembre 2024, permet à un fichier CDDL de ne contenir aucune règle. Sa section 3.1 explique que des directives de module peuvent fournir toutes les règles et conserve, après leur traitement, la contrainte sémantique d’une règle servant de point d’entrée. L’annexe informative B.2 choisit aussi un traitement différé pour le contenu des chaînes d’octets qualifiées. La séparation des étapes ne rend pas leur résultat arbitraire. RFC 9682

La question se situe en amont de la conformité des données. On cherche d’abord à savoir quel modèle a été formé. Un fichier source vide n’est pas un validateur achevé qui accepterait tout. Lui ajouter une règle sans rapport avec l’usage pour satisfaire un ancien contrôle ne résout pas davantage le problème.

En CDDL de base, la première règle définie joue le rôle de racine ; elle doit définir un type et non un groupe. Son nom n’est pas obligatoirement start. L’étendue du contrôle des données par une application relève d’un autre choix, confié à ses concepteurs. Ces niveaux ne doivent pas se remplacer mutuellement dans une explication de conformité. RFC 8610, sections 2.2.4, 4.2 et 5

Une réception limitée au nombre de règles manque donc le point décisif. Une règle existe peut-être, mais est-ce celle par laquelle le consommateur doit entrer ? Le bon ensemble de dépendances a-t-il été composé autour d’elle ? Le résultat peut-il être reconstitué sans la mémoire du premier opérateur ?

Le fichier ne contient plus toute la décision

La proposition de modules consultée le 7 septembre 2026 est draft-ietf-cbor-cddl-modules-07, datée du 2 septembre. Elle reste un Internet-Draft, pas un RFC ; le texte de 2024 citait une version antérieure.

Ses directives prennent une forme que les outils CDDL de base peuvent lire comme des commentaires. Cela permet de concevoir certains fichiers compatibles avec les deux usages, sans garantir qu’un outil ignorant les directives produira le même modèle qu’un outil qui les exécute. La proposition distingue aussi inclusion et import des dépendances référencées. CDDL Module Structure, version 07

L’organisation générale des répertoires sources et leur priorité ne sont volontairement pas entièrement fixées. Un exemple d’implémentation recherche d’abord dans le répertoire courant puis dans sa collection intégrée. Un autre exemple choisit la racine depuis la ligne de commande et produit une première règle synthétique sans fichier d’entrée. Ce sont des exemples documentés, non des essais réalisés pour cet article.

Pour une équipe de réception, cela signifie que le nom d’un module n’épuise pas son identité opérationnelle. Deux environnements peuvent résoudre le même nom vers des contenus distincts. Deux utilisations peuvent sélectionner des racines différentes. Un préfixe d’espace de noms répond au risque de collision ; il ne certifie ni l’origine des octets ni la pertinence du point d’entrée.

Imaginons un fournisseur qui livre le fichier principal accompagné d’un résultat positif obtenu chez lui. Le client utilise son propre ensemble de dépendances. Aucun des deux n’a nécessairement falsifié quoi que ce soit. Pourtant, ils peuvent parler de deux modèles différents tout en désignant la même pièce jointe. Cette situation est hypothétique, mais elle décrit précisément ce qu’un dossier réduit au fichier ne permet pas de trancher.

Une preuve attachée au résultat

Un relevé de composition utile relierait les contenus sources, la configuration de recherche, la version du processeur, la racine retenue et le modèle obtenu. Il s’agit d’une recommandation éditoriale, pas d’une nouvelle obligation administrative imposée par l’IETF.

Son intérêt est économique autant que technique : éviter que toute vérification ultérieure commence par une enquête sur l’environnement disparu. Un répertoire local nettoyé, une collection intégrée mise à jour ou un expert parti peuvent rendre cette enquête coûteuse alors que le fichier principal reste parfaitement conservé.

Il faut surtout nommer les résultats séparément. L’analyse syntaxique d’un composant a réussi. Les références ont été traitées. Le modèle obtenu possède l’entrée attendue. Ces opérations peuvent rester dans un même outil ; nul besoin d’inventer trois services. Mais un seul indicateur de succès ne doit pas faire croire que chacune a été démontrée.

Les sources examinées établissent une conception et ses limites, pas une fréquence d’incidents. Aucun fournisseur n’est ici accusé, aucun exploit n’a été reproduit et aucun taux d’adoption n’est avancé. La leçon est celle d’une exigence déplacée : si le premier contrôle devient inapproprié, sa disparition doit s’accompagner d’une preuve au bon endroit.