The Axon Server command line interface allows updating the Axon Server configuration through scripts or from a command line.
For the Axon Server Standard edition the only supported commands are:
- metrics
- users
- register-user
- delete-user
Axon Server Enterprise edition supports these additional commands:
- applications
- register-application
- delete-application
- init-cluster
- cluster
- register-node
- unregister-node
- contexts
- register-context
- delete-context
- add-node-to-context
- delete-node-from-context
The general format of command line commands is:
java -jar axonserver-cli.jar <Command> -S <url-to-axonserver> <command options>
Or when running from a bash-like shell:
axonserver-cli.jar <Command> -S <url-to-axonserver> <command options>
The option -S with the url to the Axon Server is optional, if it is omitted it defaults to http://localhost:8024.
When running Axon Server with access control enabled, executing commands remotely requires an access token. This has to provided with the -t option. When you run a command on the Axon Server node itself, you don't have to provide a token.
For Axon Server Standard Edition the token is specified in the axonserver.properties file (property name = axoniq.axonserver.token). In Enterprise Edition you need to register an application with ADMIN role, and you can use that application's token to perform command line commands remotely.
This section describes all commands supported by the command line interface, grouped by subject.
Usage:
axonserver-cli.jar metrics
Overview of all Axon specific metrics.
When using Axon Server with access control enabled, users need to be defined to access the Axon Server Dashboard. Users with only READ role can view the information in Axon Server Dashboard but not make any changes, users with ADMIN role can make changes.
users
Usage:
axonserver-cli.jar users
Returns a list of all registered users and their roles.
register-user
Usage:
axonserver-cli.jar register-user -u username [-r roles] [-p password]
Registers a user with specified roles. If no roles are specified, Axon Server registers the user with READ role.
Specify multiple roles by giving a comma separated list (without spaces), e.g. READ,ADMIN.
If you do not specify a password with the -p option, the command line interface will prompt you for one.
delete_user
Usage:
axonserver-cli.jar delete-user -u username
Deletes the specified user.
applications
Usage:
axonserver-cli.jar applications
Lists all applications and the roles per application per context.
register-application
Usage:
axonserver-cli.jar register-application -a name [-d description] [-r roles] [-T token]
Registers an application with specified name. Roles is a comma seperated list of roles per context, where a role per context is the combination of @, e.g. READ@context1,WRITE@context2. If you do not specify the context for the role it will be for context default.
If you omit the -T option, Axon Server will generate a unique token for you. Applications must use this token to access Axon Server. Note that this token is only returned once, you will not be able to retrieve this token later.
delete-application
Usage:
axonserver-cli.jar delete-application -a name
Deletes the application from Axon Server. Applications will no longer be able to connect to Axon Server using this token.
cluster
Usage:
axonserver-cli.jar cluster
Shows all the nodes in the cluster, including their hostnames, http ports and grpc ports.
init-cluster
Usage:
axonserver-cli.jar init-cluster [-c context]
Initializes the cluster, creates the _admin context and the specified context. If no context specified it creates default context.
register-node
Usage:
axonserver-cli.jar register-node -h node-in-cluster [-p internal-grpc-port] [-c context]
Tells this Axon Server node to join a cluster. You need to specify the hostname and optionally the internal port number of a node that is the leader of the _admin context. If you do not specify the internal port number it uses 8224 (default internal port number for Axon Server).
If you specify a context, the new node will be a member of the specified context. If you haven't specified a context, the new node will become a member of all defined contexts.
unregister-node
Usage:
axonserver-cli.jar unregister-node -n nodename
Removes the node with specified name from the cluster. After this, the node that is deleted will still be running in standalone mode.
contexts
Usage:
axonserver-cli.jar contexts
Lists all contexts and the nodes assigned to the contexts. Per context it shows the master (responsible for replicating events) and the coordinator (responsible for rebalancing).
register-context
Usage:
axonserver-cli.jar register_context -c name [-n nodes]
Creates a new context, with the specified nodes assigned to it. If you do not specify nodes, all nodes will be assigned to the context.
delete-context
Usage:
axonserver-cli.jar delete-context -c name
Deletes a context.
add-node-to-context
Usage:
axonserver-cli.jar add-node-to-context -c context -n nodename
Adds the node with name to the specified context.
delete-node-from-context
Usage:
axonserver-cli.jar delete-node-from-context -c context -n nodename
Deletes the node with name from the specified context.