Command Line Interface
The Flux command line interface can be used from a shell, command prompt, or script to:
- Create a Flux engine
- Start an engine
- Stop/dispose an engine
- Check the status of an engine
- Start, stop, and dispose Flux Agents
- Check the status of your workflows
- Add new workflows to the engine
- Interact with workflows or namespaces that are running on the engine
Using the command-line interface allows you to interact with Flux directly, scheduling and administering workflow files with no programming required.
Displaying the Flux Version
You can use the following command to display your Flux version:
java -jar flux.jar
After running the command, the Flux version will be displayed to standard output.
Obtaining Help
To get help with the command, run the following command:
java -jar flux.jar help
This command displays a list of available commands. For help on a specific command, run:
java -jar flux.jar help <command>
where <command> is the name of a command you’d like more information on. The supported commands are:
Command | Description |
---|---|
client | Runs a command on an existing Flux engine. |
server | Administer (create, start, or stop) a Flux engine. |
agent-client | Runs a command on an existing Flux agent. |
agent-server | Creates and optionally starts a Flux agent. |
encryptedpassword | Encrypts passwords to avoid storing them in plain text in the configuration file. |
help | Displays help messages for each command. |
Creating a Flux Engine
To create a Flux engine from the command line, run the following command from the Flux home directory:
java -jar flux.jar server -cp config/engine-config.properties
This command creates a standard Flux server using the default configuration file, engine-config.properties.
You can also use this alternate syntax, which allows you to specify additional JVM parameters and class path settings:
java -classpath flux.jar;<your jars here> flux.Main server - cp config/engine-config.properties
In general, the flux.Main class provides the Flux command-line interface.
This command creates Flux using the specified Engine Configuration, in the stopped state. A stopped engine does not execute workflows.
To start the engine after creating it, include the start option on the command like so:
java -classpath flux.jar;<your jars here> flux.Main server - cp config/engine-config.properties start
The start command allows your engine to execute workflows.
Starting, Stopping, and Shutting Down an Engine
Once you’ve created an engine, you can start, stop, and shut it down from a separate command line prompt. This is done using the client command.
To use the client command to start an engine:
java -classpath flux.jar;<your jars here> flux.Main client start
To stop the engine:
java -classpath flux.jar;<your jars here> flux.Main client stop
And, finally, to dispose:
java -classpath flux.jar;<your jars here> flux.Main server dispose
Starting a Flux Agent
Like engines, Flux Agents can be started using the command-line interface. To start an agent:
java -classpath flux.jar;<your jars here> flux.Main agent-server -enginehost <your engine's host> start
This command will start a Flux agent that registers with an engine located on the default port number at the host specified.
For more detailed information on starting an agent using the CLI, refer to the Flux Agent Architecture section of this manual, which provides further details on creating an agent.
More Command line options
Flux provides a robust interface accessible through the command line, but it is an often overlooked feature. This article will break down the various command and abilities available with the command line.
Basic Syntax
Nearly all tasks accomplished from the command line have the same basic syntax:
java -classpath flux.jar flux.Main {sub section}{options}{method}
Agent-Server
The agent-server subsection on the command line is used to create agents. A complete list of options available for creating agents is available in Agents. Any options that are not specified will use their default values.
On the command-line, configuration settings share the name of their counterparts in the configuration file, but with the “_” characters removed – so “ENGINE_PORT” becomes “engineport”, et cetera.
For Example:
java -classpath flux.jar;<your jars here> flux.Main agent-server -configurationfile config/agent-config.properties start
Client
The client command on the command line allows you to manipulate the Flux engine. This command can perform tasks that are normally available through the Operations Console and API, like exporting workflows, expediting triggers, and retrieving general information about your workflows.
The following configuration options are available when invoking client commands. Any options that are not specified will use the default value.
Option | Description | Example |
---|---|---|
-host | The host which is currently running the Flux engine you are trying to establish a connection to. Defaults to localhost. | java -classpath flux.jar;<your jars here> flux.Main client -host myhost start |
-port | The port which the Flux engine is registered to. Defaults to 7520. | java -classpath flux.jar;<your jars here> flux.Main client -host myhost -port 7520 start |
-cp | The path to the configuration file for your fluxEngine. This can replace any other configuration option. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-configuration.properties start |
-username | The username of a user within the system that has proper permissions to perform operations on workflows. Required when dealing with a secured engine. | java -classpath flux.jar;<your jars here> flux.Main client -username admin -password admin start |
-password | Password for the user. Required when attempting to negotiate with a secured engine. | java -classpath flux.jar;<your jars here> flux.Main client -username admin -password admin start |
-encryptedpassword | If your password was encrypted using the Flux password encrypted (see the “encrypt-password” section of this article). | java -classpath flux.jar;<your jars here> flux.Main client -username admin -encryptedpassword e71iWuZK0qBPn8TowvLYfg== start |
There are many client methods available to invoke:
Method | Description | Example |
---|---|---|
start | Starts the engine to allow it to begin firing workflows. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin start |
stop | Stops the engine from proceeding with any work. The engine will still remain listening on the port to accept client and Operations Console connections, but will not run any workflows until it is started again. Disposing the engine will prevent it from listening on the port. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin stop |
isrunning | Reports whether or not an engine is running at the location given by the specified configuration settings. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin isrunning |
size | Reports how many workflows are running in the specified namespace. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin size / |
expedite | Expedites all workflows in the given namespace. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin expedite /namespace/ |
pause | Pauses all workflows in the given namespace. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin pause /namespace/ |
resume | Resumes all paused workflows in the given namespace. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin resume /namespace/ |
remove | Removes all workflows in the given namespace. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin remove /namespace/ |
interrupt | Sends the interrupt signal to all workflows currently running in the given namespace. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin interrupt /namespace/ |
export | Exports the given workflow to the engine specified in the configuration options. | java -classpath flux.jar;<your jars here> flux.Main client -cp config/engine-config.properties -username admin -password admin export thisworkflow.ffc |
Server
The server subsection of the command line interface deals directly with the creation of a Flux engine, and it therefore contains many of the most frequently invoked commands. Most configuration options for an engine are provided in a configuration file, so the options specified at the command line are fairly limited.
The only method available with the server command is “start”.
The following table contains a comprehensive list of configuration options that can be set from the command line.
Refer below for a comprehensive list.
Option | Description | Example |
---|---|---|
-host | The host name the engine is running on. | java -classpath flux.jar;<your jars here> flux.Main server -host localhost start |
-port | Specifies the port the engine listens to on the localhost. Defaults to 7520. | java -classpath flux.jar;<your jars here> flux.Main server -host localhost -port 7520 start |
-cp | The configuration file for the engine. Inside the file the bulk of the engine’s configuration options will be set. This includes, but is not limited to, database settings, security settings, and port settings. | java -classpath flux.jar;<your jars here> flux.Main server -cp config/engine-config.properties start |
-ssl | Enable SSL on the server. Defaults to true if not specified. | java -classpath flux.jar;<your jars here> flux.Main server -host localhost -port 7520 -ssl true start |
-username | The username used to log in to the engine. This is required if using a configuration file where security is enabled. | java -classpath flux.jar;<your jars here> flux.Main server -cp config/engine-config.properties -username admin -password admin start |
-password | The password used in conjunction with the username to log in to the engine. This is required if security is enabled. If not specified, prompts for a password. | java -classpath flux.jar;<your jars here> flux.Main server -cp config/engine-config.properties -username admin -password admin start |
-encryptedpassword | If you encrypted your password using the encryptpassword subsection of the command line interface, you will need to use this configuration option to pass it in. This is required if you are using security and want to obscure your password. | java -classpath flux.jar;<your jars here> flux.Main server -cp config/engine-config.properties -username admin -encryptedpassword admin start |
Encrypted Password
Flux provides a command line tool to encrypt your passwords for storage in configuration files, so you do not need to store plaintext passwords in the configuration or startup scripts.
Passwords can be easily encrypted from the command line:
java -cp .;flux.jar flux.Main encryptpassword yourpassword
The command will then print the encrypted password like so:
Encrypted password is e71iWuZK0qBPn8TowvLYfg==