Aller au contenu

Référence de configuration

Tout le comportement du pipeline est contrôlé par deux fichiers YAML dans config/.

api:
base_url: "https://example-tenant.console.ves.volterra.io"
tenant: "example-tenant"
namespace: "example-namespace"
timeout: 30
retries: 3
retry_delay: 2
ChampDescription
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.
download:
url: "https://docs.cloud.f5.com/docs-v2/downloads/f5-distributed-cloud-open-api.zip"
output_dir: "specs/original"
etag_cache: ".etag_cache"
ChampDescription
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.

validation_categories:
string_length:
enabled: true
keywords: ["minLength", "maxLength"]
description: "Validate string length boundaries"
CatégorieMots-clés
string_lengthminLength, maxLength
patternpattern
numeric_boundsminimum, maximum, exclusiveMinimum, exclusiveMaximum
required_fieldsrequired
enum_valuesenum
array_boundsminItems, maxItems, uniqueItems
object_structureadditionalProperties, properties, propertyNames
compositiononeOf, anyOf, allOf
dependenciesdependentRequired, dependentSchemas
data_typestype, format
schemathesis:
enabled: true
max_examples: 100
hypothesis_phases:
- generate
- target
stateful_testing: true
base_url_override: null
auth_header: "Authorization"
auth_prefix: "APIToken"
ChampDescription
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>).
reconciliation:
priority:
- existing
- discovery
- inferred
fix_strategies:
tighter_spec: "relax"
looser_spec: "tighten"
missing_constraint: "add"
extra_constraint: "remove"
ChampDescription
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.
spectral:
enabled: true
ruleset: "spectral-pipeline.yaml"
auto_fix:
oas3-api-servers: true
info-contact: true
operation-tags: true
oas3-unused-component: true
operation-operationId-unique: true
oas3-valid-schema-example: true
no-script-tags-in-markdown: true
gate:
max_errors: null
max_warnings: null
contact:
name: "F5 Distributed Cloud"
url: "https://docs.cloud.f5.com"
email: "support@f5.com"
servers:
- url: "https://{tenant}.console.ves.volterra.io"
description: "F5 Distributed Cloud API"
variables:
tenant:
default: "example-tenant"
description: "Your F5 XC tenant name"
security_scheme:
type: "apiKey"
in: "header"
name: "Authorization"
description: "F5 XC API Token (format: APIToken <token>)"
ChampDescription
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.
reports:
output_dir: "reports"
formats:
- json
- html
- markdown
include_examples: true
max_examples_per_issue: 5
release:
output_dir: "release"
include_changelog: true
include_validation_report: true
version_from: "git"
ChampDescription
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.

endpoints:
healthcheck:
resource: healthchecks
domain_file: docs-cloud-f5-com.0124.public.ves.io.schema.healthcheck.ves-swagger.json
api_group: config
crud_operations:
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}
test_priority: high
description: "Health check configurations for origin monitoring"
ChampDescription
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 terminaisonDomainePriorité
healthcheckVirtualhigh
origin_poolVirtualhigh
app_firewallVirtualhigh
service_policyVirtualmedium
api_definitionAPI Securityhigh
api_discoveryAPI Securitymedium
api_groupsAPI Securitymedium
code_base_integrationAPI Securitylow
data_typeData Privacymedium
sensitive_data_policyData Privacymedium

Pour ajouter un nouveau point de terminaison à valider :

  1. Trouvez le nom du fichier de spécification dans specs/original/ (format : docs-cloud-f5-com.NNNN.*.ves-swagger.json)
  2. Ajoutez une entrée sous endpoints: en suivant la structure ci-dessus
  3. Ajoutez la correspondance du fichier de domaine sous domain_files: avec un numéro de priorité
  4. Ajoutez le nom du point de terminaison à test_order: à la position souhaitée