This documentation is currently under development. Certain sections are not yet complete and will be added shortly.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

Flows

List flows for the tenant

get
/api/{tenantId}/admin/flows

Returns every flow declared in server/flows.yml, ordered by name.

Authorization

Requires tenant.configuration.flow:read scope.

Required scopes
This endpoint requires the following scopes:
Authorizations
OAuth2implicitRequired
Authorization URL:
Path parameters
tenantIdstringRequired
Responses
200

Flows returned.

Flow returned by the list endpoint.

namestringRequired

Name of the flow, unique within the tenant.

typestringRequired

Type of the flow, e.g. userRegistration.

stepCountinteger · int32Required

Number of steps the flow executes.

get/api/{tenantId}/admin/flows
GET /api/{tenantId}/admin/flows HTTP/1.1
Host: app.neostore.cloud
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
  {
    "name": "text",
    "type": "text",
    "stepCount": 1
  }
]

Create a flow

post
/api/{tenantId}/admin/flows

Appends a new flow to server/flows.yml. Step types are validated against the step types registered by the loaded extensions, and the resulting configuration is parsed back before it is written, so a malformed step is rejected instead of breaking the tenant.

Authorization

Requires tenant.configuration.flow:write scope.

Required scopes
This endpoint requires the following scopes:
Authorizations
OAuth2implicitRequired
Authorization URL:
Path parameters
tenantIdstringRequired
Body

Request body to create a flow.

namestring · min: 1Required

Name of the flow. Must start with a lowercase letter and contain only letters, digits, hyphens or underscores, from 2 to 50 characters.

typestring · nullableOptional

Type of the flow. Defaults to userRegistration when omitted.

Responses
201

Flow created.

Full definition of a flow, returned by the get/create/save endpoints.

namestringRequired

Name of the flow.

typestringRequired

Type of the flow.

post/api/{tenantId}/admin/flows
POST /api/{tenantId}/admin/flows HTTP/1.1
Host: app.neostore.cloud
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 90

{
  "name": "text",
  "type": null,
  "steps": [
    {
      "type": "text",
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  ]
}
{
  "name": "text",
  "type": "text",
  "steps": [
    {
      "type": "text",
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  ]
}

Get a flow

get
/api/{tenantId}/admin/flows/{name}

Returns the type and the ordered steps of the flow identified by name. Step configuration is returned exactly as stored, including step types this deployment does not know about.

Authorization

Requires tenant.configuration.flow:read scope.

Required scopes
This endpoint requires the following scopes:
Authorizations
OAuth2implicitRequired
Authorization URL:
Path parameters
namestringRequired
tenantIdstringRequired
Responses
200

Flow returned.

Full definition of a flow, returned by the get/create/save endpoints.

namestringRequired

Name of the flow.

typestringRequired

Type of the flow.

get/api/{tenantId}/admin/flows/{name}
GET /api/{tenantId}/admin/flows/{name} HTTP/1.1
Host: app.neostore.cloud
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "name": "text",
  "type": "text",
  "steps": [
    {
      "type": "text",
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  ]
}

Save a flow

put
/api/{tenantId}/admin/flows/{name}

Replaces the steps of an existing flow, leaving every other flow in server/flows.yml untouched. The flow cannot be renamed: the name in the route is authoritative.

Authorization

Requires tenant.configuration.flow:write scope.

Required scopes
This endpoint requires the following scopes:
Authorizations
OAuth2implicitRequired
Authorization URL:
Path parameters
tenantIdstringRequired
namestringRequired
Body

Request body to save an existing flow.

typestring · nullableOptional

Type of the flow. Keeps the currently stored type when omitted.

Responses
200

Flow saved.

Full definition of a flow, returned by the get/create/save endpoints.

namestringRequired

Name of the flow.

typestringRequired

Type of the flow.

put/api/{tenantId}/admin/flows/{name}
PUT /api/{tenantId}/admin/flows/{name} HTTP/1.1
Host: app.neostore.cloud
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 76

{
  "type": null,
  "steps": [
    {
      "type": "text",
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  ]
}
{
  "name": "text",
  "type": "text",
  "steps": [
    {
      "type": "text",
      "ANY_ADDITIONAL_PROPERTY": "anything"
    }
  ]
}

Delete a flow

delete
/api/{tenantId}/admin/flows/{name}

Removes the flow from server/flows.yml. Refused with a conflict while any layout under layouts/ still references the flow by name, because that would leave the whole tenant configuration invalid.

Authorization

Requires tenant.configuration.flow:write scope.

Required scopes
This endpoint requires the following scopes:
Authorizations
OAuth2implicitRequired
Authorization URL:
Path parameters
tenantIdstringRequired
namestringRequired
Responses
204

Flow deleted.

No content

delete/api/{tenantId}/admin/flows/{name}
DELETE /api/{tenantId}/admin/flows/{name} HTTP/1.1
Host: app.neostore.cloud
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*

No content

Last updated