Pular para o conteúdo

Referência de Configuração

Todo o comportamento do pipeline é controlado por dois arquivos YAML em config/.

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

validation_categories:
string_length:
enabled: true
keywords: ["minLength", "maxLength"]
description: "Validate string length boundaries"
CategoriaPalavras-chave
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"
CampoDescriçã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>).
reconciliation:
priority:
- existing
- discovery
- inferred
fix_strategies:
tighter_spec: "relax"
looser_spec: "tighten"
missing_constraint: "add"
extra_constraint: "remove"
CampoDescriçã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.
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>)"
CampoDescriçã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.
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"
CampoDescriçã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.

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"
CampoDescriçã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:

EndpointDomínioPrioridade
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

Para adicionar um novo endpoint para validação:

  1. Encontre o nome do arquivo da especificação em specs/original/ (formato: docs-cloud-f5-com.NNNN.*.ves-swagger.json)
  2. Adicione uma entrada em endpoints: seguindo a estrutura acima
  3. Adicione o mapeamento do arquivo de domínio em domain_files: com um número de prioridade
  4. Adicione o nome do endpoint em test_order: na posição desejada