Salta ai contenuti

Riferimento alla Configurazione

Tutto il comportamento della pipeline è controllato da due file YAML in config/.

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

validation_categories:
string_length:
enabled: true
keywords: ["minLength", "maxLength"]
description: "Validate string length boundaries"
CategoriaParole chiave
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"
CampoDescrizione
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>).
reconciliation:
priority:
- existing
- discovery
- inferred
fix_strategies:
tighter_spec: "relax"
looser_spec: "tighten"
missing_constraint: "add"
extra_constraint: "remove"
CampoDescrizione
priorityOrdine di preferenza quando più fonti dati sono in disaccordo.
fix_strategiesMappa ciascun tipo di discrepanza alla relativa azione correttiva. Vedere Correzioni Applicate.
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>)"
CampoDescrizione
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.
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"
CampoDescrizione
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.

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"
CampoDescrizione
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:

EndpointDominioPriorità
healthcheckVirtualalta
origin_poolVirtualalta
app_firewallVirtualalta
service_policyVirtualmedia
api_definitionAPI Securityalta
api_discoveryAPI Securitymedia
api_groupsAPI Securitymedia
code_base_integrationAPI Securitybassa
data_typeData Privacymedia
sensitive_data_policyData Privacymedia

Per aggiungere un nuovo endpoint per la validazione:

  1. Trovare il nome del file della specifica in specs/original/ (formato: docs-cloud-f5-com.NNNN.*.ves-swagger.json)
  2. Aggiungere una voce sotto endpoints: seguendo la struttura sopra indicata
  3. Aggiungere la mappatura del file di dominio sotto domain_files: con un numero di priorità
  4. Aggiungere il nome dell’endpoint a test_order: nella posizione desiderata