Das gesamte Pipeline-Verhalten wird durch zwei YAML-Dateien in config/ gesteuert.
base_url : " https://example-tenant.console.ves.volterra.io "
namespace : " example-namespace "
Feld Beschreibung base_urlBasis-URL der F5 XC Console-API. Kann mit der Umgebungsvariable F5XC_API_URL überschrieben werden. tenantMandantenname, der in API-Pfaden verwendet wird. namespaceStandard-Namespace für CRUD-Operationen. timeoutHTTP-Anfrage-Timeout in Sekunden. retriesAnzahl der Wiederholungsversuche bei Fehlern. retry_delaySekunden zwischen Wiederholungsversuchen.
Achtung
Die Werte für base_url, tenant und namespace in validation.yaml sind generische Platzhalter. Sie müssen diese vor der Ausführung der Pipeline über Umgebungsvariablen für Ihre Umgebung konfigurieren:
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 "
Umgebungsvariablen haben zur Laufzeit Vorrang vor den YAML-Standardwerten.
url : " https://docs.cloud.f5.com/docs-v2/downloads/f5-distributed-cloud-open-api.zip "
output_dir : " specs/original "
etag_cache : " .etag_cache "
Feld Beschreibung urlURL des offiziellen F5 XC OpenAPI-Spezifikationsbündels (ZIP). output_dirSpeicherort für extrahierte Spezifikationen. etag_cacheDatei, die den HTTP-ETag für bedingte Downloads speichert.
Zehn Kategorien, die den OpenAPI-Schema-Einschränkungstypen entsprechen. Jede kann unabhängig aktiviert/deaktiviert werden.
keywords : [ " minLength " , " maxLength " ]
description : " Validate string length boundaries "
Kategorie Schlüsselwörter string_lengthminLength, maxLengthpatternpatternnumeric_boundsminimum, maximum, exclusiveMinimum, exclusiveMaximumrequired_fieldsrequiredenum_valuesenumarray_boundsminItems, maxItems, uniqueItemsobject_structureadditionalProperties, properties, propertyNamescompositiononeOf, anyOf, allOfdependenciesdependentRequired, dependentSchemasdata_typestype, format
auth_header : " Authorization "
Feld Beschreibung enabledSchemathesis-Tests aktivieren/deaktivieren. max_examplesMaximale Anzahl generierter Testfälle pro Operation. hypothesis_phasesAuszuführende Hypothesis-Phasen (generate, target). stateful_testingZustandsbasiertes, linkgestütztes Testen über Operationen hinweg aktivieren. base_url_overrideÜberschreibt die API-Basis-URL für Tests. null verwendet api.base_url. auth_headerName des HTTP-Headers für die Authentifizierung. auth_prefixToken-Präfix-Format (Anfragen werden als APIToken <token> gesendet).
missing_constraint : " add "
extra_constraint : " remove "
Feld Beschreibung priorityPrioritätsreihenfolge, wenn mehrere Datenquellen nicht übereinstimmen. fix_strategiesOrdnet jeden Diskrepanztyp seiner Korrekturmaßnahme zu. Siehe Angewandte Korrekturen .
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>) "
Feld Beschreibung enabledSpectral-Linting vollständig aktivieren/deaktivieren. rulesetZu verwendende Spectral-Konfigurationsdatei (die Pipeline verwendet spectral-pipeline.yaml). auto_fixZuordnung von Regelname zu Boolean. true bedeutet, dass der Abgleicher Verstöße behebt. gate.max_errorsMaximal erlaubte Fehler im Post-Abgleich-Gate. null deaktiviert die Prüfung. gate.max_warningsMaximal erlaubte Warnungen. null deaktiviert die Prüfung. contactKontaktinformationen, die vom info-contact-Fixer in info.contact eingefügt werden. serversServer-Array, das vom oas3-api-servers-Fixer eingefügt wird. security_schemeSicherheitsschemadefinition, die in jede Spezifikation eingefügt wird.
max_examples_per_issue : 5
include_validation_report : true
Feld Beschreibung output_dirVerzeichnis für Release-Artefakte. include_changelogCHANGELOG.md in das Release-Paket einschließen.include_validation_reportDen Validierungsbericht in das Release-Paket einschließen. version_fromVersionsquelle. git leitet die Version aus dem Spezifikations-Metadatendatum + Patchnummer ab.
Definiert die Basis-Endpunkte, die für die Live-API-Validierung verwendet werden. Jeder Eintrag ordnet einen logischen Ressourcennamen seiner Spezifikationsdatei, API-Gruppe und den CRUD-Pfaden zu.
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 "
Feld Beschreibung resourceAPI-Ressourcenname (wird in URL-Pfaden verwendet). domain_fileDateiname der OpenAPI-Spezifikation in specs/original/. api_groupAPI-Gruppen-Präfix (config, web, usw.). crud_operationsHTTP-Methode und Pfad für jede CRUD-Operation. test_priorityhigh, medium oder low – steuert die Reihenfolge der Testausführung.descriptionMenschenlesbare Beschreibung der Ressource.
10 Endpunkte über drei Domänen hinweg:
Endpunkt Domäne Priorität 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
Um einen neuen Endpunkt für die Validierung hinzuzufügen:
Suchen Sie den Spezifikationsdateinamen in specs/original/ (Format: docs-cloud-f5-com.NNNN.*.ves-swagger.json)
Fügen Sie einen Eintrag unter endpoints: gemäß der obigen Struktur hinzu
Fügen Sie die Domänendatei-Zuordnung unter domain_files: mit einer Prioritätsnummer hinzu
Fügen Sie den Endpunktnamen an der gewünschten Position zu test_order: hinzu
Tipp
Das Framework validiert während des Abgleichs alle 268 Spezifikationen, unabhängig davon, was in endpoints.yaml aufgeführt ist. Die Endpunkt-Konfiguration steuert, welche Ressourcen Live-API-Tests mit Schemathesis erhalten.