Tout le comportement du pipeline est contrôlé par deux fichiers YAML dans config/.
base_url : " https://example-tenant.console.ves.volterra.io "
namespace : " example-namespace "
Champ Description base_urlURL de base de l’API de la console F5 XC. Peut être surchargée avec la variable d’environnement F5XC_API_URL. tenantNom du tenant utilisé dans les chemins de l’API. namespaceEspace de noms par défaut pour les opérations CRUD. timeoutDélai d’expiration des requêtes HTTP en secondes. retriesNombre de tentatives de réessai en cas d’échec. retry_delaySecondes entre les réessais.
Attention
Les valeurs base_url, tenant et namespace dans validation.yaml sont des espaces réservés génériques. Vous devez les configurer pour votre environnement via des variables d’environnement avant d’exécuter le pipeline :
export F5XC_API_URL = " https://example-tenant.console.ves.volterra.io "
export F5XC_TENANT = " example-tenant "
export F5XC_NAMESPACE = " example-namespace "
export F5XC_API_TOKEN = " your-api-token "
Les variables d’environnement prennent le pas sur les valeurs par défaut du YAML au moment de l’exécution.
url : " https://docs.cloud.f5.com/docs-v2/downloads/f5-distributed-cloud-open-api.zip "
output_dir : " specs/original "
etag_cache : " .etag_cache "
Champ Description urlURL du bundle officiel de spécifications OpenAPI F5 XC (ZIP). output_dirEmplacement de stockage des spécifications extraites. etag_cacheFichier qui stocke l’ETag HTTP pour les téléchargements conditionnels.
Dix catégories correspondant aux types de contraintes du schéma OpenAPI. Chacune peut être activée/désactivée indépendamment.
keywords : [ " minLength " , " maxLength " ]
description : " Validate string length boundaries "
Catégorie Mots-clés string_lengthminLength, maxLengthpatternpatternnumeric_boundsminimum, maximum, exclusiveMinimum, exclusiveMaximumrequired_fieldsrequiredenum_valuesenumarray_boundsminItems, maxItems, uniqueItemsobject_structureadditionalProperties, properties, propertyNamescompositiononeOf, anyOf, allOfdependenciesdependentRequired, dependentSchemasdata_typestype, format
auth_header : " Authorization "
Champ Description enabledActive ou désactive les tests Schemathesis. max_examplesNombre maximum de cas de test générés par opération. hypothesis_phasesPhases Hypothesis à exécuter (generate, target). stateful_testingActive les tests à état basés sur les liens entre les opérations. base_url_overrideSurcharge l’URL de base de l’API pour les tests. null utilise api.base_url. auth_headerNom de l’en-tête HTTP pour l’authentification. auth_prefixFormat du préfixe du jeton (les requêtes sont envoyées sous la forme APIToken <token>).
missing_constraint : " add "
extra_constraint : " remove "
Champ Description priorityOrdre de préférence lorsque plusieurs sources de données sont en désaccord. fix_strategiesAssocie chaque type de divergence à son action corrective. Voir Corrections appliquées .
ruleset : " spectral-pipeline.yaml "
oas3-unused-component : true
operation-operationId-unique : true
oas3-valid-schema-example : true
no-script-tags-in-markdown : true
name : " F5 Distributed Cloud "
url : " https://docs.cloud.f5.com "
- url : " https://{tenant}.console.ves.volterra.io "
description : " F5 Distributed Cloud API "
default : " example-tenant "
description : " Your F5 XC tenant name "
description : " F5 XC API Token (format: APIToken <token>) "
Champ Description enabledActive ou désactive entièrement le linting Spectral. rulesetFichier de configuration Spectral à utiliser (le pipeline utilise spectral-pipeline.yaml). auto_fixCorrespondance entre le nom de la règle et un booléen. true signifie que le réconciliateur corrigera les violations. gate.max_errorsNombre maximum d’erreurs autorisées dans la porte de validation post-réconciliation. null désactive la vérification. gate.max_warningsNombre maximum d’avertissements. null désactive la vérification. contactInformations de contact injectées dans info.contact par le correcteur info-contact. serversTableau de serveurs injecté par le correcteur oas3-api-servers. security_schemeDéfinition du schéma de sécurité injectée dans chaque spécification.
max_examples_per_issue : 5
include_validation_report : true
Champ Description output_dirRépertoire pour les artefacts de publication. include_changelogInclut CHANGELOG.md dans le package de publication. include_validation_reportInclut le rapport de validation dans le package de publication. version_fromSource de la version. git dérive la version à partir de la date des métadonnées de la spécification + numéro de correctif.
Définit les points de terminaison de référence utilisés pour la validation en direct de l’API. Chaque entrée associe un nom de ressource logique à son fichier de spécification, son groupe d’API et ses chemins CRUD.
domain_file : docs-cloud-f5-com.0124.public.ves.io.schema.healthcheck.ves-swagger.json
create : POST /api/config/namespaces/{namespace}/healthchecks
read : GET /api/config/namespaces/{namespace}/healthchecks/{name}
list : GET /api/config/namespaces/{namespace}/healthchecks
update : PUT /api/config/namespaces/{namespace}/healthchecks/{name}
delete : DELETE /api/config/namespaces/{namespace}/healthchecks/{name}
description : " Health check configurations for origin monitoring "
Champ Description resourceNom de la ressource API (utilisé dans les chemins d’URL). domain_fileNom du fichier de spécification OpenAPI dans specs/original/. api_groupPréfixe du groupe d’API (config, web, etc.). crud_operationsMéthode HTTP et chemin pour chaque opération CRUD. test_priorityhigh, medium ou low — contrôle l’ordre d’exécution des tests.descriptionDescription lisible de la ressource.
10 points de terminaison répartis sur trois domaines :
Point de terminaison Domaine Priorité healthcheckVirtual high origin_poolVirtual high app_firewallVirtual high service_policyVirtual medium api_definitionAPI Security high api_discoveryAPI Security medium api_groupsAPI Security medium code_base_integrationAPI Security low data_typeData Privacy medium sensitive_data_policyData Privacy medium
Pour ajouter un nouveau point de terminaison à valider :
Trouvez le nom du fichier de spécification dans specs/original/ (format : docs-cloud-f5-com.NNNN.*.ves-swagger.json)
Ajoutez une entrée sous endpoints: en suivant la structure ci-dessus
Ajoutez la correspondance du fichier de domaine sous domain_files: avec un numéro de priorité
Ajoutez le nom du point de terminaison à test_order: à la position souhaitée