- الرئيسية
- API Enriched
- الإضافات
- كتالوج امتدادات الإثراء
كتالوج امتدادات الإثراء
المرجع المعتمد لكل امتداد x-* يظهر في
docs/specifications/api/*.json. يُفرض التوافق مع
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، إلخ). موثّقة للشفافية لكنها غير مُتحكَّم بها من هذا المستودع. - مُضافة مستقبلاً — لم تُصدَر بعد؛ توثّق هنا فور أن يبدأ أحد أدوات الإثراء بإنتاجها (لا ينطبق عند التعبئة الأولية).
مخطط الإدخال
Section titled “مخطط الإدخال”لكل إدخال أدناه هذا الشكل بالضبط. يتسامح اختبار التوافق في
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)
Section titled “مُضاف — على مستوى المواصفة (قسم info)”x-f5xc-cli-domain
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “x-f5xc-api-url”- Applied at: info
- Purpose: عنوان URL الأساسي للـ API المباشر الذي جرى فحصه أثناء الاكتشاف.
- 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
Section titled “x-f5xc-api-reference-url”- Applied at: info
- Purpose: عنوان URL لصفحة وثائق مرجع API المستضافة لهذا النطاق.
- 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
Section titled “x-f5xc-response-time-ms”- Applied at: info
- Purpose: وقت الاستجابة المرصود (بالملي ثانية) للـ API الذي جرى فحصه أثناء الاكتشاف.
- 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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
مُضاف — على مستوى المخطط (مخططات المكونات)
Section titled “مُضاف — على مستوى المخطط (مخططات المكونات)”x-f5xc-minimum-configuration
Section titled “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
Section titled “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
Section titled “x-f5xc-displayorder”- Applied at: schema
- Purpose: الترتيب المقترح للخصائص لعرضها في واجهة المستخدم أو 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
Section titled “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
Section titled “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
Section titled “x-f5xc-console”- Applied at: schema
- Purpose: تنقل واجهة وحدة التحكم والتوجيه وبنية النموذج لهذا المورد.
- 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-action
Section titled “x-f5xc-action”- Applied at: schema
- Purpose: يشير إلى مخطط تكون عمليته موردًا من نمط الإجراءات، مثل
approve، بحيث يُنشئ codegen موردًا من نوع الإجراء بدلاً من CRUD. - Consumers: Terraform
- Value type: string
- Value schema:
{"type": "string"} - Injected by: scripts/utils/schema_override_enricher.py
- Driven by config: config/schema_overrides.yaml
- Example:
"x-f5xc-action": "approve" - Pass-through from upstream: no
مُضاف — على مستوى الخاصية
Section titled “مُضاف — على مستوى الخاصية”x-f5xc-description
Section titled “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
Section titled “x-f5xc-validation”- Applied at: schema property
- Purpose: قواعد التحقق التصريحية المستخلصة من
ves.io.schema.rulesفي protobuf الأصلي. - 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
Section titled “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
Section titled “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
Section titled “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
Section titled “x-f5xc-defaults”- 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-defaults": {"value": "default"} - Pass-through from upstream: no
x-f5xc-required-for-operations
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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-references
Section titled “x-f5xc-references”- Applied at: schema property
- Purpose: يُعلن عن نوع مورد حقل ObjectRefType المُشار إليه (المورد الذي يشير إليه ويجب أن يوجد مسبقاً)، مع تحديد اختيار oneOf، والمتطلب عند الإنشاء، والعدديّة — البُعد المرجعي للموارد في نموذج الاعتمادية.
- Consumers: terraform, cli, mcp, IDE, ai-assistants
- Value type: array
- Value schema:
{"type": "array", "items": {"type": "object", "properties": {"resource_kind": {"type": ["string", "null"]}, "field_path": {"type": "string"}, "gated_by": {"type": ["object", "null"]}, "required": {"type": "boolean"}, "cardinality": {"type": "string"}}}} - Injected by: scripts/utils/references_enricher.py
- Driven by config: config/resource_references.yaml
- Example:
"x-f5xc-references": [{"resource_kind": "app_firewall", "field_path": "app_firewall", "gated_by": {"choice": "waf_choice"}, "required": false, "cardinality": "single"}] - Pass-through from upstream: no
x-f5xc-field-examples
Section titled “x-f5xc-field-examples”- Applied at: schema (CreateSpecType)
- Purpose: قيم مثال الحقول عند الإنشاء لكل حقل (خريطة مسطحة من مسار الحقل إلى القيمة) مستخلصة من x-f5xc-minimum-configuration.example_yaml — المصدر الوحيد الحتمي لقيم الإنشاء المستخدمة في توليد النماذج وسير العمل اللاحقة.
- Consumers: cli, workflow-generator, sweep, ai-assistants
- Value type: object
- Value schema:
{"type": "object", "additionalProperties": true} - Injected by: scripts/utils/example_field_enricher.py
- Driven by config: derived from x-f5xc-minimum-configuration.example_yaml
- Example:
"x-f5xc-field-examples": {"spec.port": 8080} - Pass-through from upstream: no
x-f5xc-requires
Section titled “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
Section titled “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
Section titled “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
Section titled “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
مُضاف — على مستوى العملية
Section titled “مُضاف — على مستوى العملية”x-f5xc-required-fields
Section titled “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
Section titled “x-f5xc-danger-level”- Applied at: operation
- Purpose: يصنّف نطاق تأثير العملية (منخفض/متوسط/مرتفع/حرج).
- 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
Section titled “x-f5xc-confirmation-required”- Applied at: operation
- Purpose: ما إذا كان CLI أو واجهة المستخدم يجب أن يطلب من المستخدم التأكيد قبل التنفيذ.
- 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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
مُضاف — على مستوى الفهرس (بيانات تعريفية للنطاق)
Section titled “مُضاف — على مستوى الفهرس (بيانات تعريفية للنطاق)”x-f5xc-category
Section titled “x-f5xc-category”- Applied at: info
- Purpose: فئة التجميع العليا لـ CLI / واجهة المستخدم / المستندات / 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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “x-f5xc-icon”- Applied at: info
- Purpose: معرّف الأيقونة المستخدمة عند عرض هذا النطاق في واجهة المستخدم.
- 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
Section titled “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
Section titled “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
Section titled “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
مُمرَّر من المصدر الأصلي
Section titled “مُمرَّر من المصدر الأصلي”x-ves-proto-package
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
x-f5xc-wire-name
Section titled “x-f5xc-wire-name”- Applied at: schema property
- Purpose: مفتاح الخاصية الأصلي من المصدر الذي يجب إرساله في الطلب. تعيد المنطقة الوسيطة تسمية أسماء الخصائص المكتوبة بشكل خاطئ في F5 وتسجل المفتاح الأصلي هنا، لأن خادم F5 لا يقبل سوى التهجئة الأصلية.
- Consumers: Terraform
- Value type: string
- Value schema:
{"type": "string"} - Injected by: upstream (f5-sales-demo/api-specs)
- Driven by config: upstream
- Example:
"blocked_service": {"x-f5xc-wire-name": "blocked_sevice"} - Pass-through from upstream: yes