[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-elastic-kibana-workflows":3,"mdc-uhdeko-key":34,"related-org-elastic-kibana-workflows":3161,"related-repo-elastic-kibana-workflows":3331},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"kibana-workflows","author and manage Kibana workflow definitions","Author, validate, test, run, and inspect Elastic Workflow YAML definitions. Use when the user wants to turn natural language into a Kibana workflow, fix workflow YAML, understand triggers or steps, or run a quick test loop against a real Kibana.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"elastic","Elastic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Felastic.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Workflow","workflow","tag",{"name":17,"slug":18,"type":15},"YAML","yaml",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Kibana","kibana",547,"https:\u002F\u002Fgithub.com\u002Felastic\u002Fagent-skills","2026-08-29T09:48:02.850607",null,45,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Official Elastic Skills","https:\u002F\u002Fgithub.com\u002Felastic\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fkibana\u002Fkibana-workflows","---\nname: kibana-workflows\ndescription: >\n  Author, validate, test, run, and inspect Elastic Workflow YAML definitions. Use\n  when the user wants to turn natural language into a Kibana workflow, fix workflow\n  YAML, understand triggers or steps, or run a quick test loop against a real Kibana.\nmetadata:\n  author: elastic\n  version: 0.5.0\n  universal: true\ncompatibility: Kibana 9.4 or later with matching Elasticsearch and an Enterprise license,\n  or an Elastic Serverless project with Workflows available; requires the `elastic`\n  CLI ≥ 0.2 with `stack kb workflows` support. When Agent Builder is enabled on the\n  target Kibana, the `platform.core.generate_workflow` and `platform.workflows.*`\n  tools are preferred over the raw schema.\n---\n\n# Author Elastic Workflows\n\nCreate and iterate on Elastic Workflow YAML definitions. Workflows are declarative automations that run inside Kibana:\nthey query Elasticsearch, set data, branch, loop, call connectors, create cases, notify external systems, and invoke AI\nsteps.\n\n\u003C!-- begin-partial: preamble -->\n\n## Environment Configuration\n\nThis skill executes Elasticsearch operations through the `elastic` CLI. Before running any other step, confirm the\n`elastic` CLI is installed and available. If it is not installed, ask the user:\n\n> \"The `elastic` CLI is not available. You must install the\n> [`elastic` CLI](https:\u002F\u002Fgithub.com\u002Felastic\u002Fcli#configuration) before continuing?\"\n\nWait for the user's response. Do not guess credentials, call the HTTP API directly, or attempt other workarounds.\n\nThis skill references operations in HTTP-shorthand form (e.g., `GET \u002F`, `GET \u002F_cat\u002Findices`, `GET \u002F{index}\u002F_mapping`,\n`GET \u002F{index}\u002F_settings\u002Findex.mode`, `POST \u002F_query`). The [Operations](#operations) table at the end of this document\nmaps each shorthand to the equivalent `elastic` CLI command — always use the CLI rather than calling the HTTP API\ndirectly.\n\nVerify the connection by calling `GET \u002F`. If verification fails, point the user to the\n[CLI configuration instructions](https:\u002F\u002Fgithub.com\u002Felastic\u002Fcli#configuration).\n\n\u003C!-- end-partial: preamble -->\n\nIf the user asks only for a draft or explanation and explicitly forbids live access, skip connection verification and do\nnot call the CLI or APIs. State that the draft was not validated against a target deployment.\n\nIf workflow APIs are unavailable, report the returned status and message. Common causes are an unsupported Kibana\nversion, insufficient license or feature privileges, or Workflows not being offered on the target project. The\n`workflows:ui:enabled` setting controls the Kibana UI; it does not remove the public Workflows APIs.\n\n## Pick the authoring path\n\nDefault to the **Discovery-tools path** below — the `platform.workflows.*` tools are registered by default on Kibana\n9.5+ and Serverless. Confirm with one probe: `GET kbn:\u002Fapi\u002Fagent_builder\u002Ftools` returns\n`{ \"results\": [ { \"id\": ... } ] }`; save it to a file and grep for `\"id\": \"platform.workflows.\"`. Two fallbacks, both\nloaded only when needed:\n\n- No `agent_builder` endpoint (404) or no `platform.workflows.*` ids (e.g. Kibana 9.4) → read\n  [references\u002Fschema-path.md](references\u002Fschema-path.md) and hand-author from the raw JSON Schema.\n- An LLM connector is wired into Agent Builder and the user prefers Kibana's own generator → read\n  [references\u002Fgenerator-path.md](references\u002Fgenerator-path.md).\n\nState which path you picked and why in one sentence before proceeding. Measured path benchmarks live in\n[references\u002Fpath-performance.md](references\u002Fpath-performance.md).\n\n## Guidelines (all paths)\n\n- **Treat tests as executions.** `POST kbn:\u002Fapi\u002Fworkflows\u002Ftest` runs the workflow graph, and\n  `POST kbn:\u002Fapi\u002Fworkflows\u002Fstep\u002Ftest` runs the selected step. Test only when every executed action is read-only or the\n  user authorized its effects. Otherwise test a copy whose writes, notifications, and external calls are replaced with\n  `console`, then restore the real steps and save the workflow disabled.\n- **Cite endpoints in HTTP shorthand, never raw transport.** This skill's body refers to operations like\n  `POST kbn:\u002Fapi\u002Fworkflows\u002Ftest`. The [Operations](#operations) table is the single place where shorthand binds to a\n  concrete CLI command.\n- **Prefer purpose-built actions over generic `http`.** For Slack\u002FJira\u002FPagerDuty\u002Fetc., prefer the connector step type\n  (e.g. `slack2.sendMessage`) over a raw `http` call. Discover the exact action type via `get_step_definitions` (or the\n  strict schema on the fallback path).\n- **Reference step outputs as `steps.\u003Cname>.output`, never `steps.\u003Cname>.with.*`.** Trigger event data is `event`, never\n  `trigger.event` or `triggers.event`.\n- **Don't guess connector ids.** Call `platform.workflows.get_connectors` (Discovery-tools path) or\n  `GET kbn:\u002Fapi\u002Fworkflows\u002Fconnectors` (Schema path), or ask the user. Placeholders should be obviously fake.\n- **Handle failure deliberately.** Add retry or fallback behavior where the user's requirements call for resilience. Do\n  not add `continue: true` everywhere: it can hide a failed action and allow the workflow to report false success.\n- **Surface gates, don't paper over them.** If the API returns `403 ... not available`, report the required license or\n  privileges; do not silently retry or blame the UI setting.\n\n## Discovery-tools path\n\nUse when `platform.workflows.*` tools are registered on the target Kibana. All calls go through\n`POST kbn:\u002Fapi\u002Fagent_builder\u002Ftools\u002F_execute` with `{ \"tool_id\": \"...\", \"tool_params\": { ... } }`. Response shape:\n`{ \"results\": [ { \"type\": \"other\", \"data\": { ... }, \"tool_result_id\": \"...\" } ] }` — the payload you want is\n`.results[0].data`. Send the request body from a file and write the response to a file (see [Operations](#operations)),\nthen jq against that file; do not inline `python3 -c` on multi-line JSON.\n\n**Keep context small; minimize round-trips.** Do NOT front-load the whole step catalog — pull only the targeted details\nyou need, keep large tool output in files (not the transcript), and author in as few turns as possible (measured\nrationale: [references\u002Fpath-performance.md](references\u002Fpath-performance.md)).\n\n1. **Capture the user's intent before writing YAML.** Identify, in order, the trigger (`manual` \u002F `scheduled` \u002F\n   `alert`), the inputs the workflow will receive at runtime, the data sources it must read, the actions it must take,\n   and the desired output. If a required dependency is unknown (e.g. a Slack connector id), ask the user or use a\n   clearly-marked placeholder.\n\n2. **Look up only what you'll use.** For the specific step types this workflow needs:\n   - `platform.workflows.get_step_definitions` with an exact `stepType` (e.g. `\"http\"`, `\"elasticsearch.esql.query\"`,\n     `\"slack2.sendMessage\"`), or with `search` to browse. The response includes input params, config params, an\n     `outputSummary` when you pass `includeOutputSummary: true`, and usage examples. Pass `includeFullSchema: true` only\n     if the compact summary is insufficient.\n   - `platform.workflows.get_trigger_definitions` for the trigger event schema.\n   - `platform.workflows.get_connectors` to resolve real `connector-id` values for connector actions.\n   - `platform.workflows.get_examples` when you need a working YAML shape for a pattern.\n\n   Write each response to a file and jq the field you need — don't let full tool output land in the transcript.\n\n3. **Draft the whole workflow in one pass.** A workflow requires `name`, at least one trigger, and a non-empty `steps`\n   array. Use 2-space indentation. Reference outputs as `steps.\u003Cname>.output.*`. Build the complete YAML in a single\n   edit rather than growing it across many turns.\n\n4. **Validate once.** Call `platform.workflows.validate_workflow` with `{ \"yaml\": \"...\" }`. On failure it returns\n   errors + step definitions for referenced step types automatically, so you rarely need a second `get_step_definitions`\n   call. Fix all reported issues in a single edit, then re-validate.\n\n5. **Test, save, and run.** See [Test \u002F save \u002F run](#test--save--run) below. Use\n   `platform.workflows.workflow_execute_step` to iterate on a single step (with `confirmation_body` for unsafe steps).\n\n## Schema path (last resort)\n\nOnly for Kibanas without the `platform.workflows.*` tools (see the probe above). Full recipe:\n[references\u002Fschema-path.md](references\u002Fschema-path.md).\n\n## Test \u002F save \u002F run\n\nShared final phase for both paths.\n\n1. **Test only an execution-safe draft.** Call `POST kbn:\u002Fapi\u002Fworkflows\u002Ftest` with the YAML inline as `workflowYaml` and\n   the run-time `inputs`. For any workflow that writes \u002F notifies \u002F calls external services, replace those steps with\n   `console` in the tested copy first, then restore them and save the workflow disabled.\n\n2. **Poll the execution.** The response carries a `workflowExecutionId`. Poll\n   `GET kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}` until `status` is one of `completed`, `failed`, `cancelled`, or\n   `timed_out`; then fetch `GET kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}\u002Flogs` for step-by-step output. Only treat\n   `status: completed` as success.\n\n3. **Save.** `POST kbn:\u002Fapi\u002Fworkflows\u002Fworkflow` with `{ yaml, id? }`. Save side-effecting workflows with\n   `enabled: false` until the user has authorized a real run. Subsequent edits use\n   `PUT kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}` and may update `yaml`, `enabled`, `name`, `tags`, or `description` (partial\n   updates supported).\n\n4. **Run only when authorized.** Enable the workflow, then call `POST kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}\u002Frun` with the\n   same `inputs` shape used at test time. Inspect via the execution + logs endpoints.\n\n## Workflow YAML Quick Reference\n\n```yaml\nversion: \"1\"\nname: Manual Hello Workflow\ndescription: Logs a hello message from a manual workflow\nenabled: true\ntags: [\"demo\", \"workflow\"]\n\ntriggers:\n  - type: manual\n    inputs:\n      properties:\n        name:\n          type: string\n          description: Name to greet\n          default: \"world\"\n\nsteps:\n  - name: log_hello\n    type: console\n    with:\n      message: \"Hello {{ inputs.name }}\"\n```\n\nAn ordinary action step can use fields like these when its strict schema allows them:\n\n```yaml\n- name: unique_step_name\n  type: step_type\n  with:\n    param: value\n  connector-id: connector-id-for-connector-actions # connector actions only\n  if: \"steps.previous.output.ok: true\"\n  timeout: \"30s\"\n  on-failure:\n    retry:\n      max-attempts: 3\n      delay: \"5s\"\n    fallback:\n      - name: handle_error\n        type: console\n        with:\n          message: \"Step failed\"\n```\n\nUse `{{ ... }}` when rendering text. Use `${{ ... }}` when an entire value must retain its native type, for example\n`documents: \"${{ steps.search.output.hits.hits }}\"`.\n\nCommon step types include:\n\n| Step type                  | Use for                            |\n| -------------------------- | ---------------------------------- |\n| `console`                  | Debug logging during tests         |\n| `elasticsearch.search`     | Query Elasticsearch with Query DSL |\n| `elasticsearch.esql.query` | Query Elasticsearch with ES\\|QL    |\n| `elasticsearch.bulk`       | Bulk indexing                      |\n| `kibana.request`           | Call a Kibana API                  |\n| `data.set`                 | Set values under `variables`       |\n| `if`                       | Branch on a KQL-style condition    |\n| `foreach`                  | Loop over a collection             |\n| `wait`                     | Pause execution                    |\n| `http`                     | Generic HTTP requests              |\n| `workflow.execute`         | Run another saved workflow         |\n\nThis is not an exhaustive compatibility list. On the Discovery-tools path, `platform.workflows.get_step_definitions`\nanswers \"does step X exist and what does it take\". On the schema path, `GET kbn:\u002Fapi\u002Fworkflows\u002Fschema?loose=false` is\nthe source of truth, and `GET kbn:\u002Fapi\u002Fworkflows\u002Fconnectors` lists configured connector instances.\n\n`data.set` stores variables for the current execution; it does not persist durable data. Use an Elasticsearch or Kibana\nwrite action when the user asks to retain data after the execution.\n\n## Examples\n\n**Manual hello (smallest possible draft):** \"Make a workflow that logs hello.\" → manual trigger + one `console` step\nthat prints `Hello {{ inputs.name | default: \"world\" }}`. Test with `POST kbn:\u002Fapi\u002Fworkflows\u002Ftest`. See\n[Demo Test Loop](references\u002Fdemo-test-loop.md).\n\n**Scheduled health check:** \"Every 5 minutes, ping `https:\u002F\u002Fapi.example.com\u002Fhealth` and log the response.\" → `scheduled`\ntrigger (`every: 5m`) + `http` step + `console`. Look up the exact `with` shape with `get_step_definitions(\"http\")`. Add\nbounded retry if requested.\n\n**Alert-triggered case + Slack notify:** \"When a Security alert fires, create a case and post to #soc-incidents.\" →\n`alert` trigger + `foreach` over `event.alerts` + connector actions. Use `get_step_definitions(\"cases.createCase\")` and\n`get_step_definitions(search: \"slack\")` (current fixtures use `cases.createCase` and `slack2.sendMessage`), then\n`get_connectors` for the real `connector-id`s. See [Workflow Patterns](references\u002Fworkflow-patterns.md).\n\nFor unfamiliar shapes on the schema path, read [Workflow Patterns](references\u002Fworkflow-patterns.md) and\n[Generation Tips](references\u002Fgeneration-tips.md) before drafting.\n\n## Operations\n\nThe HTTP-shorthand references in the body above bind to the `elastic` CLI commands below. Multi-line YAML and JSON\npayloads are easier to pass via `--input-file \u003Cpath>` than as inline flags.\n\n**Workflows API (both paths).**\n\n| HTTP API (shorthand)                                      | `elastic` CLI command                                                                         |\n| --------------------------------------------------------- | --------------------------------------------------------------------------------------------- |\n| `GET \u002F`                                                   | `elastic es info`                                                                             |\n| `GET kbn:\u002Fapi\u002Fworkflows`                                  | `elastic stack kb workflows get-workflows`                                                    |\n| `GET kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}`                    | `elastic stack kb workflows get-workflows-workflow-id --id \u003Cid>`                              |\n| `POST kbn:\u002Fapi\u002Fworkflows\u002Fworkflow`                        | `elastic stack kb workflows post-workflows-workflow --input-file \u003Cpath>`                      |\n| `PUT kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}`                    | `elastic stack kb workflows put-workflows-workflow-id --id \u003Cid> --input-file \u003Cpath>`          |\n| `DELETE kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}`                 | `elastic stack kb workflows delete-workflows-workflow-id --id \u003Cid>`                           |\n| `DELETE kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}?force=true`      | `elastic stack kb workflows delete-workflows-workflow-id --id \u003Cid> --force true`              |\n| `POST kbn:\u002Fapi\u002Fworkflows\u002Ftest`                            | `elastic stack kb workflows post-workflows-test --input-file \u003Cpath>`                          |\n| `POST kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}\u002Frun`               | `elastic stack kb workflows post-workflows-workflow-id-run --id \u003Cid> --inputs \u003Cjson>`         |\n| `POST kbn:\u002Fapi\u002Fworkflows\u002Fstep\u002Ftest`                       | `elastic stack kb workflows post-workflows-step-test --input-file \u003Cpath>`                     |\n| `GET kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}`         | `elastic stack kb workflows get-workflows-executions-executionid --execution-id \u003Cid>`         |\n| `GET kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}\u002Flogs`    | `elastic stack kb workflows get-workflows-executions-executionid-logs --execution-id \u003Cid>`    |\n| `POST kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}\u002Fcancel` | `elastic stack kb workflows post-workflows-executions-executionid-cancel --execution-id \u003Cid>` |\n| `POST kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}\u002Fresume` | `elastic stack kb workflows post-workflows-executions-executionid-resume --execution-id \u003Cid>` |\n| `GET kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{workflowId}\u002Fexecutions` | `elastic stack kb workflows get-workflows-workflow-workflowid-executions --workflow-id \u003Cid>`  |\n| `GET kbn:\u002Fapi\u002Fworkflows\u002Fschema?loose=false`               | `elastic stack kb workflows get-workflows-schema --loose false`                               |\n| `GET kbn:\u002Fapi\u002Fworkflows\u002Fconnectors`                       | `elastic stack kb workflows get-workflows-connectors`                                         |\n\n**Agent Builder tools (Discovery-tools path).**\n\nEvery tool below is invoked through the same execute endpoint. Pass `--input-file` a JSON file with\n`{ \"tool_id\": \"...\", \"tool_params\": { ... } }`.\n\n| HTTP API (shorthand)                         | `elastic` CLI command                                                                 |\n| -------------------------------------------- | ------------------------------------------------------------------------------------- |\n| `GET kbn:\u002Fapi\u002Fagent_builder\u002Ftools`           | `elastic stack kb agent-builder get-agent-builder-tools`                              |\n| `POST kbn:\u002Fapi\u002Fagent_builder\u002Ftools\u002F_execute` | `elastic stack kb agent-builder post-agent-builder-tools-execute --input-file \u003Cpath>` |\n\nWorkflow-relevant `tool_id`s:\n\n| `tool_id`                                    | Purpose                                                                                        |\n| -------------------------------------------- | ---------------------------------------------------------------------------------------------- |\n| `platform.workflows.validate_workflow`       | Validate a YAML string; failure response includes step definitions for referenced step types.  |\n| `platform.workflows.workflow_execute_step`   | Execute one step against the real environment (with user confirmation for unsafe steps).       |\n| `platform.workflows.get_step_definitions`    | Look up step type params, outputs, examples. `stepType` for exact match, `search` for keyword. |\n| `platform.workflows.get_trigger_definitions` | Look up a trigger's full event schema.                                                         |\n| `platform.workflows.get_connectors`          | List connector instances configured on the target.                                             |\n| `platform.workflows.get_examples`            | Search the bundled example library for working YAML patterns.                                  |\n\n**Notes.**\n\nFor `post-workflows-test`, the input file is JSON of the form `{ \"workflowYaml\": \"...\", \"inputs\": {} }` (or `workflowId`\nin place of `workflowYaml`). For `post-workflows-workflow`, use `{ \"yaml\": \"...\", \"id\": \"...\" }` — `id` is optional. For\n`put-workflows-workflow-id`, include only the fields to update from `name`, `enabled`, `tags`, `yaml`, and\n`description`. Deletion is soft by default. Use `force=true` only when permanent deletion and immediate ID reuse are\nintended. The Kibana API version is `2023-10-31`; the CLI sets it automatically.\n\nWhen invoking read-only `get-` commands from a shell that leaves stdin open (some terminals and agent runtimes do this),\nappend `\u003C\u002Fdev\u002Fnull` to avoid an `EAGAIN: resource temporarily unavailable` crash — e.g.\n`elastic stack kb workflows get-workflows-executions-executionid --execution-id \"{id}\" \u003C\u002Fdev\u002Fnull`.\n",{"data":35,"body":40},{"name":4,"description":6,"metadata":36,"compatibility":39},{"author":8,"version":37,"universal":38},"0.5.0",true,"Kibana 9.4 or later with matching Elasticsearch and an Enterprise license, or an Elastic Serverless project with Workflows available; requires the `elastic` CLI ≥ 0.2 with `stack kb workflows` support. When Agent Builder is enabled on the target Kibana, the `platform.core.generate_workflow` and `platform.workflows.*` tools are preferred over the raw schema.",{"type":41,"children":42},"root",[43,52,58,65,85,117,122,180,200,205,218,224,269,312,323,329,539,544,602,618,887,893,910,915,920,1142,1148,1543,1548,1848,1876,1881,2100,2127,2137,2143,2182,2245,2330,2348,2353,2373,2381,2755,2763,2782,2847,2860,2995,3003,3119,3155],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"author-elastic-workflows",[49],{"type":50,"value":51},"text","Author Elastic Workflows",{"type":44,"tag":53,"props":54,"children":55},"p",{},[56],{"type":50,"value":57},"Create and iterate on Elastic Workflow YAML definitions. Workflows are declarative automations that run inside Kibana:\nthey query Elasticsearch, set data, branch, loop, call connectors, create cases, notify external systems, and invoke AI\nsteps.",{"type":44,"tag":59,"props":60,"children":62},"h2",{"id":61},"environment-configuration",[63],{"type":50,"value":64},"Environment Configuration",{"type":44,"tag":53,"props":66,"children":67},{},[68,70,76,78,83],{"type":50,"value":69},"This skill executes Elasticsearch operations through the ",{"type":44,"tag":71,"props":72,"children":74},"code",{"className":73},[],[75],{"type":50,"value":8},{"type":50,"value":77}," CLI. Before running any other step, confirm the\n",{"type":44,"tag":71,"props":79,"children":81},{"className":80},[],[82],{"type":50,"value":8},{"type":50,"value":84}," CLI is installed and available. If it is not installed, ask the user:",{"type":44,"tag":86,"props":87,"children":88},"blockquote",{},[89],{"type":44,"tag":53,"props":90,"children":91},{},[92,94,99,101,115],{"type":50,"value":93},"\"The ",{"type":44,"tag":71,"props":95,"children":97},{"className":96},[],[98],{"type":50,"value":8},{"type":50,"value":100}," CLI is not available. You must install the\n",{"type":44,"tag":102,"props":103,"children":107},"a",{"href":104,"rel":105},"https:\u002F\u002Fgithub.com\u002Felastic\u002Fcli#configuration",[106],"nofollow",[108,113],{"type":44,"tag":71,"props":109,"children":111},{"className":110},[],[112],{"type":50,"value":8},{"type":50,"value":114}," CLI",{"type":50,"value":116}," before continuing?\"",{"type":44,"tag":53,"props":118,"children":119},{},[120],{"type":50,"value":121},"Wait for the user's response. Do not guess credentials, call the HTTP API directly, or attempt other workarounds.",{"type":44,"tag":53,"props":123,"children":124},{},[125,127,133,135,141,142,148,150,156,157,163,165,171,173,178],{"type":50,"value":126},"This skill references operations in HTTP-shorthand form (e.g., ",{"type":44,"tag":71,"props":128,"children":130},{"className":129},[],[131],{"type":50,"value":132},"GET \u002F",{"type":50,"value":134},", ",{"type":44,"tag":71,"props":136,"children":138},{"className":137},[],[139],{"type":50,"value":140},"GET \u002F_cat\u002Findices",{"type":50,"value":134},{"type":44,"tag":71,"props":143,"children":145},{"className":144},[],[146],{"type":50,"value":147},"GET \u002F{index}\u002F_mapping",{"type":50,"value":149},",\n",{"type":44,"tag":71,"props":151,"children":153},{"className":152},[],[154],{"type":50,"value":155},"GET \u002F{index}\u002F_settings\u002Findex.mode",{"type":50,"value":134},{"type":44,"tag":71,"props":158,"children":160},{"className":159},[],[161],{"type":50,"value":162},"POST \u002F_query",{"type":50,"value":164},"). The ",{"type":44,"tag":102,"props":166,"children":168},{"href":167},"#operations",[169],{"type":50,"value":170},"Operations",{"type":50,"value":172}," table at the end of this document\nmaps each shorthand to the equivalent ",{"type":44,"tag":71,"props":174,"children":176},{"className":175},[],[177],{"type":50,"value":8},{"type":50,"value":179}," CLI command — always use the CLI rather than calling the HTTP API\ndirectly.",{"type":44,"tag":53,"props":181,"children":182},{},[183,185,190,192,198],{"type":50,"value":184},"Verify the connection by calling ",{"type":44,"tag":71,"props":186,"children":188},{"className":187},[],[189],{"type":50,"value":132},{"type":50,"value":191},". If verification fails, point the user to the\n",{"type":44,"tag":102,"props":193,"children":195},{"href":104,"rel":194},[106],[196],{"type":50,"value":197},"CLI configuration instructions",{"type":50,"value":199},".",{"type":44,"tag":53,"props":201,"children":202},{},[203],{"type":50,"value":204},"If the user asks only for a draft or explanation and explicitly forbids live access, skip connection verification and do\nnot call the CLI or APIs. State that the draft was not validated against a target deployment.",{"type":44,"tag":53,"props":206,"children":207},{},[208,210,216],{"type":50,"value":209},"If workflow APIs are unavailable, report the returned status and message. Common causes are an unsupported Kibana\nversion, insufficient license or feature privileges, or Workflows not being offered on the target project. The\n",{"type":44,"tag":71,"props":211,"children":213},{"className":212},[],[214],{"type":50,"value":215},"workflows:ui:enabled",{"type":50,"value":217}," setting controls the Kibana UI; it does not remove the public Workflows APIs.",{"type":44,"tag":59,"props":219,"children":221},{"id":220},"pick-the-authoring-path",[222],{"type":50,"value":223},"Pick the authoring path",{"type":44,"tag":53,"props":225,"children":226},{},[227,229,235,237,243,245,251,253,259,261,267],{"type":50,"value":228},"Default to the ",{"type":44,"tag":230,"props":231,"children":232},"strong",{},[233],{"type":50,"value":234},"Discovery-tools path",{"type":50,"value":236}," below — the ",{"type":44,"tag":71,"props":238,"children":240},{"className":239},[],[241],{"type":50,"value":242},"platform.workflows.*",{"type":50,"value":244}," tools are registered by default on Kibana\n9.5+ and Serverless. Confirm with one probe: ",{"type":44,"tag":71,"props":246,"children":248},{"className":247},[],[249],{"type":50,"value":250},"GET kbn:\u002Fapi\u002Fagent_builder\u002Ftools",{"type":50,"value":252}," returns\n",{"type":44,"tag":71,"props":254,"children":256},{"className":255},[],[257],{"type":50,"value":258},"{ \"results\": [ { \"id\": ... } ] }",{"type":50,"value":260},"; save it to a file and grep for ",{"type":44,"tag":71,"props":262,"children":264},{"className":263},[],[265],{"type":50,"value":266},"\"id\": \"platform.workflows.\"",{"type":50,"value":268},". Two fallbacks, both\nloaded only when needed:",{"type":44,"tag":270,"props":271,"children":272},"ul",{},[273,301],{"type":44,"tag":274,"props":275,"children":276},"li",{},[277,279,285,287,292,294,299],{"type":50,"value":278},"No ",{"type":44,"tag":71,"props":280,"children":282},{"className":281},[],[283],{"type":50,"value":284},"agent_builder",{"type":50,"value":286}," endpoint (404) or no ",{"type":44,"tag":71,"props":288,"children":290},{"className":289},[],[291],{"type":50,"value":242},{"type":50,"value":293}," ids (e.g. Kibana 9.4) → read\n",{"type":44,"tag":102,"props":295,"children":297},{"href":296},"references\u002Fschema-path.md",[298],{"type":50,"value":296},{"type":50,"value":300}," and hand-author from the raw JSON Schema.",{"type":44,"tag":274,"props":302,"children":303},{},[304,306,311],{"type":50,"value":305},"An LLM connector is wired into Agent Builder and the user prefers Kibana's own generator → read\n",{"type":44,"tag":102,"props":307,"children":309},{"href":308},"references\u002Fgenerator-path.md",[310],{"type":50,"value":308},{"type":50,"value":199},{"type":44,"tag":53,"props":313,"children":314},{},[315,317,322],{"type":50,"value":316},"State which path you picked and why in one sentence before proceeding. Measured path benchmarks live in\n",{"type":44,"tag":102,"props":318,"children":320},{"href":319},"references\u002Fpath-performance.md",[321],{"type":50,"value":319},{"type":50,"value":199},{"type":44,"tag":59,"props":324,"children":326},{"id":325},"guidelines-all-paths",[327],{"type":50,"value":328},"Guidelines (all paths)",{"type":44,"tag":270,"props":330,"children":331},{},[332,366,389,429,477,503,521],{"type":44,"tag":274,"props":333,"children":334},{},[335,340,342,348,350,356,358,364],{"type":44,"tag":230,"props":336,"children":337},{},[338],{"type":50,"value":339},"Treat tests as executions.",{"type":50,"value":341}," ",{"type":44,"tag":71,"props":343,"children":345},{"className":344},[],[346],{"type":50,"value":347},"POST kbn:\u002Fapi\u002Fworkflows\u002Ftest",{"type":50,"value":349}," runs the workflow graph, and\n",{"type":44,"tag":71,"props":351,"children":353},{"className":352},[],[354],{"type":50,"value":355},"POST kbn:\u002Fapi\u002Fworkflows\u002Fstep\u002Ftest",{"type":50,"value":357}," runs the selected step. Test only when every executed action is read-only or the\nuser authorized its effects. Otherwise test a copy whose writes, notifications, and external calls are replaced with\n",{"type":44,"tag":71,"props":359,"children":361},{"className":360},[],[362],{"type":50,"value":363},"console",{"type":50,"value":365},", then restore the real steps and save the workflow disabled.",{"type":44,"tag":274,"props":367,"children":368},{},[369,374,376,381,383,387],{"type":44,"tag":230,"props":370,"children":371},{},[372],{"type":50,"value":373},"Cite endpoints in HTTP shorthand, never raw transport.",{"type":50,"value":375}," This skill's body refers to operations like\n",{"type":44,"tag":71,"props":377,"children":379},{"className":378},[],[380],{"type":50,"value":347},{"type":50,"value":382},". The ",{"type":44,"tag":102,"props":384,"children":385},{"href":167},[386],{"type":50,"value":170},{"type":50,"value":388}," table is the single place where shorthand binds to a\nconcrete CLI command.",{"type":44,"tag":274,"props":390,"children":391},{},[392,404,406,412,414,419,421,427],{"type":44,"tag":230,"props":393,"children":394},{},[395,397,403],{"type":50,"value":396},"Prefer purpose-built actions over generic ",{"type":44,"tag":71,"props":398,"children":400},{"className":399},[],[401],{"type":50,"value":402},"http",{"type":50,"value":199},{"type":50,"value":405}," For Slack\u002FJira\u002FPagerDuty\u002Fetc., prefer the connector step type\n(e.g. ",{"type":44,"tag":71,"props":407,"children":409},{"className":408},[],[410],{"type":50,"value":411},"slack2.sendMessage",{"type":50,"value":413},") over a raw ",{"type":44,"tag":71,"props":415,"children":417},{"className":416},[],[418],{"type":50,"value":402},{"type":50,"value":420}," call. Discover the exact action type via ",{"type":44,"tag":71,"props":422,"children":424},{"className":423},[],[425],{"type":50,"value":426},"get_step_definitions",{"type":50,"value":428}," (or the\nstrict schema on the fallback path).",{"type":44,"tag":274,"props":430,"children":431},{},[432,452,454,460,462,468,470,476],{"type":44,"tag":230,"props":433,"children":434},{},[435,437,443,445,451],{"type":50,"value":436},"Reference step outputs as ",{"type":44,"tag":71,"props":438,"children":440},{"className":439},[],[441],{"type":50,"value":442},"steps.\u003Cname>.output",{"type":50,"value":444},", never ",{"type":44,"tag":71,"props":446,"children":448},{"className":447},[],[449],{"type":50,"value":450},"steps.\u003Cname>.with.*",{"type":50,"value":199},{"type":50,"value":453}," Trigger event data is ",{"type":44,"tag":71,"props":455,"children":457},{"className":456},[],[458],{"type":50,"value":459},"event",{"type":50,"value":461},", never\n",{"type":44,"tag":71,"props":463,"children":465},{"className":464},[],[466],{"type":50,"value":467},"trigger.event",{"type":50,"value":469}," or ",{"type":44,"tag":71,"props":471,"children":473},{"className":472},[],[474],{"type":50,"value":475},"triggers.event",{"type":50,"value":199},{"type":44,"tag":274,"props":478,"children":479},{},[480,485,487,493,495,501],{"type":44,"tag":230,"props":481,"children":482},{},[483],{"type":50,"value":484},"Don't guess connector ids.",{"type":50,"value":486}," Call ",{"type":44,"tag":71,"props":488,"children":490},{"className":489},[],[491],{"type":50,"value":492},"platform.workflows.get_connectors",{"type":50,"value":494}," (Discovery-tools path) or\n",{"type":44,"tag":71,"props":496,"children":498},{"className":497},[],[499],{"type":50,"value":500},"GET kbn:\u002Fapi\u002Fworkflows\u002Fconnectors",{"type":50,"value":502}," (Schema path), or ask the user. Placeholders should be obviously fake.",{"type":44,"tag":274,"props":504,"children":505},{},[506,511,513,519],{"type":44,"tag":230,"props":507,"children":508},{},[509],{"type":50,"value":510},"Handle failure deliberately.",{"type":50,"value":512}," Add retry or fallback behavior where the user's requirements call for resilience. Do\nnot add ",{"type":44,"tag":71,"props":514,"children":516},{"className":515},[],[517],{"type":50,"value":518},"continue: true",{"type":50,"value":520}," everywhere: it can hide a failed action and allow the workflow to report false success.",{"type":44,"tag":274,"props":522,"children":523},{},[524,529,531,537],{"type":44,"tag":230,"props":525,"children":526},{},[527],{"type":50,"value":528},"Surface gates, don't paper over them.",{"type":50,"value":530}," If the API returns ",{"type":44,"tag":71,"props":532,"children":534},{"className":533},[],[535],{"type":50,"value":536},"403 ... not available",{"type":50,"value":538},", report the required license or\nprivileges; do not silently retry or blame the UI setting.",{"type":44,"tag":59,"props":540,"children":542},{"id":541},"discovery-tools-path",[543],{"type":50,"value":234},{"type":44,"tag":53,"props":545,"children":546},{},[547,549,554,556,562,564,570,572,578,580,586,588,592,594,600],{"type":50,"value":548},"Use when ",{"type":44,"tag":71,"props":550,"children":552},{"className":551},[],[553],{"type":50,"value":242},{"type":50,"value":555}," tools are registered on the target Kibana. All calls go through\n",{"type":44,"tag":71,"props":557,"children":559},{"className":558},[],[560],{"type":50,"value":561},"POST kbn:\u002Fapi\u002Fagent_builder\u002Ftools\u002F_execute",{"type":50,"value":563}," with ",{"type":44,"tag":71,"props":565,"children":567},{"className":566},[],[568],{"type":50,"value":569},"{ \"tool_id\": \"...\", \"tool_params\": { ... } }",{"type":50,"value":571},". Response shape:\n",{"type":44,"tag":71,"props":573,"children":575},{"className":574},[],[576],{"type":50,"value":577},"{ \"results\": [ { \"type\": \"other\", \"data\": { ... }, \"tool_result_id\": \"...\" } ] }",{"type":50,"value":579}," — the payload you want is\n",{"type":44,"tag":71,"props":581,"children":583},{"className":582},[],[584],{"type":50,"value":585},".results[0].data",{"type":50,"value":587},". Send the request body from a file and write the response to a file (see ",{"type":44,"tag":102,"props":589,"children":590},{"href":167},[591],{"type":50,"value":170},{"type":50,"value":593},"),\nthen jq against that file; do not inline ",{"type":44,"tag":71,"props":595,"children":597},{"className":596},[],[598],{"type":50,"value":599},"python3 -c",{"type":50,"value":601}," on multi-line JSON.",{"type":44,"tag":53,"props":603,"children":604},{},[605,610,612,616],{"type":44,"tag":230,"props":606,"children":607},{},[608],{"type":50,"value":609},"Keep context small; minimize round-trips.",{"type":50,"value":611}," Do NOT front-load the whole step catalog — pull only the targeted details\nyou need, keep large tool output in files (not the transcript), and author in as few turns as possible (measured\nrationale: ",{"type":44,"tag":102,"props":613,"children":614},{"href":319},[615],{"type":50,"value":319},{"type":50,"value":617},").",{"type":44,"tag":619,"props":620,"children":621},"ol",{},[622,656,788,822,853],{"type":44,"tag":274,"props":623,"children":624},{},[625,630,632,638,640,646,648,654],{"type":44,"tag":230,"props":626,"children":627},{},[628],{"type":50,"value":629},"Capture the user's intent before writing YAML.",{"type":50,"value":631}," Identify, in order, the trigger (",{"type":44,"tag":71,"props":633,"children":635},{"className":634},[],[636],{"type":50,"value":637},"manual",{"type":50,"value":639}," \u002F ",{"type":44,"tag":71,"props":641,"children":643},{"className":642},[],[644],{"type":50,"value":645},"scheduled",{"type":50,"value":647}," \u002F\n",{"type":44,"tag":71,"props":649,"children":651},{"className":650},[],[652],{"type":50,"value":653},"alert",{"type":50,"value":655},"), the inputs the workflow will receive at runtime, the data sources it must read, the actions it must take,\nand the desired output. If a required dependency is unknown (e.g. a Slack connector id), ask the user or use a\nclearly-marked placeholder.",{"type":44,"tag":274,"props":657,"children":658},{},[659,664,666,782,786],{"type":44,"tag":230,"props":660,"children":661},{},[662],{"type":50,"value":663},"Look up only what you'll use.",{"type":50,"value":665}," For the specific step types this workflow needs:",{"type":44,"tag":270,"props":667,"children":668},{},[669,742,753,771],{"type":44,"tag":274,"props":670,"children":671},{},[672,678,680,686,688,694,695,701,702,708,710,716,718,724,726,732,734,740],{"type":44,"tag":71,"props":673,"children":675},{"className":674},[],[676],{"type":50,"value":677},"platform.workflows.get_step_definitions",{"type":50,"value":679}," with an exact ",{"type":44,"tag":71,"props":681,"children":683},{"className":682},[],[684],{"type":50,"value":685},"stepType",{"type":50,"value":687}," (e.g. ",{"type":44,"tag":71,"props":689,"children":691},{"className":690},[],[692],{"type":50,"value":693},"\"http\"",{"type":50,"value":134},{"type":44,"tag":71,"props":696,"children":698},{"className":697},[],[699],{"type":50,"value":700},"\"elasticsearch.esql.query\"",{"type":50,"value":149},{"type":44,"tag":71,"props":703,"children":705},{"className":704},[],[706],{"type":50,"value":707},"\"slack2.sendMessage\"",{"type":50,"value":709},"), or with ",{"type":44,"tag":71,"props":711,"children":713},{"className":712},[],[714],{"type":50,"value":715},"search",{"type":50,"value":717}," to browse. The response includes input params, config params, an\n",{"type":44,"tag":71,"props":719,"children":721},{"className":720},[],[722],{"type":50,"value":723},"outputSummary",{"type":50,"value":725}," when you pass ",{"type":44,"tag":71,"props":727,"children":729},{"className":728},[],[730],{"type":50,"value":731},"includeOutputSummary: true",{"type":50,"value":733},", and usage examples. Pass ",{"type":44,"tag":71,"props":735,"children":737},{"className":736},[],[738],{"type":50,"value":739},"includeFullSchema: true",{"type":50,"value":741}," only\nif the compact summary is insufficient.",{"type":44,"tag":274,"props":743,"children":744},{},[745,751],{"type":44,"tag":71,"props":746,"children":748},{"className":747},[],[749],{"type":50,"value":750},"platform.workflows.get_trigger_definitions",{"type":50,"value":752}," for the trigger event schema.",{"type":44,"tag":274,"props":754,"children":755},{},[756,761,763,769],{"type":44,"tag":71,"props":757,"children":759},{"className":758},[],[760],{"type":50,"value":492},{"type":50,"value":762}," to resolve real ",{"type":44,"tag":71,"props":764,"children":766},{"className":765},[],[767],{"type":50,"value":768},"connector-id",{"type":50,"value":770}," values for connector actions.",{"type":44,"tag":274,"props":772,"children":773},{},[774,780],{"type":44,"tag":71,"props":775,"children":777},{"className":776},[],[778],{"type":50,"value":779},"platform.workflows.get_examples",{"type":50,"value":781}," when you need a working YAML shape for a pattern.",{"type":44,"tag":783,"props":784,"children":785},"br",{},[],{"type":50,"value":787},"Write each response to a file and jq the field you need — don't let full tool output land in the transcript.",{"type":44,"tag":274,"props":789,"children":790},{},[791,796,798,804,806,812,814,820],{"type":44,"tag":230,"props":792,"children":793},{},[794],{"type":50,"value":795},"Draft the whole workflow in one pass.",{"type":50,"value":797}," A workflow requires ",{"type":44,"tag":71,"props":799,"children":801},{"className":800},[],[802],{"type":50,"value":803},"name",{"type":50,"value":805},", at least one trigger, and a non-empty ",{"type":44,"tag":71,"props":807,"children":809},{"className":808},[],[810],{"type":50,"value":811},"steps",{"type":50,"value":813},"\narray. Use 2-space indentation. Reference outputs as ",{"type":44,"tag":71,"props":815,"children":817},{"className":816},[],[818],{"type":50,"value":819},"steps.\u003Cname>.output.*",{"type":50,"value":821},". Build the complete YAML in a single\nedit rather than growing it across many turns.",{"type":44,"tag":274,"props":823,"children":824},{},[825,830,831,837,838,844,846,851],{"type":44,"tag":230,"props":826,"children":827},{},[828],{"type":50,"value":829},"Validate once.",{"type":50,"value":486},{"type":44,"tag":71,"props":832,"children":834},{"className":833},[],[835],{"type":50,"value":836},"platform.workflows.validate_workflow",{"type":50,"value":563},{"type":44,"tag":71,"props":839,"children":841},{"className":840},[],[842],{"type":50,"value":843},"{ \"yaml\": \"...\" }",{"type":50,"value":845},". On failure it returns\nerrors + step definitions for referenced step types automatically, so you rarely need a second ",{"type":44,"tag":71,"props":847,"children":849},{"className":848},[],[850],{"type":50,"value":426},{"type":50,"value":852},"\ncall. Fix all reported issues in a single edit, then re-validate.",{"type":44,"tag":274,"props":854,"children":855},{},[856,861,863,869,871,877,879,885],{"type":44,"tag":230,"props":857,"children":858},{},[859],{"type":50,"value":860},"Test, save, and run.",{"type":50,"value":862}," See ",{"type":44,"tag":102,"props":864,"children":866},{"href":865},"#test--save--run",[867],{"type":50,"value":868},"Test \u002F save \u002F run",{"type":50,"value":870}," below. Use\n",{"type":44,"tag":71,"props":872,"children":874},{"className":873},[],[875],{"type":50,"value":876},"platform.workflows.workflow_execute_step",{"type":50,"value":878}," to iterate on a single step (with ",{"type":44,"tag":71,"props":880,"children":882},{"className":881},[],[883],{"type":50,"value":884},"confirmation_body",{"type":50,"value":886}," for unsafe steps).",{"type":44,"tag":59,"props":888,"children":890},{"id":889},"schema-path-last-resort",[891],{"type":50,"value":892},"Schema path (last resort)",{"type":44,"tag":53,"props":894,"children":895},{},[896,898,903,905,909],{"type":50,"value":897},"Only for Kibanas without the ",{"type":44,"tag":71,"props":899,"children":901},{"className":900},[],[902],{"type":50,"value":242},{"type":50,"value":904}," tools (see the probe above). Full recipe:\n",{"type":44,"tag":102,"props":906,"children":907},{"href":296},[908],{"type":50,"value":296},{"type":50,"value":199},{"type":44,"tag":59,"props":911,"children":913},{"id":912},"test-save-run",[914],{"type":50,"value":868},{"type":44,"tag":53,"props":916,"children":917},{},[918],{"type":50,"value":919},"Shared final phase for both paths.",{"type":44,"tag":619,"props":921,"children":922},{},[923,962,1042,1117],{"type":44,"tag":274,"props":924,"children":925},{},[926,931,932,937,939,945,947,953,955,960],{"type":44,"tag":230,"props":927,"children":928},{},[929],{"type":50,"value":930},"Test only an execution-safe draft.",{"type":50,"value":486},{"type":44,"tag":71,"props":933,"children":935},{"className":934},[],[936],{"type":50,"value":347},{"type":50,"value":938}," with the YAML inline as ",{"type":44,"tag":71,"props":940,"children":942},{"className":941},[],[943],{"type":50,"value":944},"workflowYaml",{"type":50,"value":946}," and\nthe run-time ",{"type":44,"tag":71,"props":948,"children":950},{"className":949},[],[951],{"type":50,"value":952},"inputs",{"type":50,"value":954},". For any workflow that writes \u002F notifies \u002F calls external services, replace those steps with\n",{"type":44,"tag":71,"props":956,"children":958},{"className":957},[],[959],{"type":50,"value":363},{"type":50,"value":961}," in the tested copy first, then restore them and save the workflow disabled.",{"type":44,"tag":274,"props":963,"children":964},{},[965,970,972,978,980,986,988,994,996,1002,1003,1009,1010,1016,1018,1024,1026,1032,1034,1040],{"type":44,"tag":230,"props":966,"children":967},{},[968],{"type":50,"value":969},"Poll the execution.",{"type":50,"value":971}," The response carries a ",{"type":44,"tag":71,"props":973,"children":975},{"className":974},[],[976],{"type":50,"value":977},"workflowExecutionId",{"type":50,"value":979},". Poll\n",{"type":44,"tag":71,"props":981,"children":983},{"className":982},[],[984],{"type":50,"value":985},"GET kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}",{"type":50,"value":987}," until ",{"type":44,"tag":71,"props":989,"children":991},{"className":990},[],[992],{"type":50,"value":993},"status",{"type":50,"value":995}," is one of ",{"type":44,"tag":71,"props":997,"children":999},{"className":998},[],[1000],{"type":50,"value":1001},"completed",{"type":50,"value":134},{"type":44,"tag":71,"props":1004,"children":1006},{"className":1005},[],[1007],{"type":50,"value":1008},"failed",{"type":50,"value":134},{"type":44,"tag":71,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":50,"value":1015},"cancelled",{"type":50,"value":1017},", or\n",{"type":44,"tag":71,"props":1019,"children":1021},{"className":1020},[],[1022],{"type":50,"value":1023},"timed_out",{"type":50,"value":1025},"; then fetch ",{"type":44,"tag":71,"props":1027,"children":1029},{"className":1028},[],[1030],{"type":50,"value":1031},"GET kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}\u002Flogs",{"type":50,"value":1033}," for step-by-step output. Only treat\n",{"type":44,"tag":71,"props":1035,"children":1037},{"className":1036},[],[1038],{"type":50,"value":1039},"status: completed",{"type":50,"value":1041}," as success.",{"type":44,"tag":274,"props":1043,"children":1044},{},[1045,1050,1051,1057,1058,1064,1066,1072,1074,1080,1082,1087,1088,1094,1095,1100,1101,1107,1109,1115],{"type":44,"tag":230,"props":1046,"children":1047},{},[1048],{"type":50,"value":1049},"Save.",{"type":50,"value":341},{"type":44,"tag":71,"props":1052,"children":1054},{"className":1053},[],[1055],{"type":50,"value":1056},"POST kbn:\u002Fapi\u002Fworkflows\u002Fworkflow",{"type":50,"value":563},{"type":44,"tag":71,"props":1059,"children":1061},{"className":1060},[],[1062],{"type":50,"value":1063},"{ yaml, id? }",{"type":50,"value":1065},". Save side-effecting workflows with\n",{"type":44,"tag":71,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":50,"value":1071},"enabled: false",{"type":50,"value":1073}," until the user has authorized a real run. Subsequent edits use\n",{"type":44,"tag":71,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":50,"value":1079},"PUT kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}",{"type":50,"value":1081}," and may update ",{"type":44,"tag":71,"props":1083,"children":1085},{"className":1084},[],[1086],{"type":50,"value":18},{"type":50,"value":134},{"type":44,"tag":71,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":50,"value":1093},"enabled",{"type":50,"value":134},{"type":44,"tag":71,"props":1096,"children":1098},{"className":1097},[],[1099],{"type":50,"value":803},{"type":50,"value":134},{"type":44,"tag":71,"props":1102,"children":1104},{"className":1103},[],[1105],{"type":50,"value":1106},"tags",{"type":50,"value":1108},", or ",{"type":44,"tag":71,"props":1110,"children":1112},{"className":1111},[],[1113],{"type":50,"value":1114},"description",{"type":50,"value":1116}," (partial\nupdates supported).",{"type":44,"tag":274,"props":1118,"children":1119},{},[1120,1125,1127,1133,1135,1140],{"type":44,"tag":230,"props":1121,"children":1122},{},[1123],{"type":50,"value":1124},"Run only when authorized.",{"type":50,"value":1126}," Enable the workflow, then call ",{"type":44,"tag":71,"props":1128,"children":1130},{"className":1129},[],[1131],{"type":50,"value":1132},"POST kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}\u002Frun",{"type":50,"value":1134}," with the\nsame ",{"type":44,"tag":71,"props":1136,"children":1138},{"className":1137},[],[1139],{"type":50,"value":952},{"type":50,"value":1141}," shape used at test time. Inspect via the execution + logs endpoints.",{"type":44,"tag":59,"props":1143,"children":1145},{"id":1144},"workflow-yaml-quick-reference",[1146],{"type":50,"value":1147},"Workflow YAML Quick Reference",{"type":44,"tag":1149,"props":1150,"children":1154},"pre",{"className":1151,"code":1152,"language":18,"meta":1153,"style":1153},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","version: \"1\"\nname: Manual Hello Workflow\ndescription: Logs a hello message from a manual workflow\nenabled: true\ntags: [\"demo\", \"workflow\"]\n\ntriggers:\n  - type: manual\n    inputs:\n      properties:\n        name:\n          type: string\n          description: Name to greet\n          default: \"world\"\n\nsteps:\n  - name: log_hello\n    type: console\n    with:\n      message: \"Hello {{ inputs.name }}\"\n","",[1155],{"type":44,"tag":71,"props":1156,"children":1157},{"__ignoreMap":1153},[1158,1192,1209,1226,1244,1297,1306,1320,1343,1356,1369,1382,1400,1418,1444,1452,1464,1486,1504,1517],{"type":44,"tag":1159,"props":1160,"children":1163},"span",{"class":1161,"line":1162},"line",1,[1164,1170,1176,1181,1187],{"type":44,"tag":1159,"props":1165,"children":1167},{"style":1166},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1168],{"type":50,"value":1169},"version",{"type":44,"tag":1159,"props":1171,"children":1173},{"style":1172},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1174],{"type":50,"value":1175},":",{"type":44,"tag":1159,"props":1177,"children":1178},{"style":1172},[1179],{"type":50,"value":1180}," \"",{"type":44,"tag":1159,"props":1182,"children":1184},{"style":1183},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1185],{"type":50,"value":1186},"1",{"type":44,"tag":1159,"props":1188,"children":1189},{"style":1172},[1190],{"type":50,"value":1191},"\"\n",{"type":44,"tag":1159,"props":1193,"children":1195},{"class":1161,"line":1194},2,[1196,1200,1204],{"type":44,"tag":1159,"props":1197,"children":1198},{"style":1166},[1199],{"type":50,"value":803},{"type":44,"tag":1159,"props":1201,"children":1202},{"style":1172},[1203],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1205,"children":1206},{"style":1183},[1207],{"type":50,"value":1208}," Manual Hello Workflow\n",{"type":44,"tag":1159,"props":1210,"children":1212},{"class":1161,"line":1211},3,[1213,1217,1221],{"type":44,"tag":1159,"props":1214,"children":1215},{"style":1166},[1216],{"type":50,"value":1114},{"type":44,"tag":1159,"props":1218,"children":1219},{"style":1172},[1220],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1222,"children":1223},{"style":1183},[1224],{"type":50,"value":1225}," Logs a hello message from a manual workflow\n",{"type":44,"tag":1159,"props":1227,"children":1229},{"class":1161,"line":1228},4,[1230,1234,1238],{"type":44,"tag":1159,"props":1231,"children":1232},{"style":1166},[1233],{"type":50,"value":1093},{"type":44,"tag":1159,"props":1235,"children":1236},{"style":1172},[1237],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1239,"children":1241},{"style":1240},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[1242],{"type":50,"value":1243}," true\n",{"type":44,"tag":1159,"props":1245,"children":1247},{"class":1161,"line":1246},5,[1248,1252,1256,1261,1266,1271,1275,1280,1284,1288,1292],{"type":44,"tag":1159,"props":1249,"children":1250},{"style":1166},[1251],{"type":50,"value":1106},{"type":44,"tag":1159,"props":1253,"children":1254},{"style":1172},[1255],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1257,"children":1258},{"style":1172},[1259],{"type":50,"value":1260}," [",{"type":44,"tag":1159,"props":1262,"children":1263},{"style":1172},[1264],{"type":50,"value":1265},"\"",{"type":44,"tag":1159,"props":1267,"children":1268},{"style":1183},[1269],{"type":50,"value":1270},"demo",{"type":44,"tag":1159,"props":1272,"children":1273},{"style":1172},[1274],{"type":50,"value":1265},{"type":44,"tag":1159,"props":1276,"children":1277},{"style":1172},[1278],{"type":50,"value":1279},",",{"type":44,"tag":1159,"props":1281,"children":1282},{"style":1172},[1283],{"type":50,"value":1180},{"type":44,"tag":1159,"props":1285,"children":1286},{"style":1183},[1287],{"type":50,"value":14},{"type":44,"tag":1159,"props":1289,"children":1290},{"style":1172},[1291],{"type":50,"value":1265},{"type":44,"tag":1159,"props":1293,"children":1294},{"style":1172},[1295],{"type":50,"value":1296},"]\n",{"type":44,"tag":1159,"props":1298,"children":1300},{"class":1161,"line":1299},6,[1301],{"type":44,"tag":1159,"props":1302,"children":1303},{"emptyLinePlaceholder":38},[1304],{"type":50,"value":1305},"\n",{"type":44,"tag":1159,"props":1307,"children":1309},{"class":1161,"line":1308},7,[1310,1315],{"type":44,"tag":1159,"props":1311,"children":1312},{"style":1166},[1313],{"type":50,"value":1314},"triggers",{"type":44,"tag":1159,"props":1316,"children":1317},{"style":1172},[1318],{"type":50,"value":1319},":\n",{"type":44,"tag":1159,"props":1321,"children":1323},{"class":1161,"line":1322},8,[1324,1329,1334,1338],{"type":44,"tag":1159,"props":1325,"children":1326},{"style":1172},[1327],{"type":50,"value":1328},"  -",{"type":44,"tag":1159,"props":1330,"children":1331},{"style":1166},[1332],{"type":50,"value":1333}," type",{"type":44,"tag":1159,"props":1335,"children":1336},{"style":1172},[1337],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1339,"children":1340},{"style":1183},[1341],{"type":50,"value":1342}," manual\n",{"type":44,"tag":1159,"props":1344,"children":1346},{"class":1161,"line":1345},9,[1347,1352],{"type":44,"tag":1159,"props":1348,"children":1349},{"style":1166},[1350],{"type":50,"value":1351},"    inputs",{"type":44,"tag":1159,"props":1353,"children":1354},{"style":1172},[1355],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1357,"children":1359},{"class":1161,"line":1358},10,[1360,1365],{"type":44,"tag":1159,"props":1361,"children":1362},{"style":1166},[1363],{"type":50,"value":1364},"      properties",{"type":44,"tag":1159,"props":1366,"children":1367},{"style":1172},[1368],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1370,"children":1372},{"class":1161,"line":1371},11,[1373,1378],{"type":44,"tag":1159,"props":1374,"children":1375},{"style":1166},[1376],{"type":50,"value":1377},"        name",{"type":44,"tag":1159,"props":1379,"children":1380},{"style":1172},[1381],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1383,"children":1385},{"class":1161,"line":1384},12,[1386,1391,1395],{"type":44,"tag":1159,"props":1387,"children":1388},{"style":1166},[1389],{"type":50,"value":1390},"          type",{"type":44,"tag":1159,"props":1392,"children":1393},{"style":1172},[1394],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1396,"children":1397},{"style":1183},[1398],{"type":50,"value":1399}," string\n",{"type":44,"tag":1159,"props":1401,"children":1403},{"class":1161,"line":1402},13,[1404,1409,1413],{"type":44,"tag":1159,"props":1405,"children":1406},{"style":1166},[1407],{"type":50,"value":1408},"          description",{"type":44,"tag":1159,"props":1410,"children":1411},{"style":1172},[1412],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1414,"children":1415},{"style":1183},[1416],{"type":50,"value":1417}," Name to greet\n",{"type":44,"tag":1159,"props":1419,"children":1421},{"class":1161,"line":1420},14,[1422,1427,1431,1435,1440],{"type":44,"tag":1159,"props":1423,"children":1424},{"style":1166},[1425],{"type":50,"value":1426},"          default",{"type":44,"tag":1159,"props":1428,"children":1429},{"style":1172},[1430],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1432,"children":1433},{"style":1172},[1434],{"type":50,"value":1180},{"type":44,"tag":1159,"props":1436,"children":1437},{"style":1183},[1438],{"type":50,"value":1439},"world",{"type":44,"tag":1159,"props":1441,"children":1442},{"style":1172},[1443],{"type":50,"value":1191},{"type":44,"tag":1159,"props":1445,"children":1447},{"class":1161,"line":1446},15,[1448],{"type":44,"tag":1159,"props":1449,"children":1450},{"emptyLinePlaceholder":38},[1451],{"type":50,"value":1305},{"type":44,"tag":1159,"props":1453,"children":1455},{"class":1161,"line":1454},16,[1456,1460],{"type":44,"tag":1159,"props":1457,"children":1458},{"style":1166},[1459],{"type":50,"value":811},{"type":44,"tag":1159,"props":1461,"children":1462},{"style":1172},[1463],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1465,"children":1467},{"class":1161,"line":1466},17,[1468,1472,1477,1481],{"type":44,"tag":1159,"props":1469,"children":1470},{"style":1172},[1471],{"type":50,"value":1328},{"type":44,"tag":1159,"props":1473,"children":1474},{"style":1166},[1475],{"type":50,"value":1476}," name",{"type":44,"tag":1159,"props":1478,"children":1479},{"style":1172},[1480],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1482,"children":1483},{"style":1183},[1484],{"type":50,"value":1485}," log_hello\n",{"type":44,"tag":1159,"props":1487,"children":1489},{"class":1161,"line":1488},18,[1490,1495,1499],{"type":44,"tag":1159,"props":1491,"children":1492},{"style":1166},[1493],{"type":50,"value":1494},"    type",{"type":44,"tag":1159,"props":1496,"children":1497},{"style":1172},[1498],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1500,"children":1501},{"style":1183},[1502],{"type":50,"value":1503}," console\n",{"type":44,"tag":1159,"props":1505,"children":1507},{"class":1161,"line":1506},19,[1508,1513],{"type":44,"tag":1159,"props":1509,"children":1510},{"style":1166},[1511],{"type":50,"value":1512},"    with",{"type":44,"tag":1159,"props":1514,"children":1515},{"style":1172},[1516],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1518,"children":1520},{"class":1161,"line":1519},20,[1521,1526,1530,1534,1539],{"type":44,"tag":1159,"props":1522,"children":1523},{"style":1166},[1524],{"type":50,"value":1525},"      message",{"type":44,"tag":1159,"props":1527,"children":1528},{"style":1172},[1529],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1531,"children":1532},{"style":1172},[1533],{"type":50,"value":1180},{"type":44,"tag":1159,"props":1535,"children":1536},{"style":1183},[1537],{"type":50,"value":1538},"Hello {{ inputs.name }}",{"type":44,"tag":1159,"props":1540,"children":1541},{"style":1172},[1542],{"type":50,"value":1191},{"type":44,"tag":53,"props":1544,"children":1545},{},[1546],{"type":50,"value":1547},"An ordinary action step can use fields like these when its strict schema allows them:",{"type":44,"tag":1149,"props":1549,"children":1551},{"className":1151,"code":1550,"language":18,"meta":1153,"style":1153},"- name: unique_step_name\n  type: step_type\n  with:\n    param: value\n  connector-id: connector-id-for-connector-actions # connector actions only\n  if: \"steps.previous.output.ok: true\"\n  timeout: \"30s\"\n  on-failure:\n    retry:\n      max-attempts: 3\n      delay: \"5s\"\n    fallback:\n      - name: handle_error\n        type: console\n        with:\n          message: \"Step failed\"\n",[1552],{"type":44,"tag":71,"props":1553,"children":1554},{"__ignoreMap":1153},[1555,1576,1593,1605,1622,1645,1670,1695,1707,1719,1737,1762,1774,1795,1811,1823],{"type":44,"tag":1159,"props":1556,"children":1557},{"class":1161,"line":1162},[1558,1563,1567,1571],{"type":44,"tag":1159,"props":1559,"children":1560},{"style":1172},[1561],{"type":50,"value":1562},"-",{"type":44,"tag":1159,"props":1564,"children":1565},{"style":1166},[1566],{"type":50,"value":1476},{"type":44,"tag":1159,"props":1568,"children":1569},{"style":1172},[1570],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1572,"children":1573},{"style":1183},[1574],{"type":50,"value":1575}," unique_step_name\n",{"type":44,"tag":1159,"props":1577,"children":1578},{"class":1161,"line":1194},[1579,1584,1588],{"type":44,"tag":1159,"props":1580,"children":1581},{"style":1166},[1582],{"type":50,"value":1583},"  type",{"type":44,"tag":1159,"props":1585,"children":1586},{"style":1172},[1587],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1589,"children":1590},{"style":1183},[1591],{"type":50,"value":1592}," step_type\n",{"type":44,"tag":1159,"props":1594,"children":1595},{"class":1161,"line":1211},[1596,1601],{"type":44,"tag":1159,"props":1597,"children":1598},{"style":1166},[1599],{"type":50,"value":1600},"  with",{"type":44,"tag":1159,"props":1602,"children":1603},{"style":1172},[1604],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1606,"children":1607},{"class":1161,"line":1228},[1608,1613,1617],{"type":44,"tag":1159,"props":1609,"children":1610},{"style":1166},[1611],{"type":50,"value":1612},"    param",{"type":44,"tag":1159,"props":1614,"children":1615},{"style":1172},[1616],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1618,"children":1619},{"style":1183},[1620],{"type":50,"value":1621}," value\n",{"type":44,"tag":1159,"props":1623,"children":1624},{"class":1161,"line":1246},[1625,1630,1634,1639],{"type":44,"tag":1159,"props":1626,"children":1627},{"style":1166},[1628],{"type":50,"value":1629},"  connector-id",{"type":44,"tag":1159,"props":1631,"children":1632},{"style":1172},[1633],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1635,"children":1636},{"style":1183},[1637],{"type":50,"value":1638}," connector-id-for-connector-actions",{"type":44,"tag":1159,"props":1640,"children":1642},{"style":1641},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1643],{"type":50,"value":1644}," # connector actions only\n",{"type":44,"tag":1159,"props":1646,"children":1647},{"class":1161,"line":1299},[1648,1653,1657,1661,1666],{"type":44,"tag":1159,"props":1649,"children":1650},{"style":1166},[1651],{"type":50,"value":1652},"  if",{"type":44,"tag":1159,"props":1654,"children":1655},{"style":1172},[1656],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1658,"children":1659},{"style":1172},[1660],{"type":50,"value":1180},{"type":44,"tag":1159,"props":1662,"children":1663},{"style":1183},[1664],{"type":50,"value":1665},"steps.previous.output.ok: true",{"type":44,"tag":1159,"props":1667,"children":1668},{"style":1172},[1669],{"type":50,"value":1191},{"type":44,"tag":1159,"props":1671,"children":1672},{"class":1161,"line":1308},[1673,1678,1682,1686,1691],{"type":44,"tag":1159,"props":1674,"children":1675},{"style":1166},[1676],{"type":50,"value":1677},"  timeout",{"type":44,"tag":1159,"props":1679,"children":1680},{"style":1172},[1681],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1683,"children":1684},{"style":1172},[1685],{"type":50,"value":1180},{"type":44,"tag":1159,"props":1687,"children":1688},{"style":1183},[1689],{"type":50,"value":1690},"30s",{"type":44,"tag":1159,"props":1692,"children":1693},{"style":1172},[1694],{"type":50,"value":1191},{"type":44,"tag":1159,"props":1696,"children":1697},{"class":1161,"line":1322},[1698,1703],{"type":44,"tag":1159,"props":1699,"children":1700},{"style":1166},[1701],{"type":50,"value":1702},"  on-failure",{"type":44,"tag":1159,"props":1704,"children":1705},{"style":1172},[1706],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1708,"children":1709},{"class":1161,"line":1345},[1710,1715],{"type":44,"tag":1159,"props":1711,"children":1712},{"style":1166},[1713],{"type":50,"value":1714},"    retry",{"type":44,"tag":1159,"props":1716,"children":1717},{"style":1172},[1718],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1720,"children":1721},{"class":1161,"line":1358},[1722,1727,1731],{"type":44,"tag":1159,"props":1723,"children":1724},{"style":1166},[1725],{"type":50,"value":1726},"      max-attempts",{"type":44,"tag":1159,"props":1728,"children":1729},{"style":1172},[1730],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1732,"children":1734},{"style":1733},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1735],{"type":50,"value":1736}," 3\n",{"type":44,"tag":1159,"props":1738,"children":1739},{"class":1161,"line":1371},[1740,1745,1749,1753,1758],{"type":44,"tag":1159,"props":1741,"children":1742},{"style":1166},[1743],{"type":50,"value":1744},"      delay",{"type":44,"tag":1159,"props":1746,"children":1747},{"style":1172},[1748],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1750,"children":1751},{"style":1172},[1752],{"type":50,"value":1180},{"type":44,"tag":1159,"props":1754,"children":1755},{"style":1183},[1756],{"type":50,"value":1757},"5s",{"type":44,"tag":1159,"props":1759,"children":1760},{"style":1172},[1761],{"type":50,"value":1191},{"type":44,"tag":1159,"props":1763,"children":1764},{"class":1161,"line":1384},[1765,1770],{"type":44,"tag":1159,"props":1766,"children":1767},{"style":1166},[1768],{"type":50,"value":1769},"    fallback",{"type":44,"tag":1159,"props":1771,"children":1772},{"style":1172},[1773],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1775,"children":1776},{"class":1161,"line":1402},[1777,1782,1786,1790],{"type":44,"tag":1159,"props":1778,"children":1779},{"style":1172},[1780],{"type":50,"value":1781},"      -",{"type":44,"tag":1159,"props":1783,"children":1784},{"style":1166},[1785],{"type":50,"value":1476},{"type":44,"tag":1159,"props":1787,"children":1788},{"style":1172},[1789],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1791,"children":1792},{"style":1183},[1793],{"type":50,"value":1794}," handle_error\n",{"type":44,"tag":1159,"props":1796,"children":1797},{"class":1161,"line":1420},[1798,1803,1807],{"type":44,"tag":1159,"props":1799,"children":1800},{"style":1166},[1801],{"type":50,"value":1802},"        type",{"type":44,"tag":1159,"props":1804,"children":1805},{"style":1172},[1806],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1808,"children":1809},{"style":1183},[1810],{"type":50,"value":1503},{"type":44,"tag":1159,"props":1812,"children":1813},{"class":1161,"line":1446},[1814,1819],{"type":44,"tag":1159,"props":1815,"children":1816},{"style":1166},[1817],{"type":50,"value":1818},"        with",{"type":44,"tag":1159,"props":1820,"children":1821},{"style":1172},[1822],{"type":50,"value":1319},{"type":44,"tag":1159,"props":1824,"children":1825},{"class":1161,"line":1454},[1826,1831,1835,1839,1844],{"type":44,"tag":1159,"props":1827,"children":1828},{"style":1166},[1829],{"type":50,"value":1830},"          message",{"type":44,"tag":1159,"props":1832,"children":1833},{"style":1172},[1834],{"type":50,"value":1175},{"type":44,"tag":1159,"props":1836,"children":1837},{"style":1172},[1838],{"type":50,"value":1180},{"type":44,"tag":1159,"props":1840,"children":1841},{"style":1183},[1842],{"type":50,"value":1843},"Step failed",{"type":44,"tag":1159,"props":1845,"children":1846},{"style":1172},[1847],{"type":50,"value":1191},{"type":44,"tag":53,"props":1849,"children":1850},{},[1851,1853,1859,1861,1867,1869,1875],{"type":50,"value":1852},"Use ",{"type":44,"tag":71,"props":1854,"children":1856},{"className":1855},[],[1857],{"type":50,"value":1858},"{{ ... }}",{"type":50,"value":1860}," when rendering text. Use ",{"type":44,"tag":71,"props":1862,"children":1864},{"className":1863},[],[1865],{"type":50,"value":1866},"${{ ... }}",{"type":50,"value":1868}," when an entire value must retain its native type, for example\n",{"type":44,"tag":71,"props":1870,"children":1872},{"className":1871},[],[1873],{"type":50,"value":1874},"documents: \"${{ steps.search.output.hits.hits }}\"",{"type":50,"value":199},{"type":44,"tag":53,"props":1877,"children":1878},{},[1879],{"type":50,"value":1880},"Common step types include:",{"type":44,"tag":1882,"props":1883,"children":1884},"table",{},[1885,1904],{"type":44,"tag":1886,"props":1887,"children":1888},"thead",{},[1889],{"type":44,"tag":1890,"props":1891,"children":1892},"tr",{},[1893,1899],{"type":44,"tag":1894,"props":1895,"children":1896},"th",{},[1897],{"type":50,"value":1898},"Step type",{"type":44,"tag":1894,"props":1900,"children":1901},{},[1902],{"type":50,"value":1903},"Use for",{"type":44,"tag":1905,"props":1906,"children":1907},"tbody",{},[1908,1925,1942,1959,1976,1993,2016,2033,2050,2067,2083],{"type":44,"tag":1890,"props":1909,"children":1910},{},[1911,1920],{"type":44,"tag":1912,"props":1913,"children":1914},"td",{},[1915],{"type":44,"tag":71,"props":1916,"children":1918},{"className":1917},[],[1919],{"type":50,"value":363},{"type":44,"tag":1912,"props":1921,"children":1922},{},[1923],{"type":50,"value":1924},"Debug logging during tests",{"type":44,"tag":1890,"props":1926,"children":1927},{},[1928,1937],{"type":44,"tag":1912,"props":1929,"children":1930},{},[1931],{"type":44,"tag":71,"props":1932,"children":1934},{"className":1933},[],[1935],{"type":50,"value":1936},"elasticsearch.search",{"type":44,"tag":1912,"props":1938,"children":1939},{},[1940],{"type":50,"value":1941},"Query Elasticsearch with Query DSL",{"type":44,"tag":1890,"props":1943,"children":1944},{},[1945,1954],{"type":44,"tag":1912,"props":1946,"children":1947},{},[1948],{"type":44,"tag":71,"props":1949,"children":1951},{"className":1950},[],[1952],{"type":50,"value":1953},"elasticsearch.esql.query",{"type":44,"tag":1912,"props":1955,"children":1956},{},[1957],{"type":50,"value":1958},"Query Elasticsearch with ES|QL",{"type":44,"tag":1890,"props":1960,"children":1961},{},[1962,1971],{"type":44,"tag":1912,"props":1963,"children":1964},{},[1965],{"type":44,"tag":71,"props":1966,"children":1968},{"className":1967},[],[1969],{"type":50,"value":1970},"elasticsearch.bulk",{"type":44,"tag":1912,"props":1972,"children":1973},{},[1974],{"type":50,"value":1975},"Bulk indexing",{"type":44,"tag":1890,"props":1977,"children":1978},{},[1979,1988],{"type":44,"tag":1912,"props":1980,"children":1981},{},[1982],{"type":44,"tag":71,"props":1983,"children":1985},{"className":1984},[],[1986],{"type":50,"value":1987},"kibana.request",{"type":44,"tag":1912,"props":1989,"children":1990},{},[1991],{"type":50,"value":1992},"Call a Kibana API",{"type":44,"tag":1890,"props":1994,"children":1995},{},[1996,2005],{"type":44,"tag":1912,"props":1997,"children":1998},{},[1999],{"type":44,"tag":71,"props":2000,"children":2002},{"className":2001},[],[2003],{"type":50,"value":2004},"data.set",{"type":44,"tag":1912,"props":2006,"children":2007},{},[2008,2010],{"type":50,"value":2009},"Set values under ",{"type":44,"tag":71,"props":2011,"children":2013},{"className":2012},[],[2014],{"type":50,"value":2015},"variables",{"type":44,"tag":1890,"props":2017,"children":2018},{},[2019,2028],{"type":44,"tag":1912,"props":2020,"children":2021},{},[2022],{"type":44,"tag":71,"props":2023,"children":2025},{"className":2024},[],[2026],{"type":50,"value":2027},"if",{"type":44,"tag":1912,"props":2029,"children":2030},{},[2031],{"type":50,"value":2032},"Branch on a KQL-style condition",{"type":44,"tag":1890,"props":2034,"children":2035},{},[2036,2045],{"type":44,"tag":1912,"props":2037,"children":2038},{},[2039],{"type":44,"tag":71,"props":2040,"children":2042},{"className":2041},[],[2043],{"type":50,"value":2044},"foreach",{"type":44,"tag":1912,"props":2046,"children":2047},{},[2048],{"type":50,"value":2049},"Loop over a collection",{"type":44,"tag":1890,"props":2051,"children":2052},{},[2053,2062],{"type":44,"tag":1912,"props":2054,"children":2055},{},[2056],{"type":44,"tag":71,"props":2057,"children":2059},{"className":2058},[],[2060],{"type":50,"value":2061},"wait",{"type":44,"tag":1912,"props":2063,"children":2064},{},[2065],{"type":50,"value":2066},"Pause execution",{"type":44,"tag":1890,"props":2068,"children":2069},{},[2070,2078],{"type":44,"tag":1912,"props":2071,"children":2072},{},[2073],{"type":44,"tag":71,"props":2074,"children":2076},{"className":2075},[],[2077],{"type":50,"value":402},{"type":44,"tag":1912,"props":2079,"children":2080},{},[2081],{"type":50,"value":2082},"Generic HTTP requests",{"type":44,"tag":1890,"props":2084,"children":2085},{},[2086,2095],{"type":44,"tag":1912,"props":2087,"children":2088},{},[2089],{"type":44,"tag":71,"props":2090,"children":2092},{"className":2091},[],[2093],{"type":50,"value":2094},"workflow.execute",{"type":44,"tag":1912,"props":2096,"children":2097},{},[2098],{"type":50,"value":2099},"Run another saved workflow",{"type":44,"tag":53,"props":2101,"children":2102},{},[2103,2105,2110,2112,2118,2120,2125],{"type":50,"value":2104},"This is not an exhaustive compatibility list. On the Discovery-tools path, ",{"type":44,"tag":71,"props":2106,"children":2108},{"className":2107},[],[2109],{"type":50,"value":677},{"type":50,"value":2111},"\nanswers \"does step X exist and what does it take\". On the schema path, ",{"type":44,"tag":71,"props":2113,"children":2115},{"className":2114},[],[2116],{"type":50,"value":2117},"GET kbn:\u002Fapi\u002Fworkflows\u002Fschema?loose=false",{"type":50,"value":2119}," is\nthe source of truth, and ",{"type":44,"tag":71,"props":2121,"children":2123},{"className":2122},[],[2124],{"type":50,"value":500},{"type":50,"value":2126}," lists configured connector instances.",{"type":44,"tag":53,"props":2128,"children":2129},{},[2130,2135],{"type":44,"tag":71,"props":2131,"children":2133},{"className":2132},[],[2134],{"type":50,"value":2004},{"type":50,"value":2136}," stores variables for the current execution; it does not persist durable data. Use an Elasticsearch or Kibana\nwrite action when the user asks to retain data after the execution.",{"type":44,"tag":59,"props":2138,"children":2140},{"id":2139},"examples",[2141],{"type":50,"value":2142},"Examples",{"type":44,"tag":53,"props":2144,"children":2145},{},[2146,2151,2153,2158,2160,2166,2168,2173,2175,2181],{"type":44,"tag":230,"props":2147,"children":2148},{},[2149],{"type":50,"value":2150},"Manual hello (smallest possible draft):",{"type":50,"value":2152}," \"Make a workflow that logs hello.\" → manual trigger + one ",{"type":44,"tag":71,"props":2154,"children":2156},{"className":2155},[],[2157],{"type":50,"value":363},{"type":50,"value":2159}," step\nthat prints ",{"type":44,"tag":71,"props":2161,"children":2163},{"className":2162},[],[2164],{"type":50,"value":2165},"Hello {{ inputs.name | default: \"world\" }}",{"type":50,"value":2167},". Test with ",{"type":44,"tag":71,"props":2169,"children":2171},{"className":2170},[],[2172],{"type":50,"value":347},{"type":50,"value":2174},". See\n",{"type":44,"tag":102,"props":2176,"children":2178},{"href":2177},"references\u002Fdemo-test-loop.md",[2179],{"type":50,"value":2180},"Demo Test Loop",{"type":50,"value":199},{"type":44,"tag":53,"props":2183,"children":2184},{},[2185,2190,2192,2198,2200,2205,2207,2213,2215,2220,2222,2227,2229,2235,2237,2243],{"type":44,"tag":230,"props":2186,"children":2187},{},[2188],{"type":50,"value":2189},"Scheduled health check:",{"type":50,"value":2191}," \"Every 5 minutes, ping ",{"type":44,"tag":71,"props":2193,"children":2195},{"className":2194},[],[2196],{"type":50,"value":2197},"https:\u002F\u002Fapi.example.com\u002Fhealth",{"type":50,"value":2199}," and log the response.\" → ",{"type":44,"tag":71,"props":2201,"children":2203},{"className":2202},[],[2204],{"type":50,"value":645},{"type":50,"value":2206},"\ntrigger (",{"type":44,"tag":71,"props":2208,"children":2210},{"className":2209},[],[2211],{"type":50,"value":2212},"every: 5m",{"type":50,"value":2214},") + ",{"type":44,"tag":71,"props":2216,"children":2218},{"className":2217},[],[2219],{"type":50,"value":402},{"type":50,"value":2221}," step + ",{"type":44,"tag":71,"props":2223,"children":2225},{"className":2224},[],[2226],{"type":50,"value":363},{"type":50,"value":2228},". Look up the exact ",{"type":44,"tag":71,"props":2230,"children":2232},{"className":2231},[],[2233],{"type":50,"value":2234},"with",{"type":50,"value":2236}," shape with ",{"type":44,"tag":71,"props":2238,"children":2240},{"className":2239},[],[2241],{"type":50,"value":2242},"get_step_definitions(\"http\")",{"type":50,"value":2244},". Add\nbounded retry if requested.",{"type":44,"tag":53,"props":2246,"children":2247},{},[2248,2253,2255,2260,2262,2267,2269,2275,2277,2283,2285,2291,2293,2299,2301,2306,2308,2314,2316,2321,2323,2329],{"type":44,"tag":230,"props":2249,"children":2250},{},[2251],{"type":50,"value":2252},"Alert-triggered case + Slack notify:",{"type":50,"value":2254}," \"When a Security alert fires, create a case and post to #soc-incidents.\" →\n",{"type":44,"tag":71,"props":2256,"children":2258},{"className":2257},[],[2259],{"type":50,"value":653},{"type":50,"value":2261}," trigger + ",{"type":44,"tag":71,"props":2263,"children":2265},{"className":2264},[],[2266],{"type":50,"value":2044},{"type":50,"value":2268}," over ",{"type":44,"tag":71,"props":2270,"children":2272},{"className":2271},[],[2273],{"type":50,"value":2274},"event.alerts",{"type":50,"value":2276}," + connector actions. Use ",{"type":44,"tag":71,"props":2278,"children":2280},{"className":2279},[],[2281],{"type":50,"value":2282},"get_step_definitions(\"cases.createCase\")",{"type":50,"value":2284}," and\n",{"type":44,"tag":71,"props":2286,"children":2288},{"className":2287},[],[2289],{"type":50,"value":2290},"get_step_definitions(search: \"slack\")",{"type":50,"value":2292}," (current fixtures use ",{"type":44,"tag":71,"props":2294,"children":2296},{"className":2295},[],[2297],{"type":50,"value":2298},"cases.createCase",{"type":50,"value":2300}," and ",{"type":44,"tag":71,"props":2302,"children":2304},{"className":2303},[],[2305],{"type":50,"value":411},{"type":50,"value":2307},"), then\n",{"type":44,"tag":71,"props":2309,"children":2311},{"className":2310},[],[2312],{"type":50,"value":2313},"get_connectors",{"type":50,"value":2315}," for the real ",{"type":44,"tag":71,"props":2317,"children":2319},{"className":2318},[],[2320],{"type":50,"value":768},{"type":50,"value":2322},"s. See ",{"type":44,"tag":102,"props":2324,"children":2326},{"href":2325},"references\u002Fworkflow-patterns.md",[2327],{"type":50,"value":2328},"Workflow Patterns",{"type":50,"value":199},{"type":44,"tag":53,"props":2331,"children":2332},{},[2333,2335,2339,2340,2346],{"type":50,"value":2334},"For unfamiliar shapes on the schema path, read ",{"type":44,"tag":102,"props":2336,"children":2337},{"href":2325},[2338],{"type":50,"value":2328},{"type":50,"value":2284},{"type":44,"tag":102,"props":2341,"children":2343},{"href":2342},"references\u002Fgeneration-tips.md",[2344],{"type":50,"value":2345},"Generation Tips",{"type":50,"value":2347}," before drafting.",{"type":44,"tag":59,"props":2349,"children":2351},{"id":2350},"operations",[2352],{"type":50,"value":170},{"type":44,"tag":53,"props":2354,"children":2355},{},[2356,2358,2363,2365,2371],{"type":50,"value":2357},"The HTTP-shorthand references in the body above bind to the ",{"type":44,"tag":71,"props":2359,"children":2361},{"className":2360},[],[2362],{"type":50,"value":8},{"type":50,"value":2364}," CLI commands below. Multi-line YAML and JSON\npayloads are easier to pass via ",{"type":44,"tag":71,"props":2366,"children":2368},{"className":2367},[],[2369],{"type":50,"value":2370},"--input-file \u003Cpath>",{"type":50,"value":2372}," than as inline flags.",{"type":44,"tag":53,"props":2374,"children":2375},{},[2376],{"type":44,"tag":230,"props":2377,"children":2378},{},[2379],{"type":50,"value":2380},"Workflows API (both paths).",{"type":44,"tag":1882,"props":2382,"children":2383},{},[2384,2405],{"type":44,"tag":1886,"props":2385,"children":2386},{},[2387],{"type":44,"tag":1890,"props":2388,"children":2389},{},[2390,2395],{"type":44,"tag":1894,"props":2391,"children":2392},{},[2393],{"type":50,"value":2394},"HTTP API (shorthand)",{"type":44,"tag":1894,"props":2396,"children":2397},{},[2398,2403],{"type":44,"tag":71,"props":2399,"children":2401},{"className":2400},[],[2402],{"type":50,"value":8},{"type":50,"value":2404}," CLI command",{"type":44,"tag":1905,"props":2406,"children":2407},{},[2408,2428,2449,2470,2490,2510,2531,2552,2572,2592,2612,2632,2652,2673,2694,2715,2735],{"type":44,"tag":1890,"props":2409,"children":2410},{},[2411,2419],{"type":44,"tag":1912,"props":2412,"children":2413},{},[2414],{"type":44,"tag":71,"props":2415,"children":2417},{"className":2416},[],[2418],{"type":50,"value":132},{"type":44,"tag":1912,"props":2420,"children":2421},{},[2422],{"type":44,"tag":71,"props":2423,"children":2425},{"className":2424},[],[2426],{"type":50,"value":2427},"elastic es info",{"type":44,"tag":1890,"props":2429,"children":2430},{},[2431,2440],{"type":44,"tag":1912,"props":2432,"children":2433},{},[2434],{"type":44,"tag":71,"props":2435,"children":2437},{"className":2436},[],[2438],{"type":50,"value":2439},"GET kbn:\u002Fapi\u002Fworkflows",{"type":44,"tag":1912,"props":2441,"children":2442},{},[2443],{"type":44,"tag":71,"props":2444,"children":2446},{"className":2445},[],[2447],{"type":50,"value":2448},"elastic stack kb workflows get-workflows",{"type":44,"tag":1890,"props":2450,"children":2451},{},[2452,2461],{"type":44,"tag":1912,"props":2453,"children":2454},{},[2455],{"type":44,"tag":71,"props":2456,"children":2458},{"className":2457},[],[2459],{"type":50,"value":2460},"GET kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}",{"type":44,"tag":1912,"props":2462,"children":2463},{},[2464],{"type":44,"tag":71,"props":2465,"children":2467},{"className":2466},[],[2468],{"type":50,"value":2469},"elastic stack kb workflows get-workflows-workflow-id --id \u003Cid>",{"type":44,"tag":1890,"props":2471,"children":2472},{},[2473,2481],{"type":44,"tag":1912,"props":2474,"children":2475},{},[2476],{"type":44,"tag":71,"props":2477,"children":2479},{"className":2478},[],[2480],{"type":50,"value":1056},{"type":44,"tag":1912,"props":2482,"children":2483},{},[2484],{"type":44,"tag":71,"props":2485,"children":2487},{"className":2486},[],[2488],{"type":50,"value":2489},"elastic stack kb workflows post-workflows-workflow --input-file \u003Cpath>",{"type":44,"tag":1890,"props":2491,"children":2492},{},[2493,2501],{"type":44,"tag":1912,"props":2494,"children":2495},{},[2496],{"type":44,"tag":71,"props":2497,"children":2499},{"className":2498},[],[2500],{"type":50,"value":1079},{"type":44,"tag":1912,"props":2502,"children":2503},{},[2504],{"type":44,"tag":71,"props":2505,"children":2507},{"className":2506},[],[2508],{"type":50,"value":2509},"elastic stack kb workflows put-workflows-workflow-id --id \u003Cid> --input-file \u003Cpath>",{"type":44,"tag":1890,"props":2511,"children":2512},{},[2513,2522],{"type":44,"tag":1912,"props":2514,"children":2515},{},[2516],{"type":44,"tag":71,"props":2517,"children":2519},{"className":2518},[],[2520],{"type":50,"value":2521},"DELETE kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}",{"type":44,"tag":1912,"props":2523,"children":2524},{},[2525],{"type":44,"tag":71,"props":2526,"children":2528},{"className":2527},[],[2529],{"type":50,"value":2530},"elastic stack kb workflows delete-workflows-workflow-id --id \u003Cid>",{"type":44,"tag":1890,"props":2532,"children":2533},{},[2534,2543],{"type":44,"tag":1912,"props":2535,"children":2536},{},[2537],{"type":44,"tag":71,"props":2538,"children":2540},{"className":2539},[],[2541],{"type":50,"value":2542},"DELETE kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{id}?force=true",{"type":44,"tag":1912,"props":2544,"children":2545},{},[2546],{"type":44,"tag":71,"props":2547,"children":2549},{"className":2548},[],[2550],{"type":50,"value":2551},"elastic stack kb workflows delete-workflows-workflow-id --id \u003Cid> --force true",{"type":44,"tag":1890,"props":2553,"children":2554},{},[2555,2563],{"type":44,"tag":1912,"props":2556,"children":2557},{},[2558],{"type":44,"tag":71,"props":2559,"children":2561},{"className":2560},[],[2562],{"type":50,"value":347},{"type":44,"tag":1912,"props":2564,"children":2565},{},[2566],{"type":44,"tag":71,"props":2567,"children":2569},{"className":2568},[],[2570],{"type":50,"value":2571},"elastic stack kb workflows post-workflows-test --input-file \u003Cpath>",{"type":44,"tag":1890,"props":2573,"children":2574},{},[2575,2583],{"type":44,"tag":1912,"props":2576,"children":2577},{},[2578],{"type":44,"tag":71,"props":2579,"children":2581},{"className":2580},[],[2582],{"type":50,"value":1132},{"type":44,"tag":1912,"props":2584,"children":2585},{},[2586],{"type":44,"tag":71,"props":2587,"children":2589},{"className":2588},[],[2590],{"type":50,"value":2591},"elastic stack kb workflows post-workflows-workflow-id-run --id \u003Cid> --inputs \u003Cjson>",{"type":44,"tag":1890,"props":2593,"children":2594},{},[2595,2603],{"type":44,"tag":1912,"props":2596,"children":2597},{},[2598],{"type":44,"tag":71,"props":2599,"children":2601},{"className":2600},[],[2602],{"type":50,"value":355},{"type":44,"tag":1912,"props":2604,"children":2605},{},[2606],{"type":44,"tag":71,"props":2607,"children":2609},{"className":2608},[],[2610],{"type":50,"value":2611},"elastic stack kb workflows post-workflows-step-test --input-file \u003Cpath>",{"type":44,"tag":1890,"props":2613,"children":2614},{},[2615,2623],{"type":44,"tag":1912,"props":2616,"children":2617},{},[2618],{"type":44,"tag":71,"props":2619,"children":2621},{"className":2620},[],[2622],{"type":50,"value":985},{"type":44,"tag":1912,"props":2624,"children":2625},{},[2626],{"type":44,"tag":71,"props":2627,"children":2629},{"className":2628},[],[2630],{"type":50,"value":2631},"elastic stack kb workflows get-workflows-executions-executionid --execution-id \u003Cid>",{"type":44,"tag":1890,"props":2633,"children":2634},{},[2635,2643],{"type":44,"tag":1912,"props":2636,"children":2637},{},[2638],{"type":44,"tag":71,"props":2639,"children":2641},{"className":2640},[],[2642],{"type":50,"value":1031},{"type":44,"tag":1912,"props":2644,"children":2645},{},[2646],{"type":44,"tag":71,"props":2647,"children":2649},{"className":2648},[],[2650],{"type":50,"value":2651},"elastic stack kb workflows get-workflows-executions-executionid-logs --execution-id \u003Cid>",{"type":44,"tag":1890,"props":2653,"children":2654},{},[2655,2664],{"type":44,"tag":1912,"props":2656,"children":2657},{},[2658],{"type":44,"tag":71,"props":2659,"children":2661},{"className":2660},[],[2662],{"type":50,"value":2663},"POST kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}\u002Fcancel",{"type":44,"tag":1912,"props":2665,"children":2666},{},[2667],{"type":44,"tag":71,"props":2668,"children":2670},{"className":2669},[],[2671],{"type":50,"value":2672},"elastic stack kb workflows post-workflows-executions-executionid-cancel --execution-id \u003Cid>",{"type":44,"tag":1890,"props":2674,"children":2675},{},[2676,2685],{"type":44,"tag":1912,"props":2677,"children":2678},{},[2679],{"type":44,"tag":71,"props":2680,"children":2682},{"className":2681},[],[2683],{"type":50,"value":2684},"POST kbn:\u002Fapi\u002Fworkflows\u002Fexecutions\u002F{executionId}\u002Fresume",{"type":44,"tag":1912,"props":2686,"children":2687},{},[2688],{"type":44,"tag":71,"props":2689,"children":2691},{"className":2690},[],[2692],{"type":50,"value":2693},"elastic stack kb workflows post-workflows-executions-executionid-resume --execution-id \u003Cid>",{"type":44,"tag":1890,"props":2695,"children":2696},{},[2697,2706],{"type":44,"tag":1912,"props":2698,"children":2699},{},[2700],{"type":44,"tag":71,"props":2701,"children":2703},{"className":2702},[],[2704],{"type":50,"value":2705},"GET kbn:\u002Fapi\u002Fworkflows\u002Fworkflow\u002F{workflowId}\u002Fexecutions",{"type":44,"tag":1912,"props":2707,"children":2708},{},[2709],{"type":44,"tag":71,"props":2710,"children":2712},{"className":2711},[],[2713],{"type":50,"value":2714},"elastic stack kb workflows get-workflows-workflow-workflowid-executions --workflow-id \u003Cid>",{"type":44,"tag":1890,"props":2716,"children":2717},{},[2718,2726],{"type":44,"tag":1912,"props":2719,"children":2720},{},[2721],{"type":44,"tag":71,"props":2722,"children":2724},{"className":2723},[],[2725],{"type":50,"value":2117},{"type":44,"tag":1912,"props":2727,"children":2728},{},[2729],{"type":44,"tag":71,"props":2730,"children":2732},{"className":2731},[],[2733],{"type":50,"value":2734},"elastic stack kb workflows get-workflows-schema --loose false",{"type":44,"tag":1890,"props":2736,"children":2737},{},[2738,2746],{"type":44,"tag":1912,"props":2739,"children":2740},{},[2741],{"type":44,"tag":71,"props":2742,"children":2744},{"className":2743},[],[2745],{"type":50,"value":500},{"type":44,"tag":1912,"props":2747,"children":2748},{},[2749],{"type":44,"tag":71,"props":2750,"children":2752},{"className":2751},[],[2753],{"type":50,"value":2754},"elastic stack kb workflows get-workflows-connectors",{"type":44,"tag":53,"props":2756,"children":2757},{},[2758],{"type":44,"tag":230,"props":2759,"children":2760},{},[2761],{"type":50,"value":2762},"Agent Builder tools (Discovery-tools path).",{"type":44,"tag":53,"props":2764,"children":2765},{},[2766,2768,2774,2776,2781],{"type":50,"value":2767},"Every tool below is invoked through the same execute endpoint. Pass ",{"type":44,"tag":71,"props":2769,"children":2771},{"className":2770},[],[2772],{"type":50,"value":2773},"--input-file",{"type":50,"value":2775}," a JSON file with\n",{"type":44,"tag":71,"props":2777,"children":2779},{"className":2778},[],[2780],{"type":50,"value":569},{"type":50,"value":199},{"type":44,"tag":1882,"props":2783,"children":2784},{},[2785,2804],{"type":44,"tag":1886,"props":2786,"children":2787},{},[2788],{"type":44,"tag":1890,"props":2789,"children":2790},{},[2791,2795],{"type":44,"tag":1894,"props":2792,"children":2793},{},[2794],{"type":50,"value":2394},{"type":44,"tag":1894,"props":2796,"children":2797},{},[2798,2803],{"type":44,"tag":71,"props":2799,"children":2801},{"className":2800},[],[2802],{"type":50,"value":8},{"type":50,"value":2404},{"type":44,"tag":1905,"props":2805,"children":2806},{},[2807,2827],{"type":44,"tag":1890,"props":2808,"children":2809},{},[2810,2818],{"type":44,"tag":1912,"props":2811,"children":2812},{},[2813],{"type":44,"tag":71,"props":2814,"children":2816},{"className":2815},[],[2817],{"type":50,"value":250},{"type":44,"tag":1912,"props":2819,"children":2820},{},[2821],{"type":44,"tag":71,"props":2822,"children":2824},{"className":2823},[],[2825],{"type":50,"value":2826},"elastic stack kb agent-builder get-agent-builder-tools",{"type":44,"tag":1890,"props":2828,"children":2829},{},[2830,2838],{"type":44,"tag":1912,"props":2831,"children":2832},{},[2833],{"type":44,"tag":71,"props":2834,"children":2836},{"className":2835},[],[2837],{"type":50,"value":561},{"type":44,"tag":1912,"props":2839,"children":2840},{},[2841],{"type":44,"tag":71,"props":2842,"children":2844},{"className":2843},[],[2845],{"type":50,"value":2846},"elastic stack kb agent-builder post-agent-builder-tools-execute --input-file \u003Cpath>",{"type":44,"tag":53,"props":2848,"children":2849},{},[2850,2852,2858],{"type":50,"value":2851},"Workflow-relevant ",{"type":44,"tag":71,"props":2853,"children":2855},{"className":2854},[],[2856],{"type":50,"value":2857},"tool_id",{"type":50,"value":2859},"s:",{"type":44,"tag":1882,"props":2861,"children":2862},{},[2863,2882],{"type":44,"tag":1886,"props":2864,"children":2865},{},[2866],{"type":44,"tag":1890,"props":2867,"children":2868},{},[2869,2877],{"type":44,"tag":1894,"props":2870,"children":2871},{},[2872],{"type":44,"tag":71,"props":2873,"children":2875},{"className":2874},[],[2876],{"type":50,"value":2857},{"type":44,"tag":1894,"props":2878,"children":2879},{},[2880],{"type":50,"value":2881},"Purpose",{"type":44,"tag":1905,"props":2883,"children":2884},{},[2885,2901,2917,2947,2963,2979],{"type":44,"tag":1890,"props":2886,"children":2887},{},[2888,2896],{"type":44,"tag":1912,"props":2889,"children":2890},{},[2891],{"type":44,"tag":71,"props":2892,"children":2894},{"className":2893},[],[2895],{"type":50,"value":836},{"type":44,"tag":1912,"props":2897,"children":2898},{},[2899],{"type":50,"value":2900},"Validate a YAML string; failure response includes step definitions for referenced step types.",{"type":44,"tag":1890,"props":2902,"children":2903},{},[2904,2912],{"type":44,"tag":1912,"props":2905,"children":2906},{},[2907],{"type":44,"tag":71,"props":2908,"children":2910},{"className":2909},[],[2911],{"type":50,"value":876},{"type":44,"tag":1912,"props":2913,"children":2914},{},[2915],{"type":50,"value":2916},"Execute one step against the real environment (with user confirmation for unsafe steps).",{"type":44,"tag":1890,"props":2918,"children":2919},{},[2920,2928],{"type":44,"tag":1912,"props":2921,"children":2922},{},[2923],{"type":44,"tag":71,"props":2924,"children":2926},{"className":2925},[],[2927],{"type":50,"value":677},{"type":44,"tag":1912,"props":2929,"children":2930},{},[2931,2933,2938,2940,2945],{"type":50,"value":2932},"Look up step type params, outputs, examples. ",{"type":44,"tag":71,"props":2934,"children":2936},{"className":2935},[],[2937],{"type":50,"value":685},{"type":50,"value":2939}," for exact match, ",{"type":44,"tag":71,"props":2941,"children":2943},{"className":2942},[],[2944],{"type":50,"value":715},{"type":50,"value":2946}," for keyword.",{"type":44,"tag":1890,"props":2948,"children":2949},{},[2950,2958],{"type":44,"tag":1912,"props":2951,"children":2952},{},[2953],{"type":44,"tag":71,"props":2954,"children":2956},{"className":2955},[],[2957],{"type":50,"value":750},{"type":44,"tag":1912,"props":2959,"children":2960},{},[2961],{"type":50,"value":2962},"Look up a trigger's full event schema.",{"type":44,"tag":1890,"props":2964,"children":2965},{},[2966,2974],{"type":44,"tag":1912,"props":2967,"children":2968},{},[2969],{"type":44,"tag":71,"props":2970,"children":2972},{"className":2971},[],[2973],{"type":50,"value":492},{"type":44,"tag":1912,"props":2975,"children":2976},{},[2977],{"type":50,"value":2978},"List connector instances configured on the target.",{"type":44,"tag":1890,"props":2980,"children":2981},{},[2982,2990],{"type":44,"tag":1912,"props":2983,"children":2984},{},[2985],{"type":44,"tag":71,"props":2986,"children":2988},{"className":2987},[],[2989],{"type":50,"value":779},{"type":44,"tag":1912,"props":2991,"children":2992},{},[2993],{"type":50,"value":2994},"Search the bundled example library for working YAML patterns.",{"type":44,"tag":53,"props":2996,"children":2997},{},[2998],{"type":44,"tag":230,"props":2999,"children":3000},{},[3001],{"type":50,"value":3002},"Notes.",{"type":44,"tag":53,"props":3004,"children":3005},{},[3006,3008,3014,3016,3022,3024,3030,3032,3037,3039,3045,3047,3053,3055,3061,3063,3069,3071,3076,3077,3082,3083,3088,3089,3094,3096,3101,3103,3109,3111,3117],{"type":50,"value":3007},"For ",{"type":44,"tag":71,"props":3009,"children":3011},{"className":3010},[],[3012],{"type":50,"value":3013},"post-workflows-test",{"type":50,"value":3015},", the input file is JSON of the form ",{"type":44,"tag":71,"props":3017,"children":3019},{"className":3018},[],[3020],{"type":50,"value":3021},"{ \"workflowYaml\": \"...\", \"inputs\": {} }",{"type":50,"value":3023}," (or ",{"type":44,"tag":71,"props":3025,"children":3027},{"className":3026},[],[3028],{"type":50,"value":3029},"workflowId",{"type":50,"value":3031},"\nin place of ",{"type":44,"tag":71,"props":3033,"children":3035},{"className":3034},[],[3036],{"type":50,"value":944},{"type":50,"value":3038},"). For ",{"type":44,"tag":71,"props":3040,"children":3042},{"className":3041},[],[3043],{"type":50,"value":3044},"post-workflows-workflow",{"type":50,"value":3046},", use ",{"type":44,"tag":71,"props":3048,"children":3050},{"className":3049},[],[3051],{"type":50,"value":3052},"{ \"yaml\": \"...\", \"id\": \"...\" }",{"type":50,"value":3054}," — ",{"type":44,"tag":71,"props":3056,"children":3058},{"className":3057},[],[3059],{"type":50,"value":3060},"id",{"type":50,"value":3062}," is optional. For\n",{"type":44,"tag":71,"props":3064,"children":3066},{"className":3065},[],[3067],{"type":50,"value":3068},"put-workflows-workflow-id",{"type":50,"value":3070},", include only the fields to update from ",{"type":44,"tag":71,"props":3072,"children":3074},{"className":3073},[],[3075],{"type":50,"value":803},{"type":50,"value":134},{"type":44,"tag":71,"props":3078,"children":3080},{"className":3079},[],[3081],{"type":50,"value":1093},{"type":50,"value":134},{"type":44,"tag":71,"props":3084,"children":3086},{"className":3085},[],[3087],{"type":50,"value":1106},{"type":50,"value":134},{"type":44,"tag":71,"props":3090,"children":3092},{"className":3091},[],[3093],{"type":50,"value":18},{"type":50,"value":3095},", and\n",{"type":44,"tag":71,"props":3097,"children":3099},{"className":3098},[],[3100],{"type":50,"value":1114},{"type":50,"value":3102},". Deletion is soft by default. Use ",{"type":44,"tag":71,"props":3104,"children":3106},{"className":3105},[],[3107],{"type":50,"value":3108},"force=true",{"type":50,"value":3110}," only when permanent deletion and immediate ID reuse are\nintended. The Kibana API version is ",{"type":44,"tag":71,"props":3112,"children":3114},{"className":3113},[],[3115],{"type":50,"value":3116},"2023-10-31",{"type":50,"value":3118},"; the CLI sets it automatically.",{"type":44,"tag":53,"props":3120,"children":3121},{},[3122,3124,3130,3132,3138,3140,3146,3148,3154],{"type":50,"value":3123},"When invoking read-only ",{"type":44,"tag":71,"props":3125,"children":3127},{"className":3126},[],[3128],{"type":50,"value":3129},"get-",{"type":50,"value":3131}," commands from a shell that leaves stdin open (some terminals and agent runtimes do this),\nappend ",{"type":44,"tag":71,"props":3133,"children":3135},{"className":3134},[],[3136],{"type":50,"value":3137},"\u003C\u002Fdev\u002Fnull",{"type":50,"value":3139}," to avoid an ",{"type":44,"tag":71,"props":3141,"children":3143},{"className":3142},[],[3144],{"type":50,"value":3145},"EAGAIN: resource temporarily unavailable",{"type":50,"value":3147}," crash — e.g.\n",{"type":44,"tag":71,"props":3149,"children":3151},{"className":3150},[],[3152],{"type":50,"value":3153},"elastic stack kb workflows get-workflows-executions-executionid --execution-id \"{id}\" \u003C\u002Fdev\u002Fnull",{"type":50,"value":199},{"type":44,"tag":3156,"props":3157,"children":3158},"style",{},[3159],{"type":50,"value":3160},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3162,"total":3330},[3163,3182,3199,3214,3229,3241,3251,3266,3278,3293,3304,3317],{"slug":3164,"name":3164,"fn":3165,"description":3166,"org":3167,"tags":3168,"stars":3179,"repoUrl":3180,"updatedAt":3181},"accessing-benchmark-results","retrieve and analyze Rally benchmark results","Retrieve Rally benchmark results from an external Elasticsearch metrics store. Use to list past races, get a single race's overall (per-task) results, chart a metric's trend across multiple runs, compare two races, or check whether a run converged — e.g. \"show me recent geonames races\", \"what's the service_time trend for nyc_taxis over the last 30 days?\", \"compare these two race-ids\". Applies when datastore.type = elasticsearch is set in ~\u002F.rally\u002Frally.ini.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3169,3172,3175,3176],{"name":3170,"slug":3171,"type":15},"Analytics","analytics",{"name":3173,"slug":3174,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":3177,"slug":3178,"type":15},"Performance","performance",2029,"https:\u002F\u002Fgithub.com\u002Felastic\u002Frally","2026-08-23T03:32:52.415006",{"slug":3183,"name":3183,"fn":3184,"description":3185,"org":3186,"tags":3187,"stars":3179,"repoUrl":3180,"updatedAt":3198},"developing-rally","develop and debug Rally source code","Work on Rally's own codebase, not running benchmarks with it. Use when setting up the dev environment, running Rally's tests or linters, navigating its source, debugging Rally's own code, or making changes to Rally itself.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3188,3191,3192,3195],{"name":3189,"slug":3190,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":3193,"slug":3194,"type":15},"Engineering","engineering",{"name":3196,"slug":3197,"type":15},"Local Development","local-development","2026-07-12T07:46:35.976807",{"slug":3200,"name":3200,"fn":3201,"description":3202,"org":3203,"tags":3204,"stars":3179,"repoUrl":3180,"updatedAt":3213},"running-benchmarks","run Rally benchmarks against Elasticsearch","Run Rally benchmarks (races) against Elasticsearch — an existing\u002Fexternal cluster or a Rally-provisioned distribution — and read the summary report. Use when running a race (any pipeline, track, challenge, target-hosts, or auth) or when interpreting throughput, latency, and service_time results.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3205,3206,3209,3210],{"name":9,"slug":8,"type":15},{"name":3207,"slug":3208,"type":15},"Elasticsearch","elasticsearch",{"name":3177,"slug":3178,"type":15},{"name":3211,"slug":3212,"type":15},"Testing","testing","2026-07-12T07:46:37.277964",{"slug":3215,"name":3215,"fn":3216,"description":3217,"org":3218,"tags":3219,"stars":23,"repoUrl":24,"updatedAt":3228},"cloud-access-management","manage Elastic Cloud organization access","Manage Elastic Cloud organization access: invite users, assign roles to Serverless projects, and create or revoke Cloud API keys. Use when granting, modifying, or auditing user access.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3220,3223,3224,3225],{"name":3221,"slug":3222,"type":15},"Cloud","cloud",{"name":9,"slug":8,"type":15},{"name":170,"slug":2350,"type":15},{"name":3226,"slug":3227,"type":15},"Permissions","permissions","2026-07-12T07:46:44.946285",{"slug":3230,"name":3230,"fn":3231,"description":3232,"org":3233,"tags":3234,"stars":23,"repoUrl":24,"updatedAt":3240},"cloud-create-project","create Elastic Cloud Serverless projects","Creates Elastic Cloud Serverless projects (Elasticsearch, Observability, or Security) via the REST API, saves credentials to file, and bootstraps a scoped Elasticsearch API key. Use when creating a new serverless project, provisioning a search or observability environment, or spinning up a new Elastic Cloud project.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3235,3236,3239],{"name":3221,"slug":3222,"type":15},{"name":3237,"slug":3238,"type":15},"Deployment","deployment",{"name":3207,"slug":3208,"type":15},"2026-07-12T07:46:42.353362",{"slug":3242,"name":3242,"fn":3243,"description":3244,"org":3245,"tags":3246,"stars":23,"repoUrl":24,"updatedAt":3250},"cloud-manage-project","manage Elastic Cloud Serverless projects","Manages existing Elastic Cloud Serverless projects: list, get, update, delete, reset credentials, resume, and load saved credentials. Connects to existing projects by resolving endpoints and acquiring scoped Elasticsearch API keys. Use when performing day-2 operations on serverless projects, connecting to an existing project, loading or resetting project credentials, or looking up project details.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3247,3248,3249],{"name":3221,"slug":3222,"type":15},{"name":3207,"slug":3208,"type":15},{"name":170,"slug":2350,"type":15},"2026-07-12T07:46:41.097412",{"slug":3252,"name":3252,"fn":3253,"description":3254,"org":3255,"tags":3256,"stars":23,"repoUrl":24,"updatedAt":3265},"cloud-network-security","manage Elastic Cloud network security","Manage Serverless network security (traffic filters): create, update, and delete IP filters and AWS PrivateLink VPC filters. Use when restricting network access or configuring private connectivity.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3257,3258,3259,3262],{"name":3221,"slug":3222,"type":15},{"name":3207,"slug":3208,"type":15},{"name":3260,"slug":3261,"type":15},"Networking","networking",{"name":3263,"slug":3264,"type":15},"Security","security","2026-07-12T07:46:43.675992",{"slug":3267,"name":3267,"fn":3268,"description":3269,"org":3270,"tags":3271,"stars":23,"repoUrl":24,"updatedAt":3277},"cloud-setup","configure Elastic Cloud authentication","Configures Elastic Cloud authentication and environment defaults. Use when setting up EC_API_KEY, configuring Cloud API access, or when another cloud skill requires credentials.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3272,3275,3276],{"name":3273,"slug":3274,"type":15},"Authentication","authentication",{"name":3221,"slug":3222,"type":15},{"name":3207,"slug":3208,"type":15},"2026-07-12T07:46:39.783105",{"slug":3279,"name":3279,"fn":3280,"description":3281,"org":3282,"tags":3283,"stars":23,"repoUrl":24,"updatedAt":3292},"elasticsearch-audit","configure Elasticsearch security audit logs","Enable, configure, and query Elasticsearch security audit logs. Use when the task involves audit logging setup, event filtering, or investigating security incidents like failed logins.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3284,3287,3288,3291],{"name":3285,"slug":3286,"type":15},"Audit","audit",{"name":3207,"slug":3208,"type":15},{"name":3289,"slug":3290,"type":15},"Logs","logs",{"name":3263,"slug":3264,"type":15},"2026-07-12T07:47:35.092599",{"slug":3294,"name":3294,"fn":3295,"description":3296,"org":3297,"tags":3298,"stars":23,"repoUrl":24,"updatedAt":3303},"elasticsearch-authn","configure Elasticsearch authentication realms","Authenticate to Elasticsearch using native, file-based, LDAP\u002FAD, SAML, OIDC, Kerberos, JWT, or certificate realms. Use when connecting with credentials, choosing a realm, or managing API keys. Assumes the target realms are already configured.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3299,3300,3301,3302],{"name":3273,"slug":3274,"type":15},{"name":9,"slug":8,"type":15},{"name":3207,"slug":3208,"type":15},{"name":3263,"slug":3264,"type":15},"2026-07-12T07:47:41.474547",{"slug":3305,"name":3305,"fn":3306,"description":3307,"org":3308,"tags":3309,"stars":23,"repoUrl":24,"updatedAt":3316},"elasticsearch-authz","manage Elasticsearch RBAC and security roles","Manage Elasticsearch RBAC: native users, roles, role mappings, document- and field-level security. Use when creating users or roles, assigning privileges, or mapping external realms like LDAP\u002FSAML.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3310,3311,3312,3315],{"name":9,"slug":8,"type":15},{"name":3207,"slug":3208,"type":15},{"name":3313,"slug":3314,"type":15},"RBAC","rbac",{"name":3263,"slug":3264,"type":15},"2026-07-12T07:47:36.394177",{"slug":3318,"name":3318,"fn":3319,"description":3320,"org":3321,"tags":3322,"stars":23,"repoUrl":24,"updatedAt":3329},"elasticsearch-esql","query Elasticsearch data with ES|QL","Execute ES|QL (Elasticsearch Query Language) queries, use when the user wants to query Elasticsearch data, analyze logs, aggregate metrics, explore data, or create charts and dashboards from ES|QL results.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3323,3324,3325,3326],{"name":3170,"slug":3171,"type":15},{"name":3173,"slug":3174,"type":15},{"name":3207,"slug":3208,"type":15},{"name":3327,"slug":3328,"type":15},"SQL","sql","2026-08-29T09:26:39.389536",94,{"items":3332,"total":3379},[3333,3340,3346,3352,3359,3365,3372],{"slug":3215,"name":3215,"fn":3216,"description":3217,"org":3334,"tags":3335,"stars":23,"repoUrl":24,"updatedAt":3228},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3336,3337,3338,3339],{"name":3221,"slug":3222,"type":15},{"name":9,"slug":8,"type":15},{"name":170,"slug":2350,"type":15},{"name":3226,"slug":3227,"type":15},{"slug":3230,"name":3230,"fn":3231,"description":3232,"org":3341,"tags":3342,"stars":23,"repoUrl":24,"updatedAt":3240},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3343,3344,3345],{"name":3221,"slug":3222,"type":15},{"name":3237,"slug":3238,"type":15},{"name":3207,"slug":3208,"type":15},{"slug":3242,"name":3242,"fn":3243,"description":3244,"org":3347,"tags":3348,"stars":23,"repoUrl":24,"updatedAt":3250},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3349,3350,3351],{"name":3221,"slug":3222,"type":15},{"name":3207,"slug":3208,"type":15},{"name":170,"slug":2350,"type":15},{"slug":3252,"name":3252,"fn":3253,"description":3254,"org":3353,"tags":3354,"stars":23,"repoUrl":24,"updatedAt":3265},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3355,3356,3357,3358],{"name":3221,"slug":3222,"type":15},{"name":3207,"slug":3208,"type":15},{"name":3260,"slug":3261,"type":15},{"name":3263,"slug":3264,"type":15},{"slug":3267,"name":3267,"fn":3268,"description":3269,"org":3360,"tags":3361,"stars":23,"repoUrl":24,"updatedAt":3277},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3362,3363,3364],{"name":3273,"slug":3274,"type":15},{"name":3221,"slug":3222,"type":15},{"name":3207,"slug":3208,"type":15},{"slug":3279,"name":3279,"fn":3280,"description":3281,"org":3366,"tags":3367,"stars":23,"repoUrl":24,"updatedAt":3292},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3368,3369,3370,3371],{"name":3285,"slug":3286,"type":15},{"name":3207,"slug":3208,"type":15},{"name":3289,"slug":3290,"type":15},{"name":3263,"slug":3264,"type":15},{"slug":3294,"name":3294,"fn":3295,"description":3296,"org":3373,"tags":3374,"stars":23,"repoUrl":24,"updatedAt":3303},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3375,3376,3377,3378],{"name":3273,"slug":3274,"type":15},{"name":9,"slug":8,"type":15},{"name":3207,"slug":3208,"type":15},{"name":3263,"slug":3264,"type":15},36]