A flow is a series of steps that are performed in a specified order. The Globus Flows service provides managed and reliable execution of flows. You can create your own flows and allow other users and groups to see, run, or manage them.
A flow definition is a document that describes the actions that will occur when running a flow and the details necessary to perform them. Some steps in a flow — called actions — may interact with an action provider. Action providers can allow flows to access and modify resources within Globus or externally managed services.
You can incorporate Globus resources and capabilities in your flows by using Globus-provided action providers. You can also define and run your own custom action provider to expand the set of tools available to your flows.
A flow definition is a JSON document. These resources will help you get started with writing your flow definition:
You can start experimenting by creating a simple flow to move and share data using our Jupyter notebook.
You can use these example flow definitions as starting points for developing your own flows.
You can access several simple flow definitions in this GitHub repository.
You can view flow definitions that others have shared with you. To use one of these flow definitions to start building your own flow, login to the Globus Web App and select Flows from the navigation menu. Open the Library tab to find a flow you are interested in, selecting the flow to open up its Overview page. Open the Definition tab and expand the Definition section to view the flow’s definition. If you’d like to use this as the basis of a new flow, you can copy the definition and paste it into a new JSON file.
Our flow authoring guide provides detailed instructions for how to write a flow definition.
The Globus CLI
flows Command Reference
provides a description of available CLI commands and their options.
An input schema is a document that describes the settings (called parameters) which a user can provide to customize a run of a flow.
Once you have written your flow definition and input schema, you are ready to register your flow with the Globus Flows service.
You can use the Globus Web App to create your flow. Login to the Globus Web App (app.globus.org). Open the Flows page from the navigation menu, select the Deploy a Flow tab, and then select the Deploy Flow button.
Fill out the form and select the Deploy Flow button.
Alternatively, you can create your flow from the Globus CLI using the command:
$ globus flows create "FLOW_TITLE" FLOW_DEFINITION_FILE –-input-schema INPUT_SCHEMA_FILE
FLOW_TITLE is the name of the flow,
INPUT_SCHEMA_FILE is the file containing the flow's input schema,
FLOW_DEFINITION_FILE is the name of the file containing the flow definition.
Using the command below, you may update an existing flow's definition and
input schema as well as metadata, such as the flow's title, keywords, and description.
You may also use this command to assign roles, which determine who can see, run, or manage your flow.
For a complete list of flow update options, see the
globus flows update Reference.
$ globus flows update [OPTIONS] FLOW_ID
The Globus web application may also be used to update flow metadata and assign roles. To update a flow using the web application, select Flows from the navigation menu. In the Library tab, find your flow and select it to open the flow's Overview page.
Once you have created a flow, your next steps are probably to run it in order to test your work.
Refer back to the How to Run a Flow Tutorial for a description of how to run your flow.