Flows API
  • Globus Flows
  • Overview
  • Getting Started
    • How to Run a Flow
    • How to Monitor a Flow Run
    • How to Create a Flow
  • Authoring Flows
    • Introduction
    • Actions
    • Expressions
    • Choice States
    • Wait States
    • Fail States
    • Pass States
    • Protecting Secrets
    • Handling Exceptions
    • Performing Actions as Different Users
    • Run Context
    • Validating Flow Definitions
  • Authoring Input Schemas
  • Authentication and Authorization
  • Consents and Resuming Runs
  • Permissions
  • Limits
  • Hosted Action Providers
    • Hello World
    • Globus Search - Ingest Task
    • Globus Search - Delete Task
    • Send Notification Email
    • Wait For User Selection
    • Expression Evaluation
    • DataCite Mint
    • Transfer APs
    • Compute AP
  • Example Flows
    • Simple Transfer
    • Move (copy and delete) files
    • Transfer and Share Files
    • Two Stage Globus Transfer
    • Transfer After Approval
    • Looping Batched Move
    • Tar and Transfer with Globus Compute
Skip to main content
Globus Docs
  • Getting Started
    Getting Started

    Getting Started and Tutorial docs cover how to perform some activity or provide an introduction to a feature. They are not comprehensive, but help you get started with Globus or with new Globus features.

    • Users
    • Admins
    • Developers
  • Reference
    Reference
    • Service
      • Auth
      • Groups
      • Transfer
      • Timers
      • Flows
      • Compute
      • Search
    • Agents
      • Globus Connect Server
      • GCS CLI
      • Globus Connect Personal
      • Globus Compute
    • SDK
      • Python
      • JS
    • Clients
      • CLI
    • Security and Compliance
      • Product Security
      • Privacy
      • Solutions for Sensitive Data
      • FAQs
  • Solutions & Guides
    Solutions & Guides

    Find practical approaches for leveraging Globus in research environments, integrating with platforms, and building science gateways. Access hands-on guides, integration instructions, and real-world scenarios for advanced usage.

    • Portals/Science Gateways
    • Guides
  • Support
    Support

    Find answers to frequently asked questions, connect with the community by joining our mailing lists, or reach out directly to Globus support.

    • FAQs
    • Mailing Lists
    • Contact Us
    • Check Support Tickets
  • Site Search
  1. Home
  2. Globus Services
  3. Globus Flows
  4. Authoring Flows
  5. Pass States

Pass States

The Pass state ("Type": "Pass") passes input to output and does no work.

Primarily a Pass is used to manipulate a run's data or to act as a terminal success state (the opposite of a Fail state).

Pass states may contain a ResultPath, a JSONPath expression indicating where the input should be placed in the output from the state. If given an InputPath, a Pass state takes its input from a particular location in the flow run's current data.

Pass states may also contain a Result, containing static output data.

Pass states are also useful as terminal success states, for example after a Choice state.

Fields

The following fields are the valid parameters to a Pass state.

InputPath

A JSONPath expression, indicating a source in the run's current data. This is most useful when combined with ResultPath.

ResultPath

A JSONPath expression, indicating a source in the run's current data. This is most useful when combined with ResultPath.

Result

A static payload to use as the state output.

Next

The string name of the next state.

End

If set to true, the run terminates with a success upon reaching this state.

Either "End": true or Next must be set.

Examples

This Pass state specifies an InputPath and a ResultPath, which means it effectively moves data round.

{
  "Type": "Pass",
  "InputPath": "$.DataOrigin",
  "ResultPath": "$.DataDestination",
  "Next": "AfterPass"
}

This means that if the run's data, upon reaching this state is

{
  "DataOrigin": "0 degrees North by 0 degrees West",
  "DataTransitMethod": "Sneakernet"
}

then the run's data upon exiting this state, and transitioning to the "AfterPass" state, will be

{
  "DataDestination": "0 degrees North by 0 degrees West",
  "DataTransitMethod": "Sneakernet"
}

This Pass state puts all of the input data into the field named "Nested", then transitions to the state named "AfterPass":

{
  "Type": "Pass",
  "ResultPath": "$.Nested",
  "Next": "AfterPass"
}

This is a simple successful end state for a flow, phrased as a Pass:

{
  "Type": "Pass",
  "End": true
}
  • Globus Flows
  • Overview
  • Getting Started
    • How to Run a Flow
    • How to Monitor a Flow Run
    • How to Create a Flow
  • Authoring Flows
    • Introduction
    • Actions
    • Expressions
    • Choice States
    • Wait States
    • Fail States
    • Pass States
    • Protecting Secrets
    • Handling Exceptions
    • Performing Actions as Different Users
    • Run Context
    • Validating Flow Definitions
  • Authoring Input Schemas
  • Authentication and Authorization
  • Consents and Resuming Runs
  • Permissions
  • Limits
  • Hosted Action Providers
    • Hello World
    • Globus Search - Ingest Task
    • Globus Search - Delete Task
    • Send Notification Email
    • Wait For User Selection
    • Expression Evaluation
    • DataCite Mint
    • Transfer APs
    • Compute AP
  • Example Flows
    • Simple Transfer
    • Move (copy and delete) files
    • Transfer and Share Files
    • Two Stage Globus Transfer
    • Transfer After Approval
    • Looping Batched Move
    • Tar and Transfer with Globus Compute
© 2010- The University of Chicago Legal Privacy Accessibility