Champs et schémas

Définissez des valeurs structurées et faites évoluer un type sans casser ses contenus.

Sur cette page

Les 29 types de champs

FamilleTypes
Texte et valeurstext, textarea, code, integer, number, decimal, boolean, checkbox, date, datetime, time, email, url, color, json
Choix et relationsselect, multiSelect, radio, relation, taxonomyRelation, userRelation
Édition et médiasrichText, image, gallery, file
Structuregroup, repeater, flexibleContent, extension

parseFieldDefinitions normalise les schémas ; validateFieldValues refuse les clés inconnues et valide récursivement les valeurs. Un niveau accepte 50 champs et quatre niveaux imbriqués au maximum. Les collections acceptent jusqu’à 100 éléments, avec minItems/maxItems facultatifs.

Schéma et valeur validés
import { parseFieldDefinitions, validateFieldValues } from "@bracten/sdk";

const fields = parseFieldDefinitions([{
  name: "specifications", label: "Caractéristiques", type: "repeater",
  maxItems: 20, fields: [
    { name: "label", label: "Libellé", type: "text", required: true },
    { name: "value", label: "Valeur", type: "text", required: true },
  ],
}]);
const values = validateFieldValues(fields, {
  specifications: [{ label: "Matière", value: "Bois" }],
});

Formats et résolution

decimal conserve une chaîne exacte, datetime une date UTC, richText un BlockDocument. image et file contiennent un UUID média ; gallery et les relations contiennent des listes d’UUID. group utilise un objet, repeater une liste d’objets et flexibleContent des éléments avec layout et fields.

Les références sont vérifiées et normalisées en base, avec chemins imbriqués comme specifications/0/value. Le rendu public reçoit uniquement les relations et termes autorisés. Un champ fichier peut référencer un PDF servi en téléchargement ; les sélecteurs d’image excluent les PDF.

Évolution versionnée d’un schéma

  1. Dans Types de contenu, modifiez un type utilisateur et préparez renommages, valeurs par défaut ou abandon explicite des champs retirés.
  2. La vérification parcourt les contenus existants et présente les erreurs sans modifier la base.
  3. L’application reprend la validation sous verrou et exige la version du type attendue.
  4. Le schéma et les contenus compatibles sont transformés ensemble ; une erreur ou un conflit annule la transaction.

L’API utilise POST /api/v1/content-types/:name/validate puis PUT /api/v1/content-types/:name, avec content.types. Les types fournis par une extension restent sous son contrôle. Les anciennes révisions et copies privées ne sont pas réécrites : leur rétablissement doit respecter le schéma courant.

Types de champs d’extension

PluginDefinition.fieldTypes déclare name, label, version numérique et fields. Un champ extension conserve pluginId, name, version et le sous-schéma. Le constructeur de types propose les contributions actives et préserve les descripteurs existants lors d’une modification.

Une contribution absente ou incompatible rend le champ non modifiable, tout en conservant ses valeurs et son rendu structuré. Un champ d’extension ne peut pas en imbriquer un autre. Les JSON incomplets restent dans les copies privées ; l’enregistrement définitif exige des valeurs valides.

Rechercher dans les guides

Saisissez un mot-clé.

↑↓ ParcourirEntrée OuvrirEsc Fermer