Skip to main content

validate-oas

Use when you need a quick VALID or NOT VALID result for a scoped Kibana OAS area, and first ensure the generated `oas_docs` inputs are up to date so validation runs against the current environment rather than stale snapshots.

معلومات المصدر

المستودع
elastic/kibana
آخر نشاط في المصدر
٣ أغسطس ٢٠٢٦ في ١٧:٠٦
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢١٬٢٣٦
التفرعات
٨٬٦٢٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
validate-oas
description
Use when you need a quick VALID or NOT VALID result for a scoped Kibana OAS area, and first ensure the generated `oas_docs` inputs are up to date so validation runs against the current environment rather than stale snapshots.
user-invocable
true
disable-model-invocation
true
# Validate OAS ## Overview Use `node ./scripts/validate_oas_docs.js` for a fast pass/fail check of a specific API area. This skill is intentionally minimal: - Return only `VALID` or `NOT VALID`. - If `NOT VALID`, mention the `debug-oas` skill for detailed issue debugging. - Use this skill first for quick pass/fail. - Hand off to `debug-oas` when the developer wants issue categorization or examples. Before validating, make sure the generated OAS artifacts in `oas_docs` are current. Treat stale generated files as an environment/setup problem, not a validation result. ## Environment setup Refresh the generated OAS inputs before validation when: - the developer asks for a fresh or CI-like validation run - `oas_docs` may be stale after switching branches or pulling changes - scoped validation gives surprising results that may come from outdated generated files Do not refresh first when: - the developer explicitly wants a fast local re-check only - the developer already refreshed `oas_docs` in this session and no relevant inputs changed since then Refresh flow: 1. Bootstrap dependencies if needed: ```bash yarn kbn bootstrap ``` 2. Regenerate captured OAS snapshots using the same include paths as Buildkite: ```bash node scripts/capture_oas_snapshot \ --include-path /api/status \ --include-path /api/alerting/rule/ \ --include-path /api/alerting/rules \ --include-path /api/actions \ --include-path /api/security/role \ --include-path /api/spaces \ --include-path /api/streams \ --include-path /api/fleet \ --include-path /api/saved_objects \ --include-path /api/maintenance_window \ --include-path /api/agent_builder \ --include-path /api/workflows \ --include-path /api/security/entity_store \ --include-path /api/dashboards \ --include-path /api/visualizations ``` 3. Run the OpenAPI bundling scripts: ```bash bash .buildkite/scripts/steps/openapi_bundling/security_solution_openapi_bundling.sh bash .buildkite/scripts/steps/openapi_bundling/final_merge.sh ``` 4. Rebuild the final OAS documents: ```bash cd oas_docs && make api-docs ``` After this refresh flow completes, run the scoped validation command. Source of truth: - Keep the `capture_oas_snapshot` include-path list aligned with `.buildkite/scripts/steps/checks/capture_oas_snapshot.sh`. - Keep the openapi_bundling step list aligned with `.buildkite/scripts/steps/openapi_bundling/`. - If the Buildkite command changes, update this skill to match it. ## Required interaction flow 1. Ask what APIs the developer is working on. 2. Ask for one or more HTTP API paths (for example `/api/fleet/agent_policies`). 3. Ensure `oas_docs` is up to date first when needed by following the environment setup flow above. 4. Run validation using those route-style `--path` filters with `--only traditional` by default and always include `--skip-printing-issues`. 5. Return only: - `VALID`, or - `NOT VALID` (and mention `debug-oas` for details). Do not skip questions (1) and (2) unless the developer already provided the API paths. ## Path format Use normal route-style API paths for `--path`: - `/api/fleet/agent_policies` - `/api/fleet/agent_policies/{agentPolicyId}` Do not manually convert to JSON pointers. The CLI handles conversion for error filtering internally. ## Commands Environment refresh: ```bash yarn kbn bootstrap node scripts/capture_oas_snapshot \ --include-path /api/status \ --include-path /api/alerting/rule/ \ --include-path /api/alerting/rules \ --include-path /api/actions \ --include-path /api/security/role \ --include-path /api/spaces \ --include-path /api/streams \ --include-path /api/fleet \ --include-path /api/saved_objects \ --include-path /api/maintenance_window \ --include-path /api/agent_builder \ --include-path /api/workflows \ --include-path /api/security/entity_store \ --include-path /api/dashboards \ --include-path /api/visualizations bash .buildkite/scripts/steps/openapi_bundling/security_solution_openapi_bundling.sh bash .buildkite/scripts/steps/openapi_bundling/final_merge.sh cd oas_docs && make api-docs ``` Default scoped validation: ```bash node ./scripts/validate_oas_docs.js --only traditional --skip-printing-issues --path <api_route_prefix> ``` Multiple path filters are supported: ```bash node ./scripts/validate_oas_docs.js --only traditional \ --skip-printing-issues \ --path /api/fleet/agent_policies \ --path /api/fleet/agent_policies/{agentPolicyId} ``` Optional (only when explicitly requested): ```bash node ./scripts/validate_oas_docs.js --only serverless --skip-printing-issues --path <api_route_prefix> ``` Default scoping note: - Prefer `--only traditional` by default because it matches the common local debugging path and keeps output narrower. - Use `--only serverless` only when the developer explicitly asks for it. ## Result rules - Determine status from CLI output: - `Found 0 errors in ...` -> `VALID` - `Found N errors in ...` where `N > 0` -> `NOT VALID` - If validation was run without first refreshing obviously stale `oas_docs`, note that the result may reflect outdated generated inputs and refresh before concluding the spec is clean or broken. - If CLI output indicates no matched paths (for example `None of the provided --path filters matched any content`), keep status as `VALID` but include an explicit warning. - Output must stay concise: - `VALID` - `VALID (WARNING: no actual paths were matched.)` - `NOT VALID. Use the debug-oas skill for detailed issues.` ## Output template Use exactly one of these responses: ```text VALID ``` ```text VALID (WARNING: no actual paths were matched.) ``` ```text NOT VALID. Use the debug-oas skill for detailed issues. ```
عرض على GitHub