Globus Flows API (2021-12-12.1)

Download OpenAPI specification:Download

This is the Globus Flows API description.

Flows

Deploy a Flow

Deploy a Flow and its schema.

Authorizations:
None
Request Body schema: application/json
required
object (FlowDefinition)
title
string [ 1 .. 128 ] characters

A non-unique, human-friendly name used for displaying the provider to end users.

subtitle
string [ 1 .. 128 ] characters

A concise summary of the provider’s purpose.

description
string [ 1 .. 4096 ] characters

A detailed description of the provider for end user display.

keywords
Array of strings

A set of terms used to categorize the provider which may be used in query and discovery operations. Maximum total length of all keywords is 1024 characters.

flow_viewers
Array of strings (PrincipalURN_or_public) unique

A set of Principal URN values, or the value "public" indicating the identity of users who can view the provider description via introspection or when indexed in any provider catalog service.

flow_starters
Array of strings (PrincipalURN_or_all_authenticated_users) unique

A set of Principal URN values, or the value "all_authenticated_users" indicating the identity of users who can use the /run operation to initiate an action on the provider.

flow_administrators
Array of strings (PrincipalURN) unique

The set of Principal URN values of users who may perform administrative operations, including updating the description itself, on the provider.

input_schema
object

A published JSON Schema which input to the Flow must conform to.

subscription_id
string <uuid>

A subscription_id associated with this Flow. If no subscription_id is present, the Flow may be accepted, but may have limits on how long or how much it can be used.

Responses

Request samples

Content type
application/json
{
  • "definition": {
    },
  • "title": "string",
  • "subtitle": "string",
  • "description": "string",
  • "keywords": [
    ],
  • "flow_viewers": [
    ],
  • "flow_starters": [
    ],
  • "flow_administrators": [
    ],
  • "input_schema": { },
  • "subscription_id": "aa11a4c2-a467-43db-b413-c4ab0f5cf627"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "definition": {
    },
  • "input_schema": { },
  • "globus_auth_scope": "http://example.com",
  • "globus_auth_scopes_by_RunAs": [],
  • "user_role": "flow_viewer",
  • "flow_viewers": [
    ],
  • "flow_starters": [
    ],
  • "flow_administrators": [
    ],
  • "flow_owner": "urn:globus:auth:identity:46bd0f56-e24f-11e5-a510-131bef46955c",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "synchronous": true,
  • "log_supported": true,
  • "types": [
    ],
  • "api_version": "1.0",
  • "title": "string",
  • "subtitle": "string",
  • "description": "string",
  • "keywords": [
    ],
  • "principal_urn": "urn:globus:auth:identity:46bd0f56-e24f-11e5-a510-131bef46955c",
  • "globus_auth_username": "string",
  • "flow_url": "http://example.com",
  • "subscription_id": "aa11a4c2-a467-43db-b413-c4ab0f5cf627"
}

Retrieve all Flows

Query the Flows service for a listing of Flows available to a user according to the permissions (role) they have on the Flow.

Authorizations:
None
query Parameters
per_page
integer >= 1
Default: 20
Example: per_page=50

The number of results to return in a single paged response.

page
integer >= 1
Default: 1
Example: page=2

The page of results to return.

filter_roles
Array of strings
Deprecated
Default: "flow_owner,flow_viewers,flow_starters,flow_administrators"
Items Enum: "flow_owner" "flow_viewers" "flow_starters" "flow_administrators"
Example: filter_roles=flow_owner,flow_viewers

Return Flows for which the user has the supplied role. The role the user has on the Flow dictates the operations they can perform. If multiple roles are specified, the user will have at least one of the specified roles on each Flow returned.

filter_role
string
Enum: "flow_viewer" "flow_starter" "flow_administrator" "flow_owner"
Example: filter_role=flow_starter

Return Flows for which the user has the provided role. The role the user has on the Flow dictates the operations they can perform. Roles are cumulative in the sense that having, for example, the "flow_starter" role also implies having the "flow_viewer" role. Thus, specifying "flow_starter" will also include all Flows for which the user has "flow_viewer" role as well. If not provided, only Flows for which the caller has "flow_owner" role will be returned.

filter_scope_string
Array of strings
Example: filter_scope_string=0abc,100

Performs a case insensitive substring based search on the Flows' scope string fields. If multiple values are specified, each Flow returned is guaranteed to contain at least one of the strings in its scope strings.

filter_title
Array of strings
Example: filter_title=hello,science

Performs a case insensitive substring based search on the Flows' title field. If multiple values are specified, each Flow returned is guaranteed to contain at least one of the strings in its title.

filter_subtitle
Array of strings
Example: filter_subtitle=hello,science

Performs a case insensitive substring based search on the Flows' subtitle field. If multiple values are specified, each Flow returned is guaranteed to contain at least one of the strings in its subtitle.

filter_description
Array of strings
Example: filter_description=hello,science

Performs a case insensitive substring based search on the Flows' description field. If multiple values are specified, each Flow returned is guaranteed to contain at least one of the strings in its description.

filter_keywords
Array of strings
Example: filter_keywords=hello,science

Performs a case insensitive substring based search on the Flows' keywords field. If multiple values are specified, each Flow returned is guaranteed to contain at least one of the substrings as a keyword.

filter_fulltext
Array of strings
Example: filter_fulltext=globus

Given a one or more patterns, this filter searches against a pre-defined subset of fields for a match. If any of the fields match any of the patterns, the Flow is considered a match.

The fields that are automatically searched in are:

  • title
  • subtitle
  • flow_owner
  • description
  • id
  • flow_administrators
orderby
Array of strings
Example: orderby=title+ASC,id+DESC

An ordering criteria to apply to the resulting Flows listing. The first value indicates the field to order on, and the second value indicates the sorting order. The first ordering criteria will be used to sort the data, subsequent ordering criteria will be applied for ties.

Fields that support ordering are:

  • id
  • scope_string
  • flow_owner
  • flow_administrators
  • title
  • created_at
  • updated_at

Supported orderings are:

  • ASC
  • DESC

Responses

Response samples

Content type
application/json
{
  • "flows": [
    ],
  • "limit": 0,
  • "marker": "string",
  • "has_next_page": true
}

Retrieve a Flow

Get a previously deployed Flow.

Authorizations:
None
path Parameters
flow_id
required
string

The ID for the Flow whose definition is being looked up.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "definition": {
    },
  • "input_schema": { },
  • "globus_auth_scope": "http://example.com",
  • "globus_auth_scopes_by_RunAs": [],
  • "user_role": "flow_viewer",
  • "flow_viewers": [
    ],
  • "flow_starters": [
    ],
  • "flow_administrators": [
    ],
  • "flow_owner": "urn:globus:auth:identity:46bd0f56-e24f-11e5-a510-131bef46955c",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "synchronous": true,
  • "log_supported": true,
  • "types": [
    ],
  • "api_version": "1.0",
  • "title": "string",
  • "subtitle": "string",
  • "description": "string",
  • "keywords": [
    ],
  • "principal_urn": "urn:globus:auth:identity:46bd0f56-e24f-11e5-a510-131bef46955c",
  • "globus_auth_username": "string",
  • "flow_url": "http://example.com",
  • "subscription_id": "aa11a4c2-a467-43db-b413-c4ab0f5cf627"
}

Update a Flow

Update a previously deployed Flow.

Authorizations:
None
path Parameters
flow_id
required
string

The ID for the Flow whose definition is being looked up.

Request Body schema: application/json
required
object (FlowDefinition)
title
string [ 1 .. 128 ] characters

A non-unique, human-friendly name used for displaying the provider to end users.

Responses

Request samples

Content type
application/json
{
  • "definition": {
    },
  • "title": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "definition": {
    },
  • "input_schema": { },
  • "globus_auth_scope": "http://example.com",
  • "globus_auth_scopes_by_RunAs": [],
  • "user_role": "flow_viewer",
  • "flow_viewers": [
    ],
  • "flow_starters": [
    ],
  • "flow_administrators": [
    ],
  • "flow_owner": "urn:globus:auth:identity:46bd0f56-e24f-11e5-a510-131bef46955c",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "synchronous": true,
  • "log_supported": true,
  • "types": [
    ],
  • "api_version": "1.0",
  • "title": "string",
  • "subtitle": "string",
  • "description": "string",
  • "keywords": [
    ],
  • "principal_urn": "urn:globus:auth:identity:46bd0f56-e24f-11e5-a510-131bef46955c",
  • "globus_auth_username": "string",
  • "flow_url": "http://example.com",
  • "subscription_id": "aa11a4c2-a467-43db-b413-c4ab0f5cf627"
}

Remove a Flow

Remove a Flow from the Flow service.

Authorizations:
None
path Parameters
flow_id
required
string

The ID for the Flow whose definition is being looked up.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "definition": {
    },
  • "input_schema": { },
  • "globus_auth_scope": "http://example.com",
  • "globus_auth_scopes_by_RunAs": [],
  • "user_role": "flow_viewer",
  • "flow_viewers": [
    ],
  • "flow_starters": [
    ],
  • "flow_administrators": [
    ],
  • "flow_owner": "urn:globus:auth:identity:46bd0f56-e24f-11e5-a510-131bef46955c",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "synchronous": true,
  • "log_supported": true,
  • "types": [
    ],
  • "api_version": "1.0",
  • "title": "string",
  • "subtitle": "string",
  • "description": "string",
  • "keywords": [
    ],
  • "principal_urn": "urn:globus:auth:identity:46bd0f56-e24f-11e5-a510-131bef46955c",
  • "globus_auth_username": "string",
  • "flow_url": "http://example.com",
  • "subscription_id": "aa11a4c2-a467-43db-b413-c4ab0f5cf627"
}

Retrieve all Flows Deprecated

Query the Flows service for a listing of Flows available to a user according to the permissions (role) they have on the Flow.

Authorizations:
None
query Parameters
roles
Array of strings
Default: "flow_owner"
Items Enum: "flow_owner" "flow_viewers" "flow_starters" "flow_administrators"
Example: roles=flow_owner,flow_viewers

Return Flow's for which the user has the supplied role. The role the user has on the Flow dictates the operations they can perform.

Responses

Response samples

Content type
application/json
{
  • "flows": [
    ],
  • "limit": 0,
  • "marker": "string",
  • "has_next_page": true
}

Runs

Invoke a Flow

Run an instance of a particular Flow.

Authorizations:
None
path Parameters
flow_id
required
string

The ID for the Flow to run.

Request Body schema: application/json
body
required
object

A Flow specific input body. If the Flow defines an input schema, this input will be validated against it. If the Flow does not define an input schema, the Flow will be run with whatever the contents of this field is.

tags
Array of strings (Tags) unique [ items [ 1 .. 256 ] characters ]

A list of tags to associate with the Run.

Tags are normalized by stripping leading and trailing whitespace, and replacing all whitespace with a single space.

Responses

Request samples