Zum Inhalt springen

Konfigurationsreferenz

Das gesamte Pipeline-Verhalten wird durch zwei YAML-Dateien in config/ gesteuert.

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

validation_categories:
string_length:
enabled: true
keywords: ["minLength", "maxLength"]
description: "Validate string length boundaries"
KategorieSchlüsselwörter
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"
FeldBeschreibung
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).
reconciliation:
priority:
- existing
- discovery
- inferred
fix_strategies:
tighter_spec: "relax"
looser_spec: "tighten"
missing_constraint: "add"
extra_constraint: "remove"
FeldBeschreibung
priorityPrioritätsreihenfolge, wenn mehrere Datenquellen nicht übereinstimmen.
fix_strategiesOrdnet jeden Diskrepanztyp seiner Korrekturmaßnahme zu. Siehe Angewandte Korrekturen.
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>)"
FeldBeschreibung
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.
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"
FeldBeschreibung
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.

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"
FeldBeschreibung
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:

EndpunktDomänePriorität
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

Um einen neuen Endpunkt für die Validierung hinzuzufügen:

  1. Suchen Sie den Spezifikationsdateinamen in specs/original/ (Format: docs-cloud-f5-com.NNNN.*.ves-swagger.json)
  2. Fügen Sie einen Eintrag unter endpoints: gemäß der obigen Struktur hinzu
  3. Fügen Sie die Domänendatei-Zuordnung unter domain_files: mit einer Prioritätsnummer hinzu
  4. Fügen Sie den Endpunktnamen an der gewünschten Position zu test_order: hinzu