flexway
FRENParler à un expert

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

Markdown

Sur cette page

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

  1. Ajouter une ligne en tête de flexway.yaml - elle suffit aux éditeurs qui utilisent yaml-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
  1. 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)
  1. 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.

Étapes suivantes