Globus Flows Action Provider ============================ funcX exposes an asynchronous `Action Provider `_ interface to allow functions to be used in a `Globus Flow `_. The funcX Action Provider interface uses: * ``ActionUrl`` -- 'https://automate.funcx.org' * ``ActionScope`` -- 'https://auth.globus.org/scopes/b3db7e59-a6f1-4947-95c2-59d6b7a70f8c/action_all' Action Input Schema ------------------- The Action Provider input schema accepts a list of tasks, with each task requiring an `endpoint`, `function`, and `payload` field. The endpoint and function arguments are UUIDs and the payload is a dictionary of kwargs to be passed to the function. .. code-block:: 'tasks': [{'endpoint.$': '', 'function': '', 'payload.$': ''}], When defining a funcX function to use within a flow it is recommended to define the specific kwargs that will be passed in as payload. If the kwargs are not known, a function can be defined to accept arbitrary kwargs using the `**` operator, e.g.: .. code-block:: 'Parameters': {'tasks': [{'endpoint.$': '$.input.fx_ep', 'function': '$.input.fx_fn', 'payload.$': '$.input'}]}, def my_function(**data): ... Gladier ------- The `Gladier `_ toolkit provides useful tools to simplify and accelerate the development of flows that use funcX. For example, Gladier validates inputs prior to starting a flow and will re-register functions when they are modified. Additionally, it includes capabilities to automatically generate flow definitions.