From 1fbdd03a71ae539500f8a6cbddcbcbeeee6e22a8 Mon Sep 17 00:00:00 2001 From: Daniel Widdis Date: Tue, 5 Mar 2024 10:32:24 -0800 Subject: [PATCH] Add documentation for Search Workflow State API (#6546) * Add documentation for Search Workflow State API Signed-off-by: Daniel Widdis * Improve wording per review suggestions Signed-off-by: Daniel Widdis * Match indendation on example queries Signed-off-by: Daniel Widdis --------- Signed-off-by: Daniel Widdis --- .../api/get-workflow-status.md | 9 ++- _automating-configurations/api/index.md | 1 + .../api/search-workflow-state.md | 63 +++++++++++++++++++ .../api/search-workflow.md | 4 +- 4 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 _automating-configurations/api/search-workflow-state.md diff --git a/_automating-configurations/api/get-workflow-status.md b/_automating-configurations/api/get-workflow-status.md index 0b0e6e94..03870af1 100644 --- a/_automating-configurations/api/get-workflow-status.md +++ b/_automating-configurations/api/get-workflow-status.md @@ -83,7 +83,8 @@ While provisioning is in progress, OpenSearch returns a partial resource list: { "workflow_step_name": "create_connector", "workflow_step_id": "create_connector_1", - "connector_id": "NdjCQYwBLmvn802B0IwE" + "resource_type": "connector_id", + "resource_id": "NdjCQYwBLmvn802B0IwE" } ] } @@ -99,12 +100,14 @@ Upon provisioning completion, OpenSearch returns the full resource list: { "workflow_step_name": "create_connector", "workflow_step_id": "create_connector_1", - "connector_id": "NdjCQYwBLmvn802B0IwE" + "resource_type": "connector_id", + "resource_id": "NdjCQYwBLmvn802B0IwE" }, { "workflow_step_name": "register_remote_model", "workflow_step_id": "register_model_2", - "model_id": "N9jCQYwBLmvn802B0oyh" + "resource_type": "model_id", + "resource_id": "N9jCQYwBLmvn802B0oyh" } ] } diff --git a/_automating-configurations/api/index.md b/_automating-configurations/api/index.md index f67c5cb6..5fb05053 100644 --- a/_automating-configurations/api/index.md +++ b/_automating-configurations/api/index.md @@ -19,5 +19,6 @@ OpenSearch supports the following workflow APIs: * [Get workflow status]({{site.url}}{{site.baseurl}}/automating-configurations/api/get-workflow-status/) * [Get workflow steps]({{site.url}}{{site.baseurl}}/automating-configurations/api/get-workflow-steps/) * [Search workflow]({{site.url}}{{site.baseurl}}/automating-configurations/api/search-workflow/) +* [Search workflow state]({{site.url}}{{site.baseurl}}/automating-configurations/api/search-workflow-state/) * [Deprovision workflow]({{site.url}}{{site.baseurl}}/automating-configurations/api/deprovision-workflow/) * [Delete workflow]({{site.url}}{{site.baseurl}}/automating-configurations/api/delete-workflow/) \ No newline at end of file diff --git a/_automating-configurations/api/search-workflow-state.md b/_automating-configurations/api/search-workflow-state.md new file mode 100644 index 00000000..9e21f143 --- /dev/null +++ b/_automating-configurations/api/search-workflow-state.md @@ -0,0 +1,63 @@ +--- +layout: default +title: Search for a workflow state +parent: Workflow APIs +nav_order: 65 +--- + +# Search for a workflow + +This is an experimental feature and is not recommended for use in a production environment. For updates on the progress of the feature or if you want to leave feedback, see the associated [GitHub issue](https://github.com/opensearch-project/flow-framework/issues/475). +{: .warning} + +You can search for resources created by workflows by matching a query to a field. The fields you can search correspond to those returned by the [Get Workflow Status API]({{site.url}}{{site.baseurl}}/automating-configurations/api/get-workflow-status/). + +## Path and HTTP methods + +```json +GET /_plugins/_flow_framework/workflow/state/_search +POST /_plugins/_flow_framework/workflow/state/_search +``` + +#### Example request: All workflows with a state of `NOT_STARTED` + +```json +GET /_plugins/_flow_framework/workflow/state/_search +{ + "query": { + "match": { + "state": "NOT_STARTED" + } + } +} +``` +{% include copy-curl.html %} + +#### Example request: All workflows that have a `resources_created` field with a `workflow_step_id` of `register_model_2` + +```json +GET /_plugins/_flow_framework/workflow/state/_search +{ + "query": { + "nested": { + "path": "resources_created", + "query": { + "bool": { + "must": [ + { + "match": { + "resources_created.workflow_step_id": "register_model_2" + } + } + ] + } + } + } + } +} +``` +{% include copy-curl.html %} + +#### Example response + +The response contains documents matching the search parameters. \ No newline at end of file diff --git a/_automating-configurations/api/search-workflow.md b/_automating-configurations/api/search-workflow.md index 8227bbd5..7eb8890f 100644 --- a/_automating-configurations/api/search-workflow.md +++ b/_automating-configurations/api/search-workflow.md @@ -24,7 +24,7 @@ POST /_plugins/_flow_framework/workflow/_search ```json GET /_plugins/_flow_framework/workflow/_search { - "query": { + "query": { "match_all": {} } } @@ -36,7 +36,7 @@ GET /_plugins/_flow_framework/workflow/_search ```json GET /_plugins/_flow_framework/workflow/_search { - "query": { + "query": { "match": { "use_case": "REMOTE_MODEL_DEPLOYMENT" }