Tutto il comportamento della pipeline è controllato da due file YAML in config/.
base_url : " https://example-tenant.console.ves.volterra.io "
namespace : " example-namespace "
Campo Descrizione base_urlURL base dell’API della console F5 XC. Sovrascrivibile con la variabile d’ambiente F5XC_API_URL. tenantNome del tenant utilizzato nei percorsi API. namespaceNamespace predefinito per le operazioni CRUD. timeoutTimeout della richiesta HTTP in secondi. retriesNumero di tentativi di ripetizione in caso di errore. retry_delaySecondi tra i tentativi di ripetizione.
Attenzione
I valori base_url, tenant e namespace in validation.yaml sono segnaposto generici. Dovete configurarli per il vostro ambiente tramite variabili d’ambiente prima di eseguire la 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 "
Le variabili d’ambiente hanno la precedenza sui valori predefiniti YAML al momento dell’esecuzione.
url : " https://docs.cloud.f5.com/docs-v2/downloads/f5-distributed-cloud-open-api.zip "
output_dir : " specs/original "
etag_cache : " .etag_cache "
Campo Descrizione urlURL del bundle ufficiale delle specifiche OpenAPI di F5 XC (ZIP). output_dirDove vengono salvate le specifiche estratte. etag_cacheFile che memorizza l’ETag HTTP per i download condizionali.
Dieci categorie corrispondenti ai tipi di vincoli dello schema OpenAPI. Ciascuna può essere abilitata/disabilitata indipendentemente.
keywords : [ " minLength " , " maxLength " ]
description : " Validate string length boundaries "
Categoria Parole chiave string_lengthminLength, maxLengthpatternpatternnumeric_boundsminimum, maximum, exclusiveMinimum, exclusiveMaximumrequired_fieldsrequiredenum_valuesenumarray_boundsminItems, maxItems, uniqueItemsobject_structureadditionalProperties, properties, propertyNamescompositiononeOf, anyOf, allOfdependenciesdependentRequired, dependentSchemasdata_typestype, format
auth_header : " Authorization "
Campo Descrizione enabledAttiva/disattiva il testing con Schemathesis. max_examplesNumero massimo di casi di test generati per operazione. hypothesis_phasesFasi di Hypothesis da eseguire (generate, target). stateful_testingAbilita il testing stateful basato su link tra le operazioni. base_url_overrideSovrascrive l’URL base dell’API per i test. null utilizza api.base_url. auth_headerNome dell’header HTTP per l’autenticazione. auth_prefixFormato del prefisso del token (le richieste vengono inviate come APIToken <token>).
missing_constraint : " add "
extra_constraint : " remove "
Campo Descrizione priorityOrdine di preferenza quando più fonti dati sono in disaccordo. fix_strategiesMappa ciascun tipo di discrepanza alla relativa azione correttiva. Vedere Correzioni Applicate .
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>) "
Campo Descrizione enabledAttiva/disattiva completamente il linting di Spectral. rulesetQuale file di configurazione Spectral utilizzare (la pipeline usa spectral-pipeline.yaml). auto_fixMappa del nome della regola a un booleano. true significa che il riconciliatore correggerà le violazioni. gate.max_errorsNumero massimo di errori consentiti nel gate post-riconciliazione. null disabilita il controllo. gate.max_warningsNumero massimo di avvisi consentiti. null disabilita il controllo. contactInformazioni di contatto iniettate in info.contact dal fixer info-contact. serversArray dei server iniettato dal fixer oas3-api-servers. security_schemeDefinizione dello schema di sicurezza iniettata in ogni specifica.
max_examples_per_issue : 5
include_validation_report : true
Campo Descrizione output_dirDirectory per gli artefatti di rilascio. include_changelogInclude CHANGELOG.md nel pacchetto di rilascio. include_validation_reportInclude il report di validazione nel pacchetto di rilascio. version_fromOrigine della versione. git deriva la versione dalla data dei metadati della specifica + numero di patch.
Definisce gli endpoint di riferimento utilizzati per la validazione live dell’API. Ogni voce mappa un nome logico di risorsa al suo file di specifica, gruppo API e percorsi 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 "
Campo Descrizione resourceNome della risorsa API (utilizzato nei percorsi URL). domain_fileNome del file della specifica OpenAPI in specs/original/. api_groupPrefisso del gruppo API (config, web, ecc.). crud_operationsMetodo HTTP e percorso per ciascuna operazione CRUD. test_priorityhigh, medium o low — controlla l’ordine di esecuzione dei test.descriptionDescrizione leggibile della risorsa.
10 endpoint su tre domini:
Endpoint Dominio Priorità healthcheckVirtual alta origin_poolVirtual alta app_firewallVirtual alta service_policyVirtual media api_definitionAPI Security alta api_discoveryAPI Security media api_groupsAPI Security media code_base_integrationAPI Security bassa data_typeData Privacy media sensitive_data_policyData Privacy media
Per aggiungere un nuovo endpoint per la validazione:
Trovare il nome del file della specifica in specs/original/ (formato: docs-cloud-f5-com.NNNN.*.ves-swagger.json)
Aggiungere una voce sotto endpoints: seguendo la struttura sopra indicata
Aggiungere la mappatura del file di dominio sotto domain_files: con un numero di priorità
Aggiungere il nome dell’endpoint a test_order: nella posizione desiderata