Namespaces

In Flux, workflows, business calendars, engine configurations, agent configurations, and PGP keys are stored and organized using a hierarchical namespace system called the “namespace tree”.

Just like a file system on a server, namespaces in Flux begin at a root level (“/”), followed by a series of 0 or more “folders” or “branches”, then finally a unique name for the workflow itself, to identify the workflow among other workflows on the same branch.

A typical workflow namespace might look something like this:

/FolderA/SubFolderA/MyWorkflowName

This namespace begins with the root (“/”), followed by the name of a branch (branch names should end with the “/” character, to indicate a branch in the namespace tree rather than a specific name), another branch below that one, and finally the name of the item. In this case, the item name is the name of the workflow, but it could also be the name of a configuration, calendar, or PGP key.

Items can also be stored directly in the root of the namespace tree:

/MyBusinessCalendar

When you create a workflow in Flux, you’ll be asked to give it a name that conforms to the namespace system. Your namespaces can be arbitrarily simple or complex; Flux doesn’t place any restrictions on workflow namespaces, except that every namespace must begin at the root (“/”) level.

workflows can also be stored at any level on the tree. For example, you might have several workflows running in Flux with a namespace tree that looks like:

/Workflow 
/FolderA/Workflow 
/FolderA/SubFolderA/Workflow
/FolderB/Workflow 
/FolderB/SubFolderB/Workflow 
/FolderB/SubFolderB/ThirdLevelB/Workflow

These namespaces are not only used to organize workflows according to their branches, but also control how a particular workflow will relate to other concepts in Flux like the runtime configuration. For this reason, we suggest storing workflows that share many common properties or similar functionality under the same namespace to allow easy configuration.

For example, suppose that you have several workflows that all use Flux’s file transfer capabilities. Now suppose that within those workflows, one group will use a particular FTP server “ServerA”, and another will use a different server, “ServerB”. When setting up the workflows, you would just place all file transfer workflows under some namespace (say “FTP”), then you could add namespaces below that for “ServerA” and “ServerB”. You might end up with a namespace tree looking something like this:

/FTP/Workflow
/FTP/ServerA/Workflow 
/FTP/ServerA/Workflow2
/FTP/ServerB/Workflow
/FTP/ServerB/Workflow2

You could then use the runtime configuration to simplify the configuration of these workflows, and provide a central, common location for setting shared properties across those groups of workflows.

Occasionally while using Flux, you may be prompted to input a namespace in order to search for or operate on a workflow or set of workflows. If Flux prompts you for a namespace, note that you can either use the specific namespace of a certain workflow (“/FolderA/MyWorkflowName”), or you can enter a branch on the tree (“/FolderA/”) to get all of the workflows running under that branch. In these cases, the term “namespace” can be used interchangeably to refer to a particular workflow name and its full namespace, or simply to a branch on the namespace tree.