Todo o comportamento do pipeline é controlado por dois arquivos YAML em config/.
base_url : " https://example-tenant.console.ves.volterra.io "
namespace : " example-namespace "
Campo Descrição base_urlURL base da API do console F5 XC. Sobrescreva com a variável de ambiente F5XC_API_URL. tenantNome do tenant usado nos caminhos da API. namespaceNamespace padrão para operações CRUD. timeoutTempo limite de requisição HTTP em segundos. retriesNúmero de tentativas de repetição em caso de falha. retry_delaySegundos entre tentativas de repetição.
Cuidado
Os valores de base_url, tenant e namespace em validation.yaml são placeholders genéricos. Você deve configurá-los para o seu ambiente por meio de variáveis de ambiente antes de executar o 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 "
As variáveis de ambiente têm precedência sobre os valores padrão do YAML em tempo de execução.
url : " https://docs.cloud.f5.com/docs-v2/downloads/f5-distributed-cloud-open-api.zip "
output_dir : " specs/original "
etag_cache : " .etag_cache "
Campo Descrição urlURL do pacote oficial de especificações OpenAPI do F5 XC (ZIP). output_dirOnde as especificações extraídas são armazenadas. etag_cacheArquivo que armazena o ETag HTTP para downloads condicionais.
Dez categorias correspondentes aos tipos de restrição do schema OpenAPI. Cada uma pode ser habilitada/desabilitada independentemente.
keywords : [ " minLength " , " maxLength " ]
description : " Validate string length boundaries "
Categoria Palavras-chave string_lengthminLength, maxLengthpatternpatternnumeric_boundsminimum, maximum, exclusiveMinimum, exclusiveMaximumrequired_fieldsrequiredenum_valuesenumarray_boundsminItems, maxItems, uniqueItemsobject_structureadditionalProperties, properties, propertyNamescompositiononeOf, anyOf, allOfdependenciesdependentRequired, dependentSchemasdata_typestype, format
auth_header : " Authorization "
Campo Descrição enabledAtiva/desativa os testes do Schemathesis. max_examplesNúmero máximo de casos de teste gerados por operação. hypothesis_phasesFases do Hypothesis a executar (generate, target). stateful_testingHabilita testes stateful baseados em links entre operações. base_url_overrideSobrescreve a URL base da API para testes. null usa api.base_url. auth_headerNome do cabeçalho HTTP para autenticação. auth_prefixFormato do prefixo do token (as requisições são enviadas como APIToken <token>).
missing_constraint : " add "
extra_constraint : " remove "
Campo Descrição priorityOrdem de preferência quando múltiplas fontes de dados divergem. fix_strategiesMapeia cada tipo de discrepância para sua ação de correção. Veja Correções Aplicadas .
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 Descrição enabledAtiva/desativa completamente o linting do Spectral. rulesetQual arquivo de configuração do Spectral usar (o pipeline usa spectral-pipeline.yaml). auto_fixMapa de nome da regra para booleano. true significa que o reconciliador corrigirá as violações. gate.max_errorsNúmero máximo de erros permitidos no gate pós-reconciliação. null desabilita a verificação. gate.max_warningsNúmero máximo de avisos permitidos. null desabilita a verificação. contactInformações de contato injetadas em info.contact pelo corretor info-contact. serversArray de servidores injetado pelo corretor oas3-api-servers. security_schemeDefinição do esquema de segurança injetado em cada especificação.
max_examples_per_issue : 5
include_validation_report : true
Campo Descrição output_dirDiretório para artefatos de release. include_changelogIncluir CHANGELOG.md no pacote de release. include_validation_reportIncluir o relatório de validação no pacote de release. version_fromFonte da versão. git deriva a versão a partir da data dos metadados da especificação + número do patch.
Define os endpoints de referência usados para validação ao vivo da API. Cada entrada mapeia um nome lógico de recurso para seu arquivo de especificação, grupo da API e caminhos 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 Descrição resourceNome do recurso da API (usado nos caminhos de URL). domain_fileNome do arquivo da especificação OpenAPI em specs/original/. api_groupPrefixo do grupo da API (config, web, etc.). crud_operationsMétodo HTTP e caminho para cada operação CRUD. test_priorityhigh, medium ou low — controla a ordem de execução dos testes.descriptionDescrição legível do recurso.
10 endpoints em três domínios:
Endpoint Domínio Prioridade 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
Para adicionar um novo endpoint para validação:
Encontre o nome do arquivo da especificação em specs/original/ (formato: docs-cloud-f5-com.NNNN.*.ves-swagger.json)
Adicione uma entrada em endpoints: seguindo a estrutura acima
Adicione o mapeamento do arquivo de domínio em domain_files: com um número de prioridade
Adicione o nome do endpoint em test_order: na posição desejada