Todo el comportamiento del pipeline se controla mediante dos archivos YAML en config/.
base_url : " https://example-tenant.console.ves.volterra.io "
namespace : " example-namespace "
Campo Descripció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.
Precaución
Los valores de base_url, tenant y namespace en validation.yaml son marcadores de posición genéricos. Debe configurarlos para su entorno mediante variables de entorno antes de ejecutar el 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 "
Las variables de entorno tienen prioridad sobre los valores predeterminados del YAML en tiempo de ejecución.
url : " https://docs.cloud.f5.com/docs-v2/downloads/f5-distributed-cloud-open-api.zip "
output_dir : " specs/original "
etag_cache : " .etag_cache "
Campo Descripció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.
keywords : [ " minLength " , " maxLength " ]
description : " Validate string length boundaries "
Categoría Palabras clave string_lengthminLength, maxLengthpatternpatternnumeric_boundsminimum, maximum, exclusiveMinimum, exclusiveMaximumrequired_fieldsrequiredenum_valuesenumarray_boundsminItems, maxItems, uniqueItemsobject_structureadditionalProperties, properties, propertyNamescompositiononeOf, anyOf, allOfdependenciesdependentRequired, dependentSchemasdata_typestype, format
auth_header : " Authorization "
Campo Descripció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>).
missing_constraint : " add "
extra_constraint : " remove "
Campo Descripció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 .
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 Descripció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.
max_examples_per_issue : 5
include_validation_report : true
Campo Descripció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.
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 Descripció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:
Endpoint Dominio Prioridad healthcheckVirtual alta origin_poolVirtual alta app_firewallVirtual alta service_policyVirtual media api_definitionSeguridad de API alta api_discoverySeguridad de API media api_groupsSeguridad de API media code_base_integrationSeguridad de API baja data_typePrivacidad de Datos media sensitive_data_policyPrivacidad de Datos media
Para agregar un nuevo endpoint para validación:
Encuentre el nombre del archivo de especificación en specs/original/ (formato: docs-cloud-f5-com.NNNN.*.ves-swagger.json)
Agregue una entrada bajo endpoints: siguiendo la estructura anterior
Agregue el mapeo del archivo de dominio bajo domain_files: con un número de prioridad
Agregue el nombre del endpoint a test_order: en la posición deseada