- 홈
- API Enriched
- 확장 기능
- 강화 확장 카탈로그
강화 확장 카탈로그
docs/specifications/api/*.json에 나타나는 모든 x-* 확장에 대한 단일 진실 공급원입니다. scripts/utils/extension_constants.py와의 동등성은 tests/test_extension_catalog.py에 의해 적용됩니다.
여기에는 세 가지 클래스의 확장이 문서화되어 있습니다:
- 여기에서 주입됨 — 인리처가 추가하는 확장(
x-f5xc-*및x-ves-cli-*/x-ves-field-*/x-ves-operation-*/ 디스커버리 변형). 이것들은 다운스트림 도구가 소비해야 하는 항목입니다. - 업스트림 패스스루 — F5가 소스 사양에서 생성하고 우리가 변경하지 않고 보존하는 확장(
x-ves-proto-*,x-displayname등). 투명성을 위해 문서화되지만 이 저장소에서 제어되지는 않습니다. - 미래 주입 — 아직 생성되지 않음; 인리처가 이를 생성하기 시작하는 즉시 여기에 문서화됩니다(초기 구성에는 해당하지 않음).
항목 스키마
섹션 제목: “항목 스키마”아래의 모든 항목은 정확히 이 형태를 가집니다. tests/test_extension_catalog.py의 동등성 테스트는 ### x-name 헤더가 존재하고 Pass-through from upstream: 플래그가 yes 또는 no 값으로 존재하는 한 섹션 본문이 간략하더라도 허용합니다.
### x-<name>- **Applied at:** <schema | parameter | operation | path-item | info | response>- **Purpose:** <one sentence>- **Consumers:** <CLI | VSCode | Terraform | Web UI | multiple | N/A>- **Value type:** <string | number | boolean | object | array>- **Value schema:** <JSON Schema snippet, or N/A>- **Injected by:** <scripts/utils/<enricher>.py, or "upstream">- **Driven by config:** <config/<file>.yaml, or "hardcoded", or "upstream">- **Example:** <short snippet>- **Pass-through from upstream:** <yes/no>주입됨 — 사양 수준 (info 섹션)
섹션 제목: “주입됨 — 사양 수준 (info 섹션)”x-f5xc-cli-domain
섹션 제목: “x-f5xc-cli-domain”- Applied at: info
- Purpose: 강화된 사양의 CLI 도메인 슬러그(예:
http_loadbalancer)를 식별합니다. - Consumers: CLI
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: hardcoded
- Example:
"x-f5xc-cli-domain": "http_loadbalancer" - Pass-through from upstream: no
x-f5xc-cli-metadata
섹션 제목: “x-f5xc-cli-metadata”- Applied at: info
- Purpose: CLI 전체 메타데이터 블록(도구 이름, 버전 힌트, 도메인 그룹화).
- Consumers: CLI
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/merge_specs.py
- Driven by config: config/cli_metadata.yaml
- Example:
"x-f5xc-cli-metadata": {"tool": "xcsh", "domain": "http_loadbalancer"} - Pass-through from upstream: no
x-f5xc-upstream-timestamp
섹션 제목: “x-f5xc-upstream-timestamp”- Applied at: info
- Purpose: 강화된 파일이 빌드된 업스트림 소스 사양의 타임스탬프.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "format": "date-time"} - Injected by: scripts/merge_specs.py
- Driven by config: hardcoded
- Example:
"x-f5xc-upstream-timestamp": "2026-04-21T12:00:00Z" - Pass-through from upstream: no
x-f5xc-upstream-etag
섹션 제목: “x-f5xc-upstream-etag”- Applied at: info
- Purpose: 업스트림 소스 사양 릴리스 에셋의 ETag.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: hardcoded
- Example:
"x-f5xc-upstream-etag": "\"abc123\"" - Pass-through from upstream: no
x-f5xc-enriched-version
섹션 제목: “x-f5xc-enriched-version”- Applied at: info
- Purpose: 파이프라인에 의해 강화된 사양에 스탬프된 시맨틱 버전.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: hardcoded
- Example:
"x-f5xc-enriched-version": "3.2.1" - Pass-through from upstream: no
x-f5xc-glossary
섹션 제목: “x-f5xc-glossary”- Applied at: info
- Purpose: 각 도메인 사양에 적용되는 브랜딩/용어 용어집 블록.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/branding.py
- Driven by config: config/branding.yaml
- Example:
"x-f5xc-glossary": {"XC": "F5 Distributed Cloud"} - Pass-through from upstream: no
x-f5xc-discovered-at
섹션 제목: “x-f5xc-discovered-at”- Applied at: info
- Purpose: 라이브 API 디스커버리 패스가 실행된 타임스탬프.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "format": "date-time"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery.yaml
- Example:
"x-f5xc-discovered-at": "2026-04-21T09:15:00Z" - Pass-through from upstream: no
x-f5xc-api-url
섹션 제목: “x-f5xc-api-url”- Applied at: info
- Purpose: 디스커버리 중에 프로브된 라이브 API의 기본 URL.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "format": "uri"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery.yaml
- Example:
"x-f5xc-api-url": "https://f5-amer-ent.console.ves.volterra.io" - Pass-through from upstream: no
x-f5xc-api-reference-url
섹션 제목: “x-f5xc-api-reference-url”- Applied at: info
- Purpose: 이 도메인의 호스팅된 API 참조 문서 페이지 URL.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "format": "uri"} - Injected by: scripts/utils/external_docs_enricher.py
- Driven by config: none (derived from domain name)
- Example:
"x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/sites/" - Pass-through from upstream: no
x-f5xc-response-time-ms
섹션 제목: “x-f5xc-response-time-ms”- Applied at: info
- Purpose: 디스커버리 중 프로브된 API의 관측된 응답 시간(ms).
- Consumers: multiple
- Value type: number
- Value schema:
{"type": "number"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery.yaml
- Example:
"x-f5xc-response-time-ms": 42 - Pass-through from upstream: no
x-f5xc-best-practices
섹션 제목: “x-f5xc-best-practices”- Applied at: info
- Purpose: 도메인에 대한 큐레이션된 모범 사례 지침.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object"}} - Injected by: scripts/utils/best_practices_enricher.py
- Driven by config: config/best_practices.yaml
- Example:
"x-f5xc-best-practices": [{"id": "bp-1", "text": "Prefer HTTPS"}] - Pass-through from upstream: no
x-f5xc-guided-workflows
섹션 제목: “x-f5xc-guided-workflows”- Applied at: info
- Purpose: 도메인의 일반적인 작업을 수행하기 위한 명명된 단계별 워크플로우.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object"}} - Injected by: scripts/utils/guided_workflow_enricher.py
- Driven by config: config/guided_workflows.yaml
- Example:
"x-f5xc-guided-workflows": [{"name": "create-lb", "steps": [...]}] - Pass-through from upstream: no
x-f5xc-acronyms
섹션 제목: “x-f5xc-acronyms”- Applied at: info
- Purpose: 도메인별 약어 확장 테이블.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object", "additionalProperties": {"type": "string"}} - Injected by: scripts/utils/acronym_enricher.py
- Driven by config: config/acronyms.yaml
- Example:
"x-f5xc-acronyms": {"LB": "Load Balancer"} - Pass-through from upstream: no
x-f5xc-console-navigation
섹션 제목: “x-f5xc-console-navigation”- Applied at: spec info
- Purpose: 전역 콘솔 탐색 트리 — 작업 공간 및 메뉴 계층 구조.
- Consumers: console-catalog, xcsh, browser-automation
- Value type: object
- Value schema:
{"type": "object", "properties": {"workspaces": "object"}} - Injected by: scripts/utils/console_ui_enricher.py
- Driven by config: config/console_ui.yaml
- Example:
"x-f5xc-console-navigation": {"workspaces": {"web-app-and-api-protection": {"label": "Web App & API Protection", "route_prefix": "/web/workspaces/web-app-and-api-protection"}}} - Pass-through from upstream: no
주입됨 — 스키마 수준 (구성 요소 스키마)
섹션 제목: “주입됨 — 스키마 수준 (구성 요소 스키마)”x-f5xc-minimum-configuration
섹션 제목: “x-f5xc-minimum-configuration”- Applied at: schema
- Purpose: 이 리소스를 성공적으로 POST/PUT하는 데 필요한 최소 실행 가능 필드 집합.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/minimum_configuration_enricher.py
- Driven by config: config/minimum_configs.yaml
- Example:
"x-f5xc-minimum-configuration": {"required_fields": ["name"]} - Pass-through from upstream: no
x-f5xc-namespace-profile
섹션 제목: “x-f5xc-namespace-profile”- Applied at: info
- Purpose: 리소스에 대한 네임스페이스 제약, 권장 사항 및 분류 메타데이터를 제공합니다.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object", "properties": {"constraint": {"type": "object"}, "recommendation": {"type": "object"}, "classification": {"type": "object"}}} - Injected by: scripts/utils/namespace_profile_enricher.py
- Driven by config: config/namespace_profile.yaml
- Example:
"x-f5xc-namespace-profile": {"constraint": {"allowed": ["system", "shared", "user"]}, "recommendation": {"default": "shared"}, "classification": {"multi_tenant_pattern": "shared-ref"}} - Pass-through from upstream: no
x-f5xc-displayorder
섹션 제목: “x-f5xc-displayorder”- Applied at: schema
- Purpose: UI/CLI 표현을 위한 속성의 제안된 정렬 순서.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-displayorder": ["name", "description", "spec"] - Pass-through from upstream: no
x-f5xc-terraform-resource
섹션 제목: “x-f5xc-terraform-resource”- Applied at: schema
- Purpose: 이 스키마에 매핑되는 Terraform 리소스 유형 이름.
- Consumers: Terraform
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-terraform-resource": "volterra_http_loadbalancer" - Pass-through from upstream: no
x-f5xc-display-name
섹션 제목: “x-f5xc-display-name”- Applied at: schema
- Purpose: 리소스 스키마에 대한 사람이 읽을 수 있는 표시 이름(자동 생성 재정의).
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-display-name": "HTTP Load Balancer" - Pass-through from upstream: no
x-f5xc-console
섹션 제목: “x-f5xc-console”- Applied at: schema
- Purpose: 이 리소스에 대한 콘솔 UI 탐색, 라우팅 및 폼 구조.
- Consumers: console-catalog, xcsh, vscode-xcsh, browser-automation
- Value type: object
- Value schema:
{"type": "object", "properties": {"workspace": "string", "menu_path": "array", "route_pattern": "string", "breadcrumbs": "array", "add_action": "object", "form_sections": "array", "metadata": "object"}} - Injected by: scripts/utils/console_ui_enricher.py
- Driven by config: config/console_ui.yaml
- Example:
"x-f5xc-console": {"workspace": "web-app-and-api-protection", "menu_path": ["Manage", "Load Balancers", "HTTP Load Balancers"]} - Pass-through from upstream: no
주입됨 — 속성 수준
섹션 제목: “주입됨 — 속성 수준”x-f5xc-description
섹션 제목: “x-f5xc-description”- Applied at: schema property
- Purpose: 업스트림
description을 보완하는 강화된 속성 설명. - Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_descriptions.yaml
- Example:
"x-f5xc-description": "Fully-qualified domain name used for TLS SNI." - Pass-through from upstream: no
x-f5xc-validation
섹션 제목: “x-f5xc-validation”- Applied at: schema property
- Purpose: 업스트림 protobuf
ves.io.schema.rules에서 파생된 선언적 유효성 검사 규칙. - Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/validation_enricher.py
- Driven by config: config/validation_rules.yaml
- Example:
"x-f5xc-validation": {"min_len": 1, "max_len": 64} - Pass-through from upstream: no
x-f5xc-examples
섹션 제목: “x-f5xc-examples”- Applied at: schema property
- Purpose: 속성에 대한 여러 예시 값.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array"} - Injected by: scripts/utils/resource_examples_enricher.py
- Driven by config: config/resource_examples.yaml
- Example:
"x-f5xc-examples": ["example.com", "api.example.com"] - Pass-through from upstream: no
x-f5xc-example
섹션 제목: “x-f5xc-example”- Applied at: schema property
- Purpose: 단일 표준 예시 값.
- Consumers: multiple
- Value type: string
- Value schema:
{} - Injected by: scripts/utils/field_description_enricher.py
- Driven by config: config/field_descriptions.yaml
- Example:
"x-f5xc-example": "example.com" - Pass-through from upstream: no
x-f5xc-completion
섹션 제목: “x-f5xc-completion”- Applied at: schema property
- Purpose: 셸 완성 힌트(정적 열거형 또는 동적 명령).
- Consumers: CLI
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-completion": {"source": "command", "cmd": "xcsh namespace list"} - Pass-through from upstream: no
x-f5xc-defaults
섹션 제목: “x-f5xc-defaults”- Applied at: schema property
- Purpose: 생성된 문서 및 UI에 표시할 기본값.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-defaults": {"value": "default"} - Pass-through from upstream: no
x-f5xc-required-for-operations
섹션 제목: “x-f5xc-required-for-operations”- Applied at: schema property
- Purpose: 이 속성을 필요로 하는 HTTP 작업(POST/PUT/…)을 나열합니다.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-required-for-operations": ["POST", "PUT"] - Pass-through from upstream: no
x-f5xc-required-for
섹션 제목: “x-f5xc-required-for”- Applied at: schema property
- Purpose: 이 속성을 필요로 하는 명명된 기능 조합을 나열합니다.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/minimum_configuration_enricher.py
- Driven by config: config/minimum_configs.yaml
- Example:
"x-f5xc-required-for": ["tls-origin", "mtls"] - Pass-through from upstream: no
x-f5xc-conditions
섹션 제목: “x-f5xc-conditions”- Applied at: schema property
- Purpose: 조건부 요구 사항(예: 형제 필드가 X와 같을 때 필수).
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object"}} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-conditions": [{"when": "tls.enabled == true", "require": "cert"}] - Pass-through from upstream: no
x-f5xc-deprecated
섹션 제목: “x-f5xc-deprecated”- Applied at: schema property
- Purpose: 대체 지침이 포함된 사용 중단 알림.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/field_metadata_enricher.py
- Driven by config: config/field_metadata.yaml
- Example:
"x-f5xc-deprecated": {"since": "3.0.0", "use": "new_field"} - Pass-through from upstream: no
x-f5xc-server-default
섹션 제목: “x-f5xc-server-default”- Applied at: schema property
- Purpose: 클라이언트가 속성을 생략할 때 서버가 할당하는 기본값.
- Consumers: multiple
- Value type: string
- Value schema:
{} - Injected by: scripts/utils/default_value_enricher.py
- Driven by config: config/discovered_defaults.yaml
- Example:
"x-f5xc-server-default": "ROUND_ROBIN" - Pass-through from upstream: no
x-f5xc-recommended-value
섹션 제목: “x-f5xc-recommended-value”- Applied at: schema property
- Purpose: 서버 기본값이 최적이 아닌 필드에 대한 권장 프로덕션 값.
- Consumers: multiple
- Value type: string
- Value schema:
{} - Injected by: scripts/utils/default_value_enricher.py
- Driven by config: config/discovered_defaults.yaml
- Example:
"x-f5xc-recommended-value": "LEAST_REQUEST" - Pass-through from upstream: no
x-f5xc-recommended-oneof-variant
섹션 제목: “x-f5xc-recommended-oneof-variant”- Applied at: schema property
- Purpose:
oneOf블록의 경우, 권장되는 변형을 나타냅니다. - Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/default_value_enricher.py
- Driven by config: config/discovered_defaults.yaml
- Example:
"x-f5xc-recommended-oneof-variant": "tls_parameters" - Pass-through from upstream: no
x-f5xc-conflicts-with
섹션 제목: “x-f5xc-conflicts-with”- Applied at: schema property
- Purpose: 이 속성과 함께 설정할 수 없는 형제 속성을 나열합니다.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/conflicts_with_enricher.py
- Driven by config: hardcoded
- Example:
"x-f5xc-conflicts-with": ["plaintext", "auto_cert"] - Pass-through from upstream: no
x-f5xc-requires
섹션 제목: “x-f5xc-requires”- Applied at: schema property
- Purpose: 한 필드가 다른 필드의 설정을 필요로 하는 크로스 필드 종속성을 문서화합니다.
- Consumers: compile_catalog.py, xcsh CLI
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object", "properties": {"field": {"type": "string"}, "required": {"type": "boolean"}, "reason": {"type": "string"}}}} - Injected by: scripts/utils/dependency_enricher.py
- Driven by config: config/minimum_configs.yaml (dependencies section)
- Example:
"x-f5xc-requires": [{"field": "tls_config", "required": true, "reason": "use_tls requires tls_config sub-field"}] - Pass-through from upstream: no
x-f5xc-constraints
섹션 제목: “x-f5xc-constraints”- Applied at: schema property
- Purpose: 라이브 API 프로빙 또는 정적 패턴에서 파생된 숫자/문자열 제약.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/constraint_enricher.py
- Driven by config: config/constraint_patterns.yaml
- Example:
"x-f5xc-constraints": {"min": 1, "max": 65535, "source": "live-api"} - Pass-through from upstream: no
x-f5xc-uniqueness
섹션 제목: “x-f5xc-uniqueness”- Applied at: schema property
- Purpose: 필드가 해당 범위 내에서 고유해야 하는지 여부를 선언합니다.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/uniqueness_enricher.py
- Driven by config: hardcoded
- Example:
"x-f5xc-uniqueness": {"scope": "namespace"} - Pass-through from upstream: no
x-f5xc-console-field
섹션 제목: “x-f5xc-console-field”- Applied at: schema property
- Purpose: 이 API 속성에 대한 콘솔 폼 위젯 메타데이터.
- Consumers: console-catalog, xcsh, browser-automation
- Value type: object
- Value schema:
{"type": "object", "properties": {"widget_type": "string", "label": "string", "default": "any", "selector": "string", "form_section": "string", "show_when": "object", "advanced": "boolean"}} - Injected by: scripts/utils/console_ui_enricher.py
- Driven by config: config/console_field_metadata.yaml
- Example:
"x-f5xc-console-field": {"widget_type": "listbox", "default": "HTTPS with Automatic Certificate", "form_section": "domains-and-lb-type"} - Pass-through from upstream: no
주입됨 — 작업 수준
섹션 제목: “주입됨 — 작업 수준”x-f5xc-required-fields
섹션 제목: “x-f5xc-required-fields”- Applied at: operation
- Purpose: 성공을 위해 제공해야 하는 작업 본문 필드를 명명합니다.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/operation_metadata_enricher.py
- Driven by config: config/operation_metadata.yaml
- Example:
"x-f5xc-required-fields": ["metadata.name", "spec.domains"] - Pass-through from upstream: no
x-f5xc-danger-level
섹션 제목: “x-f5xc-danger-level”- Applied at: operation
- Purpose: 작업의 영향 범위를 분류합니다(low/medium/high/critical).
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "enum": ["low", "medium", "high", "critical"]} - Injected by: scripts/utils/operation_metadata_enricher.py
- Driven by config: config/operation_metadata.yaml
- Example:
"x-f5xc-danger-level": "high" - Pass-through from upstream: no
x-f5xc-confirmation-required
섹션 제목: “x-f5xc-confirmation-required”- Applied at: operation
- Purpose: CLI/UI가 실행 전에 사용자에게 확인을 요청해야 하는지 여부.
- Consumers: multiple
- Value type: boolean
- Value schema:
{"type": "boolean"} - Injected by: scripts/utils/operation_metadata_enricher.py
- Driven by config: config/operation_metadata.yaml
- Example:
"x-f5xc-confirmation-required": true - Pass-through from upstream: no
x-f5xc-side-effects
섹션 제목: “x-f5xc-side-effects”- Applied at: operation
- Purpose: 작업의 관측 가능한 부작용을 나열합니다(재시작, 재구성 등).
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/utils/operation_metadata_enricher.py
- Driven by config: config/operation_metadata.yaml
- Example:
"x-f5xc-side-effects": ["invalidates-cache"] - Pass-through from upstream: no
x-f5xc-discovered-response-time
섹션 제목: “x-f5xc-discovered-response-time”- Applied at: operation
- Purpose: 디스커버리 중 이 작업에 대해 경험적으로 측정된 응답 시간.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery_enrichment.yaml
- Example:
"x-f5xc-discovered-response-time": {"p50_ms": 40, "p95_ms": 120} - Pass-through from upstream: no
x-f5xc-discovered-rate-limits
섹션 제목: “x-f5xc-discovered-rate-limits”- Applied at: operation
- Purpose: 라이브 API에서 표면화된 관측된 속도 제한 헤더/동작.
- Consumers: multiple
- Value type: object
- Value schema:
{"type": "object"} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery_enrichment.yaml
- Example:
"x-f5xc-discovered-rate-limits": {"limit": 100, "window_s": 60} - Pass-through from upstream: no
x-f5xc-discovered-error-catalog
섹션 제목: “x-f5xc-discovered-error-catalog”- Applied at: operation
- Purpose: 라이브 디스커버리 중 관측된 오류 응답의 카탈로그(샘플 페이로드 포함).
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object"}} - Injected by: scripts/utils/discovery_enricher.py
- Driven by config: config/discovery_enrichment.yaml
- Example:
"x-f5xc-discovered-error-catalog": [{"status": 400, "reason": "bad_request"}] - Pass-through from upstream: no
주입됨 — 인덱스 수준 (도메인 메타데이터)
섹션 제목: “주입됨 — 인덱스 수준 (도메인 메타데이터)”x-f5xc-category
섹션 제목: “x-f5xc-category”- Applied at: info
- Purpose: 도메인에 대한 최상위 CLI / UI / 문서 / Terraform 그룹화 카테고리.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-category": "networking" - Pass-through from upstream: no
x-f5xc-primary-resources
섹션 제목: “x-f5xc-primary-resources”- Applied at: info
- Purpose: 도메인을 정의하는 기본 리소스 유형 목록.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-primary-resources": ["http_loadbalancer"] - Pass-through from upstream: no
x-f5xc-critical-resources
섹션 제목: “x-f5xc-critical-resources”- Applied at: info
- Purpose: 높은 주의가 필요한 리소스(프로덕션 중요).
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/merge_specs.py
- Driven by config: config/critical_resources.yaml
- Example:
"x-f5xc-critical-resources": ["tls_certificate"] - Pass-through from upstream: no
x-f5xc-description-short
섹션 제목: “x-f5xc-description-short”- Applied at: info
- Purpose: 짧은(~60자) 도메인 설명. 긴 설명에 대해 속성 수준에도 적용됩니다.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/property_description_short_enricher.py
- Driven by config: config/property_description_short.yaml
- Example:
"x-f5xc-description-short": "Layer-7 HTTPS load balancing." - Pass-through from upstream: no
x-f5xc-description-medium
섹션 제목: “x-f5xc-description-medium”- Applied at: info
- Purpose: 중간(~150자) 도메인 설명. 속성 수준에도 적용됩니다.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/property_description_short_enricher.py
- Driven by config: config/property_description_short.yaml
- Example:
"x-f5xc-description-medium": "HTTP/HTTPS load balancer with advanced routing, WAF, and TLS." - Pass-through from upstream: no
x-f5xc-description-long
섹션 제목: “x-f5xc-description-long”- Applied at: info
- Purpose: 긴(~500자) 도메인 설명.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/description_enricher.py
- Driven by config: config/domain_descriptions.yaml
- Example:
"x-f5xc-description-long": "Full paragraph describing the domain..." - Pass-through from upstream: no
x-f5xc-complexity
섹션 제목: “x-f5xc-complexity”- Applied at: info
- Purpose: 이 도메인에서 구성을 작성하기 위한 상대적 복잡성 등급.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string", "enum": ["low", "medium", "high"]} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-complexity": "medium" - Pass-through from upstream: no
x-f5xc-requires-tier
섹션 제목: “x-f5xc-requires-tier”- Applied at: info
- Purpose: 필요한 최소 F5 XC 구독 등급.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-requires-tier": "enterprise" - Pass-through from upstream: no
x-f5xc-is-preview
섹션 제목: “x-f5xc-is-preview”- Applied at: info
- Purpose: 도메인을 미리 보기/베타 기능으로 플래그 지정합니다.
- Consumers: multiple
- Value type: boolean
- Value schema:
{"type": "boolean"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-is-preview": false - Pass-through from upstream: no
x-f5xc-use-cases
섹션 제목: “x-f5xc-use-cases”- Applied at: info
- Purpose: 이 도메인이 지원하는 명명된 사용 사례.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-use-cases": ["tls-termination", "waf"] - Pass-through from upstream: no
x-f5xc-icon
섹션 제목: “x-f5xc-icon”- Applied at: info
- Purpose: UI에서 이 도메인을 렌더링할 때 사용할 아이콘 식별자.
- Consumers: Web UI
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-icon": "f5xc:load-balancer" - Pass-through from upstream: no
x-f5xc-logo-svg
섹션 제목: “x-f5xc-logo-svg”- Applied at: info
- Purpose: 도메인을 나타내는 브랜드 로고의 인라인 SVG(또는 경로).
- Consumers: Web UI
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-logo-svg": "<svg>...</svg>" - Pass-through from upstream: no
x-f5xc-related-domains
섹션 제목: “x-f5xc-related-domains”- Applied at: info
- Purpose: 이 도메인과 함께 일반적으로 사용되는 다른 도메인에 대한 교차 링크.
- Consumers: multiple
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "string"}} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-related-domains": ["origin_pool", "tls_certificate"] - Pass-through from upstream: no
x-f5xc-doc-section
섹션 제목: “x-f5xc-doc-section”- Applied at: info
- Purpose: 렌더링된 문서의 문서 섹션/탐색 그룹화 슬러그.
- Consumers: multiple
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/merge_specs.py
- Driven by config: config/domain_patterns.yaml
- Example:
"x-f5xc-doc-section": "load-balancing" - Pass-through from upstream: no
업스트림 패스스루
섹션 제목: “업스트림 패스스루”x-ves-proto-package
섹션 제목: “x-ves-proto-package”- Applied at: upstream
- Purpose: F5 업스트림 사양에서 변경 없이 보존됩니다.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-package": "ves.io.schema.virtual_host" - Pass-through from upstream: yes
x-ves-proto-file
섹션 제목: “x-ves-proto-file”- Applied at: upstream
- Purpose: F5 업스트림 사양에서 변경 없이 보존됩니다.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-file": "ves.io/schema/virtual_host/types.proto" - Pass-through from upstream: yes
x-ves-proto-message
섹션 제목: “x-ves-proto-message”- Applied at: upstream
- Purpose: F5 업스트림 사양에서 변경 없이 보존됩니다.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-message": "ves.io.schema.virtual_host.CreateSpecType" - Pass-through from upstream: yes
x-ves-proto-service
섹션 제목: “x-ves-proto-service”- Applied at: upstream
- Purpose: F5 업스트림 사양에서 변경 없이 보존됩니다.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-service": "ves.io.schema.virtual_host.API" - Pass-through from upstream: yes
x-ves-proto-rpc
섹션 제목: “x-ves-proto-rpc”- Applied at: upstream
- Purpose: F5 업스트림 사양에서 변경 없이 보존됩니다.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-ves-proto-rpc": "ves.io.schema.api_sec.api_crawler.API.Create" - Pass-through from upstream: yes
x-displayname
섹션 제목: “x-displayname”- Applied at: upstream
- Purpose: F5 업스트림 사양에서 변경 없이 보존됩니다.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example:
"x-displayname": "Namespace" - Pass-through from upstream: yes
x-ves-oneof
섹션 제목: “x-ves-oneof”- Applied at: upstream
- Purpose: F5 업스트림 사양에서 변경 없이 보존됩니다.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example: F5 업스트림 문서를 참조하세요.
- Pass-through from upstream: yes
x-ves-default
섹션 제목: “x-ves-default”- Applied at: upstream
- Purpose: F5 업스트림 사양에서 변경 없이 보존됩니다.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example: F5 업스트림 문서를 참조하세요.
- Pass-through from upstream: yes
x-ves-required
섹션 제목: “x-ves-required”- Applied at: upstream
- Purpose: F5 업스트림 사양에서 변경 없이 보존됩니다.
- Consumers: N/A
- Value type: varies
- Value schema: N/A
- Injected by: upstream
- Driven by config: upstream
- Example: F5 업스트림 문서를 참조하세요.
- Pass-through from upstream: yes