Valider dans son éditeur
Brancher le schéma publié de flexway.yaml dans son éditeur : complétion de chaque clé et faute soulignée à l'écriture, plutôt qu'au démarrage.
GuideExploitationDepuis la version 1.7.0
Sur cette page
Référence de configurationChaque clé de la configuration, son type, son défaut et sa version d'arrivée.
Guide d'exploitation : configurer, déployer et observer la passerelle. Ce que fait la fonctionnalité côté produit : guide produit ; l'appeler : guide développeur.
Que l'éditeur complète flexway.yaml et souligne une faute à l'écriture - clé
inconnue, valeur hors liste, durée mal écrite, secret écrit en clair -, plutôt qu'au démarrage.
Flexway publie un schéma JSON (JSON Schema 2020-12) de sa configuration, écrit depuis le modèle de la passerelle à chaque version : chaque clé avec son type, ses valeurs admises, sa valeur par défaut, la version qui l'a apportée, si un rechargement l'applique, et une description en français et en anglais. Le détail clé par clé : référence de la configuration.
Étapes
- Ajouter une ligne en tête de
flexway.yaml- elle suffit aux éditeurs qui utilisentyaml-language-server(VS Code avec l'extension YAML de Red Hat, Neovim, JetBrains, Helix) :
flexway.yaml
# yaml-language-server: $schema=https://flexway.io/schema/v1/flexway.schema.json
version: 1
contracts:
openapi: ./openapi.yaml
upstreams:
orders:
url: http://orders.internal:8080
timeout: 3s- Hors ligne, ou pour figer le schéma de la version déployée, l'écrire depuis l'image de cette version :
docker run --rm -v "$PWD:/out" -u "$(id -u)" ghcr.io/flexwiz/flexway:<version> schema --out /out
# /out/flexway.schema.json
# /out/contract-extensions.schema.json
# /out/policy-fragment.schema.json (a fragment file, kind: PolicyFragment)- Pointer la ligne vers le fichier local :
# yaml-language-server: $schema=./flexway.schema.json.
Les extensions du contrat
Les extensions x-flexway-* d'un document OpenAPI, AsyncAPI ou d'une carte A2A
sont décrites par contract-extensions.schema.json (une définition par extension sous $defs, avec
les emplacements où elle est lue). Les politiques sont dans flexway.schema.json : la forme de
config suit le type de la définition (cors, rate-limit, quota, cache, header-inject,
header-remove, rewrite-path, query-inject, query-remove, transform-body, redact,
map-status, external-call).
Vérifier
Écrire timeouts: { conect: 5s } sous server - l'éditeur souligne conect (clé
inconnue) ; la complétion propose connect avec sa description et son défaut 5s. Écrire log_level: verbose sous
observability - l'éditeur liste debug, info, warn, error, fatal.
À savoir
Important
Le schéma décrit ; flexway validate décide. Ce qui croise plusieurs fichiers - un amont
pour chaque opération du contrat, une route déclarée deux fois, une politique nommée qui n'existe
pas - n'est vérifié que par flexway validate et au démarrage. Gardez flexway validate dans la CI.