Service deployments
Deploying a workflow as a service allows you to call the workflow from an external application via a REST API.
Before you start
You need:
- Edit right on a team space
- A workflow containing Container Input and Output nodes
Step 1 — Build the workflow
Container Input nodes
Container Input nodes define what your workflow expects to receive from the caller. Choose the node type to match the data format:
| Node | Input format |
|---|---|
| Container Input (JSON) | JSON object or array |
| Container Input (Row) | A single table row |
| Container Input (File) | A binary file |
| Container Input (Variable) | A set of flow variables |
Configure each Container Input node with example data. This example becomes the default request body shown in the API documentation.
Container Output nodes
Container Output nodes define what the workflow sends back. Choose the node type to match what callers expect:
| Node | Output format |
|---|---|
| Container Output (JSON) | JSON object |
| Container Output (Row) | A single table row |
| Container Output (Table) | A full table |
| Container Output (File) | A binary file |
Example: a simple JSON service
A minimal service workflow has three parts:
- A Container Input (JSON) node — receives the request body
- Processing nodes — transforms the data
- A Container Output (JSON) node — returns the result
In the Container Input (JSON) configuration dialog, enter the JSON structure the workflow will receive. In the Container Output (JSON) dialog, click Fill example JSON from input data to preview what the response will look like.
Step 2 — Create a version
You can only create deployments from a version of the workflow. See Create a version.
Step 3 — Create the service deployment
- On the workflow page, click Deploy → Create service.
- Enter a deployment name.
- Select the workflow version.
- Select an environment.
- Enable the desired email notifications.
- Select the deployment execution scope.
- Set the configuration options
Step 4 — Share the deployment
Other users can call the endpoint only if you share the deployment with them.
- Click the three-dot menu on the deployment row.
- Select Manage access.
- Search for users, teams or groups and click Add.
- Copy the endpoint link to the clipboard.
- Select who can call the endpoint:
- Restricted: only users manually added in the previous steps.
- Any signed-in users: every user, also from other teams.
Users you share with can call the endpoint using their own application password.
Step 5 — Find the endpoint and API documentation
Knime generates interactive API documentation for each deployment using Swagger UI.
- Navigate to the deployment.
- Click the three-dot menu and select Open API docs.
Swagger UI shows the endpoint URL, the expected request body structure, and the response format.
Step 6 — Test from Swagger UI
- Expand the POST execution endpoint.
- Click Try it out.
- Modify the input values in the request body.
- Click Execute.
Scroll down to see the response code and the output from your workflow.
Step 7 — Call from an external tool
To call the endpoint from an external tool such as Postman or a script, you need an application password. Application password id and password can be used as basic authentication in the external tool calling the endpoint.
TIP
Each user who needs to call the endpoint must create their own application password. The password authenticates the caller against their own permissions on the deployment.
Update the deployment
Deployments are pinned to a specific workflow version. To update what the endpoint runs:
- Make your changes in the editor.
- Create a new version.
- Open the deployment settings and select the new version.
The endpoint immediately runs the updated workflow on the next execution.