CLI Usage
The ionflow CLI provides a range of subcommands that can be used to manage and interact with the different components of the service, such as bay, kutlass, and row.
To use the ionflow CLI, run the ionflow command followed by a subcommand and any necessary flags or arguments. For example, to manage files and folders in Ionbay, run the ionflow bay
command. To get help for a specific subcommand, run the ionflow [command] --help
command.
Ionflow Subcommands
The ionflow CLI includes the following subcommands:
ionflow bay
The bay
subcommand is used to manage files and folders in the Ionbay directory manager. It allows users to create, delete, and list directories, as well as upload and download files.
add
The ionflow bay add
command is used to add a new, monitored directory to the ionflow instance.
The ionflow bay add
command also requires the user to specify a parent bay for the new bay using the --parent
flag.
Example:
ionflow bay add --parent my-parent-bay
!!! tip To integrate directly with Ionrow the parent should be the rowId the directory should be associated to.
ionflow bay file
The file
subcommand is used to manage files within a bay.
list
The ionflow bay file list
command is used to list files associated with a specific bay. The command requires the --bayId
flag to be specified, which identifies the bay for which the associated files should be listed.
The ionflow bay file list
command also requires the --parent
flag to be specified, which identifies the parent of the bay being queried. This is necessary because the --bayId
flag only identifies a bay within the context of its parent.
Example:
ionflow bay file list --bayId my-bay --parent my-parent-bay
To list the files associated with the bay with an ID of my-bay that is a child of the bay with an ID of my-parent-bay, the following command can be used:
ionflow bay folder
The folder
subcommand is used to directly add named folders into a bay (for organizational purposes).
add
The ionflow bay folder add
command is used to add a new folder to a specific bay. The command requires the --bayId
flag to be specified, which identifies the bay to which the new folder should be added.
The ionflow bay folder add
command also requires the --parent
flag to be specified, which identifies the parent of the bay being queried. This is necessary because the --bayId
flag only identifies a bay within the context of its parent.
In addition to the --bayId
and --parent
flags, the ionflow bay folder add
command requires the name of the new folder to be specified as the first argument.
Example: To add a new folder with the name my-folder to the bay with an ID of my-bay that is a child of the bay with an ID of my-parent-bay, the following command can be used:
ionflow bay folder add my-folder --bayId my-bay --parent my-parent-bay
!!! warning
Note that both the --bayId
and --parent
flags are required to properly identify the bay to which the new folder should be added. The name of the new folder must be specified as the first argument.
daemon
The ionflow bay daemon
command is used to start a ionbay daemon. The ionbay daemon can be run independently from the ionflow
server as a file monitoring agent. This can be useful in deployments where there is not a single shared file system.
To start a ionbay daemon with the default configuration, the ionflow bay daemon command can be run without any flags:
ionflow bay daemon
To start a ionbay daemon using a custom configuration file located at /path/to/my-config.conf
, the --config
flag can be used:
ionflow bay daemon --config /path/to/my-config.conf
completion
The completion subcommand is used to generate autocompletion scripts for the ionflow CLI. It supports bash, zsh, powershell, and fish shells.
To use the completion subcommand, run the ionflow completion [shell] command, where [shell] is the name of the shell for which you want to generate the autocompletion script. For example, to generate an autocompletion script for the bash shell, run the ionflow completion bash
command.
ionflow kutlass
Manage kutlass workflows
ionflow kutlass event
Send cloud events to kutlass
send
The ionflow kutlass event send
command is used to send a cloud event to the Kutlass server.
To send a cloud event, use the following command:
ionflow kutlass event send [flags]
To send a cloud event with the source my-event-source and type my-event-type, and data {"key": "value"}
, use the following command:
ionflow kutlass event send --source=my-event-source --type=my-event-type --data='{"key": "value"}'
ionflow kutlass wi
Manage kutlass workflow instances
watch
The ionflow kutlass wi watch
command is used to stream workflow instances from the Kutlass server.
To use the ionflow kutlass wi watch
command, run it without any arguments or flags:
ionflow kutlass wi watch
By default, the ionflow kutlass wi watch
command streams all available workflow instances from the Kutlass server.
To specify a particular resource version to stream from, use the --resource-version
flag:
ionflow kutlass wi watch --resource-version 123
For more information about streaming, read here.
ionflow kutlass workflows
Manage kutlass workflows
create
The ionflow kutlass workflows create
command is used to create a new workflow in the Ionflow service. This command requires the user to provide the path to a JSON or YAML file containing the workflow definition using the --file
flag.
To create a new workflow using a file located at /path/to/my-workflow.json
, the following command can be used:
ionflow kutlass workflows create --file /path/to/my-workflow.json
delete
The ionflow kutlass workflows delete
command is used to delete a workflow from the Ionflow service.
To delete a workflow, the user must provide the ID of the workflow as an argument to the command. For example, to delete the workflow with an ID of my-workflow-id, the following command can be used:
ionflow kutlass workflows delete --workflow-id my-workflow-id
The --force
flag can also be used to delete a workflow even if it is currently in use.
ionflow kutlass workflows delete --workflow-id my-workflow-id --force
list
The ionflow kutlass workflows list
command is used to list all available workflows in the Ionflow service.
To list the workflows in the service, the user can run the ionflow kutlass workflows list command without any flags:
ionflow kutlass workflows list
This command will return a list of all workflows in the service. The list will be displayed in the terminal or command prompt, and it can be used to view and analyze the available workflows.
run
The ionflow kutlass workflows run
command is used to run a workflow in the Ionflow service.
To run a workflow, the user must specify the ID of the workflow using the --id
flag. They can also specify input data for the workflow using the --data
flag, which should be provided in JSON format.
For example, to run the workflow with an ID of my-workflow-id and input data of {"input": "value"}
, the following command can be used:
ionflow kutlass workflows run --id my-workflow-id --data '{"input": "value"}'
The --blocking
flag can be used to enable blocking mode, which will wait until the workflow completes before returning the result. If this flag is not used, the command will return immediately after starting the workflow.
ionflow row
The row
subcommand is used to manage ionrow schema and data. It allows users to manipulate Ionrow data like files, filters, and rows programatically.
add
The ionflow row add command
is used to add new rows to a space. The command optionally takes the --data
flag, which specifies the list of row data to add in JSON format. This data should include the keys and values for the columns in the space, and the values should be of the correct type as specified in the column definitions.
The ionflow row add command
also has the --column-identifier
flag, which specifies the column identifier to use for the row. This can either be id
or name
. If this flag is not provided, the default value of name
will be used.
In addition, the ionflow row add command
has the --space-id
flag, which specifies the ID of the space to which the new rows should be added. If this flag is not provided, the default space will be used.
Example:
To add new rows to the default space using the name column identifier, with data specified in the --data
flag, the following command can be used:
ionflow row add --data='[{"title": "123", "count":0}, {"title": "456", "count":1}]'
To add new rows to the space with an ID of my-space using the id column identifier, with data specified in the --data
flag, the --column-identifier
and --space-id
flags can be used:
ionflow row add --data='[{"bb458ba5-791b-4c40-8947-db26d3f0741d": "123", "471c4568-6245-4f79-a41e-b44afcbf9b96":0}, {"bb458ba5-791b-4c40-8947-db26d3f0741d": "456", "471c4568-6245-4f79-a41e-b44afcbf9b96":1}]'
The ionflow row add command has a special functionality where it can take data from stdin by passing the special @
value to the --data
flag. This allows the user to pass the row data to the command through stdin instead of directly specifying it in the command.
ionflow row add --data=@ < ./testdata/ionrow/standard-row-data.json
Where standard-row-data.json looks like:
[
{
"Collection ID": "1",
"Run ID": 1,
"Username": "user1",
"Test Case": "test1",
"Date": "2000-01-01",
"Temperature": 99.9,
"Angle": 45.0,
"Frequency": 1555,
"Completed": "true"
},
{
"Collection ID": "2",
"Run ID": 2,
"Username": "user2",
"Test Case": "test2",
"Date": "2000-01-01",
"Temperature": 99.9,
"Angle": 45.0,
"Frequency": 1555,
"Completed": "true"
}
]
update
The ionflow row update
command is used to update an existing row on the Ionflow service.
To update an existing row, the user must provide the ID of the row as an argument to the command. For example, to update the row with an ID of my-row-id, the following command can be used:
ionflow row update my-row-id
The ionflow row update command
also allows the user to specify additional flags to modify the data in the row. For example, to set the title column to the value 123 and the count column to 0, the user can use the --data
flag as follows:
ionflow row update my-row-id --data='{"title": "123", "count":0}'
The ionflow row update
command also allows the user to specify the --data
flag value as @
to read the request contents from stdin
. This can be useful if you want to generate the data programmatically or if you want to pass it to the command from a file.
For example, to pass data from a file named data.json
to the ionflow row update
command, you can use the following command:
cat data.json | ionflow row update my-row-id --data='@'
This command reads the contents of the data.json
file using the cat command and passes it to the ionflow row update
command using a pipe (|). The --data='@'
flag tells the ionflow row update
command to read the request contents from stdin, which allows the data from the data.json
file to be passed to the command as input.
watch
The ionflow row watch
command is used to stream rows from a specific view in the Ionflow service.
To stream rows from a view, the user must provide the ID of the view as an argument to the command. For example, to stream rows from a view with an ID of my-view-id, the following command can be used:
ionflow row watch my-view-id
The ionflow row watch command can also accept the --resource-version
flag, which allows the user to specify a resource version to watch from. The server will respond with changes that itemize the outcome of operations (such as create, delete, and update) that occurred after the specified resource version.
For example, to stream rows from a view with an ID of my-view-id starting from a resource version of 123, the following command can be used:
ionflow row watch my-view-id --resource-version=123
This command will stream rows from the view with an ID of my-view-id, starting from the resource version of 123 and displaying any changes that occur after that resource version.
For more information about streaming, read here.
ionflow row column
Manage the columns associated with a particular space
delete
The ionflow row column delete command is used to delete a column and all of its data from a space in the Ionflow service.
To delete a column, the user must provide the ID of the column as an argument to the command. For example, to delete the column with an ID of my-column-id, the following command can be used:
ionflow row column delete my-column-id
!!! warning This command will delete the specified column and all of its data from the space. Please note that this action can be undone, but requires technical support.
list
The ionflow row column list
command is used to list all columns in a space within the Ionflow service.
To list the columns in a space, the user can use the --space-id
flag to specify the ID of the space that they want to list the columns for. For example, to list the columns in a space with an ID of my-space-id, the following command can be used:
ionflow row column list --space-id my-space-id
This command will return a list of all columns in the specified space, along with their names and data types. The list will be displayed in the terminal or command prompt, and it can be used to view and analyze the structure of the space.
ionflow row file
Manage the files associated with rows, using the automatic tracking with Ionbay.
list
The ionflow row file list
command is used to list all available files for a given row in the Ionflow service.
To list the files for a row, the user must provide the ID of the row as an argument to the command. For example, to list the files for a row with an ID of my-row-id, the following command can be used:
ionflow row file list my-row-id
This command will return a list of all available files for the specified row, along with their names and sizes. The list will be displayed in the terminal or command prompt, and it can be used to view and analyze the files associated with the row.
watch
The ionflow row file watch
command is used to stream file updates for a given row in the Ionflow service.
To stream file updates for a row, the user must provide the ID of the row and the ID of the bay that the row is associated with using the --row
and --bayId
flags, respectively. For example, to stream file updates for a row with an ID of my-row-id and a bay ID of my-bay-id, the following command can be used:
ionflow row file watch --row my-row-id --bayId my-bay-id
For more information about streaming, read here.
ionflow row filterset
Manage filtersets in Ionrow
create
The ionflow row filterset create
command is used to create a filterset for a particular view in the Ionflow service. A filterset is a set of filters that can be applied to a view to limit the rows that are displayed.
To create a filterset, the user must provide the ID of the view as an argument to the command. For example, to create a filterset for a view with an ID of 123456, the following command can be used:
ionflow row filterset create 123456
ionflow row space
Manage spaces within the ionrow instance.
add
The ionflow row space add
command is used to add a new space to the Ionflow instance.
To add a new space, use the following command:
ionflow row space add [flags]
To add a new space with the name my-space and column data '[{"name":"title","fieldType":"text"},{"name":"count","fieldType":"int"}]', use the following command:
ionflow row space add --name=my-space --column-set='[{"name":"title","fieldType":"text"},{"name":"count","fieldType":"int"}]'
Column data can be provided using the '@' value for the --column-set
flag, and passing data via stdin
, for example:
echo '[{"name":"title","fieldType":"text"},{"name":"count","fieldType":"int"}]' | ionflow row space add --column-set='@'
In this example, the column data is provided as a string in the terminal using the echo command, and it is passed to the ionflow row space add command using a pipe (|). The --column-set='@'
flag tells the ionflow row space add
command to read the request contents from stdin
, which allows the column data string to be passed to the command as input.
This can be useful if you want to generate the column data programmatically or if you want to pass it to the command from a file.
update
The ionflow row space update command
is used to update an existing space in the Ionflow instance.
To update a space, use the following command:
ionflow row space update [flags]
To update a space with the ID my-space-id and set its name to new-name and its column data to '[{"name":"title","fieldType":"text"},{"name":"count","fieldType":"int"}]', use the following command:
ionflow row space update --space-id=my-space-id --name=new-name --column-set='[{"name":"title","fieldType":"text"},{"name":"count","fieldType":"int"}]'
To update a space with the ID my-space-id and set its column data to '[{"name":"title","fieldType":"text"},{"name":"count","fieldType":"int"}]', using data provided via stdin
, use the following command:
echo '[{"name":"title","fieldType":"text"},{"name":"count","fieldType":"int"}]' | ionflow row space update --space-id=my-space-id --column-set='@'
list
The ionflow row space list
command is used to list all available spaces on the Ionflow instance.
ionflow row space list
This command will return a list of all available spaces, along with their names and IDs. The list will be displayed in the terminal or command prompt, and it can be used to view and analyze the spaces available on the Ionflow instance.
ionflow row view
Manage ionflow views.
add
The ionflow row view add
command is used to add a new view to a Ionflow instance.
To add a new view to a space with an ID of my-space-id, use the following command:
ionflow row view add my-space-id
To specify the name, category, and viewability of the view, the --name
, --category
, and --viewability
flags can be used. For example, to add a view with the name my-view, category my-category, and viewability private, use the following command:
ionflow row view add my-space-id --name=my-view --category=my-category --viewability=private
The --description
flag can be used to provide a description for the view. For example, to add a view with a description of This is my view
, use the following command:
ionflow row view add my-space-id --description='This is my view'
list
The ionflow row view list
command is used to list all available views for a given space in the Ionflow service.
To list the views for a space, the user must provide the ID of the space as an argument to the command. For example, to list the views for a space with an ID of my-space-id, the following command can be used:
ionflow row view list my-space-id
This command will return a list of all available views for the specified space, along with their names and descriptions. The list will be displayed in the terminal or command prompt, and it can be used to view and analyze the views associated with the space.
server
The ionflow server
command is used to start a ionflow server. Starting the server automatically starts the Kutlass, Ionrow, and Ionbay services.
To start a ionrow server with the default configuration, the ionflow server command can be run without any flags:
ionflow server
To start a ionrow server using a custom configuration file located at /path/to/my-config.conf
, the --config
flag can be used:
ionflow server --config /path/to/my-config.conf