Command Line Interface

What is the DataGrove CLI?

To manage DataGrove you can use our APIs, but the easiest and fastest way to do manage DataGrove is by using our Command Line Interface (CLI). The CLI allows you to manage the state of your versioned data, tag and restore it instantly.

$ datagrove command [parameters...]

Global parameters

Global commands are available for all commands and are useful when the DataGrove server is on a different machine than the DataGrove CLI.

  • -u=The username to use with the repository, default is the iSCSI controller ID
  • -h=The IP address of the repository, default is localhost
  • -p=The TCP port of the repository, default is 12346

$ datagrove load -h= -p=1004 -n="formatted drive"
$ datagrove unload -h= -p=1004

CLI Commands


$ datagrove tag -n=name -d=description

Tag the current version of data in the DataGrove server. The new tag will be available to load from now on. Tag will also momentarily disconnect and reconnect the iSCSI controller to allow the buffers to flush and the state of the drive to be consistent. A random UUID is created for the new tag, and can be discovered using the list command.

Note: If the iSCSI controller doesn’t allow the drive to be disconnected, tagging will fail.


  • n or name = a short name of the new tag
  • d or description = a longer description of the new tag

$ datagrove tag -n="added event_id" -d="added a new column to the event table with primary key"



List existing tags in the DataGrove server. The result is a printed list of UUID and tag names.

$ datagrove list


detail -t=UUID -n=name

Prints the details of the given tag: name, parent tag, date of creation and description.


  • t or tag_id = the UUID of the version
  • n or name = the name of the Version
Either parameter is acceptable. Tag id takes precedence.

$ datagrove detail -t=f5b5451c-5e7c-455c-b8f2-30d0ac982ca1


remove -t=UUID

Removes the tag with the entered UUID from the DataGrove server repository. This tag will no longer be available to load. The DataGrove server’s internal garbage collection will remove the data no longer required.


  • t or tag_id = the UUID of the version

$ datagrove remove -t=f5b5451c-5e7c-455c-b8f2-30d0ac982ca1


load -t=UUID -n=name

Load a specific version to the DataGrove server. After this command, the server will present a network drive with the requested version. This command also connects the iSCSI controller to the newly created drive.

Note: If the DataGrove server is already loaded, the load command will fail and the drive state will not change.


  • t or tag_id = the UUID of the version
  • n or name = the name of the tag given by the user

Either t or n must be present. If both are, then name takes precedence.

$ datagrove load -n="user table added"



Unload the current version from the DataGrove server. This command disconnects the iSCSI controller and flushes drive buffers prior to unloading the version to maintain a stable drive state.

Note: This command will fail if the DataGrove server is not loaded.

$ datagrove unload


Be Sociable, Share!