Ir al contenido

Referencia de Configuración

Todo el comportamiento del pipeline se controla mediante dos archivos YAML en config/.

api:
base_url: "https://example-tenant.console.ves.volterra.io"
tenant: "example-tenant"
namespace: "example-namespace"
timeout: 30
retries: 3
retry_delay: 2
CampoDescripción
base_urlURL base de la API de la consola F5 XC. Se puede sobrescribir con la variable de entorno F5XC_API_URL.
tenantNombre del tenant utilizado en las rutas de la API.
namespaceNamespace predeterminado para operaciones CRUD.
timeoutTiempo de espera de solicitudes HTTP en segundos.
retriesNúmero de intentos de reintento en caso de fallo.
retry_delaySegundos entre reintentos.
download:
url: "https://docs.cloud.f5.com/docs-v2/downloads/f5-distributed-cloud-open-api.zip"
output_dir: "specs/original"
etag_cache: ".etag_cache"
CampoDescripción
urlURL del paquete oficial de especificaciones OpenAPI de F5 XC (ZIP).
output_dirDirectorio donde se almacenan las especificaciones extraídas.
etag_cacheArchivo que almacena el ETag HTTP para descargas condicionales.

Diez categorías correspondientes a los tipos de restricciones del esquema OpenAPI. Cada una puede habilitarse/deshabilitarse de forma independiente.

validation_categories:
string_length:
enabled: true
keywords: ["minLength", "maxLength"]
description: "Validate string length boundaries"
CategoríaPalabras clave
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"
CampoDescripción
enabledActiva o desactiva las pruebas con Schemathesis.
max_examplesNúmero máximo de casos de prueba generados por operación.
hypothesis_phasesFases de Hypothesis a ejecutar (generate, target).
stateful_testingHabilita pruebas con estado basadas en enlaces entre operaciones.
base_url_overrideSobrescribe la URL base de la API para las pruebas. null utiliza api.base_url.
auth_headerNombre del encabezado HTTP para autenticación.
auth_prefixFormato del prefijo del token (las solicitudes se envían como APIToken <token>).
reconciliation:
priority:
- existing
- discovery
- inferred
fix_strategies:
tighter_spec: "relax"
looser_spec: "tighten"
missing_constraint: "add"
extra_constraint: "remove"
CampoDescripción
priorityOrden de preferencia cuando múltiples fuentes de datos discrepan.
fix_strategiesAsigna a cada tipo de discrepancia su acción de corrección. Consulte Correcciones 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>)"
CampoDescripción
enabledActiva o desactiva completamente el linting con Spectral.
rulesetArchivo de configuración de Spectral a utilizar (el pipeline usa spectral-pipeline.yaml).
auto_fixMapa de nombre de regla a booleano. true significa que el reconciliador corregirá las violaciones.
gate.max_errorsNúmero máximo de errores permitidos en la compuerta post-reconciliación. null deshabilita la verificación.
gate.max_warningsNúmero máximo de advertencias permitidas. null deshabilita la verificación.
contactInformación de contacto inyectada en info.contact por el corrector de info-contact.
serversArray de servidores inyectado por el corrector de oas3-api-servers.
security_schemeDefinición del esquema de seguridad inyectado en cada especificación.
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"
CampoDescripción
output_dirDirectorio para los artefactos de publicación.
include_changelogIncluir CHANGELOG.md en el paquete de publicación.
include_validation_reportIncluir el informe de validación en el paquete de publicación.
version_fromFuente de la versión. git deriva la versión de la fecha de metadatos de la especificación + número de parche.

Define los endpoints base utilizados para la validación en vivo de la API. Cada entrada asocia un nombre lógico de recurso con su archivo de especificación, grupo de API y rutas 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"
CampoDescripción
resourceNombre del recurso de la API (utilizado en las rutas URL).
domain_fileNombre del archivo de la especificación OpenAPI en specs/original/.
api_groupPrefijo del grupo de API (config, web, etc.).
crud_operationsMétodo HTTP y ruta para cada operación CRUD.
test_priorityhigh, medium o low — controla el orden de ejecución de las pruebas.
descriptionDescripción legible del recurso.

10 endpoints en tres dominios:

EndpointDominioPrioridad
healthcheckVirtualalta
origin_poolVirtualalta
app_firewallVirtualalta
service_policyVirtualmedia
api_definitionSeguridad de APIalta
api_discoverySeguridad de APImedia
api_groupsSeguridad de APImedia
code_base_integrationSeguridad de APIbaja
data_typePrivacidad de Datosmedia
sensitive_data_policyPrivacidad de Datosmedia

Para agregar un nuevo endpoint para validación:

  1. Encuentre el nombre del archivo de especificación en specs/original/ (formato: docs-cloud-f5-com.NNNN.*.ves-swagger.json)
  2. Agregue una entrada bajo endpoints: siguiendo la estructura anterior
  3. Agregue el mapeo del archivo de dominio bajo domain_files: con un número de prioridad
  4. Agregue el nombre del endpoint a test_order: en la posición deseada