Skip to content

Commit e21ca7f

Browse files
authored
Document HTTP workflow connector support (#6885)
## Summary - Updates the Workflows HTTP actions docs to explain connector-backed HTTP steps. - Replaces the outdated secret-store limitation with guidance to use `connector-id` for authenticated requests. - Adds dropdown syntax examples for configured HTTP connector and direct URL usage. ## Testing - Not run; docs-only change.
1 parent 78df282 commit e21ca7f

1 file changed

Lines changed: 23 additions & 19 deletions

File tree

explore-analyze/workflows/steps/external-systems-apps.md

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ products:
1818
External systems actions allow your workflows to communicate with third-party services and custom endpoints. You can interact with external systems in the following ways:
1919

2020
* [Connector-based actions](#connector-based-actions): Use pre-configured connectors to integrate with services such as Slack and {{jira}}
21-
* [HTTP actions](#http-actions): Make direct HTTP requests to any API endpoint
21+
* [HTTP actions](#http-actions): Make HTTP requests to APIs directly or through a configured HTTP connector
2222

2323
## Connector-based actions
2424

@@ -66,37 +66,41 @@ steps:
6666
6767
## HTTP actions
6868
69-
The native `http` action is a built-in HTTP client that does not require a pre-configured connector. Use it for one-off requests to public or internal APIs.
69+
The native `http` action is a built-in HTTP client for calling external APIs. It supports two modes:
70+
71+
* **Configured HTTP connector**: For authenticated requests, first [configure an HTTP connector](/deploy-manage/manage-connectors.md). Then reference it from the workflow step with `connector-id`. The connector stores the base URL, authentication settings, and secrets using {{kib}}'s centralized {{connectors-ui}} framework.
72+
* **Direct URL**: For simple requests that don't require connector-managed secrets, omit `connector-id` and provide the full `url` directly in the step. Avoid placing secrets directly in workflow YAML.
7073

7174
Use the following parameters in the `with` block to configure the request:
7275

7376
| Parameter | Required | Description |
7477
|-----------|----------|-------------|
75-
| `url` | Yes | The full URL of the endpoint to call |
76-
| `method` | No (defaults to `GET`) | The HTTP method (`GET`, `POST`, `PUT`, or `DELETE`) |
77-
| `headers` | No | An object with key-value pairs for HTTP headers |
78-
| `body` | No | The request body (typically a JSON object) |
79-
80-
::::{admonition} Known limitation
81-
The native `http` action does not have access to a centralized secret store for managing authentication credentials. If your endpoint requires authentication, you must include the credentials directly in the `headers` block.
78+
| `url` | Yes, when `connector-id` is not provided | The full URL of the endpoint to call. |
79+
| `path` | No | The path appended to the configured connector's base URL. Use this with `connector-id`. |
80+
| `method` | No (defaults to `GET`) | The HTTP method (`GET`, `POST`, `PUT`, `PATCH`, or `DELETE`). |
81+
| `headers` | No | An object with key-value pairs for additional HTTP headers. Request headers take precedence over connector headers. |
82+
| `query` | No | An object with key-value pairs for query string parameters. |
83+
| `body` | No | The request body (typically a JSON object). |
8284

8385
:::{dropdown} Click to show syntax example
86+
Use a configured HTTP connector:
87+
8488
```yaml
8589
steps:
86-
- name: call_secure_api
90+
- name: trigger_response_action
8791
type: http
92+
connector-id: "security-response-api"
8893
with:
89-
url: "https://api.thirdparty.com/v1/data"
90-
method: "GET"
94+
path: "/v1/response-actions/isolate"
95+
method: "POST"
9196
headers:
92-
Authorization: "Bearer my-secret-api-token"
97+
Content-Type: "application/json"
98+
body:
99+
endpoint_id: "{{ event.agent.id }}"
100+
reason: "Triggered by workflow '{{ workflow.name }}'"
93101
```
94-
:::
95-
::::
96-
97-
### Example: Call a custom webhook
98102

99-
This example makes a POST request to a custom automation endpoint, passing data from the workflow context.
103+
Call a URL directly without a connector:
100104

101105
```yaml
102106
steps:
@@ -111,4 +115,4 @@ steps:
111115
event_id: "{{ event.id }}"
112116
message: "Workflow action triggered by '{{ workflow.name }}'"
113117
```
114-
118+
:::

0 commit comments

Comments
 (0)