Micro Integrator CLI¶
The Micro Integrator CLI allows you to monitor the synapse artifacts (deployed in a specified Micro Integrator server) and perform various management and administration tasks from the command line. The CLI (as well as the dashboard) communicates with the management API of WSO2 Micro Integrator to function.
Installing the CLI¶
You can refer to the following video to get a quick understanding of how this is done.
To download the CLI:
- Go to WSO2 Enterprise Integrator website -> Download -> Other Resources, and click CLI Tooling.
-
If you are using a UNIX-based operating system (Linux, Solaris, and Mac OS X), be sure to set the
MI_CLI_HOME/bin
folder path as the PATH:export PATH=/path/to/mi/cli/directory/bin:$PATH
Using the CLI¶
-
Start the CLI
Execute the following command to start the CLI:
mi
The available commands are listed as follows:
mi is a Command Line Tool for Management of WSO2 Micro Integrator Usage: mi [command] Available Commands: api Manage deployed Apis compositeapp Manage deployed Composite Apps connector Manage connectors dataservice Manage deployed data services endpoint Manage deployed Endpoints help Help about any command inboundendpoint Manage deployed Inbound Endpoints localentry Manage localentries log-level Manage log4j2 properties logs List / download log files messageprocessor Manage messageprocessors messagestore Manage messagestores proxyservice Manage deployed Proxy Services remote Add, login to, logout of, remove, update or select Micro Integrator secret Manage sensitive information sequence Manage deployed Seqeunces task Manage deployed Tasks template Manage templates transaction Retrieve transaction count information user Manage users version Version of the CLI Flags: -h, --help help for ./mi -v, --verbose Enable verbose mode
-
Add MI servers
By default, the CLI connects to the management API of the Micro Integrator server that is running on localhost, which you can start using immediately.
However, when your Micro Integrator is running on a different host and port, or when you have multiple Micro Integrator servers running, you can connect them as remote servers to the CLI.
Execute the following command to add servers:
mi remote add <server-name> <hostname> <port>
Find out more about the
mi remote
option in the CLI Reference. -
Select MI server
If your Micro Integrator server is not running on localhost, you need to first select the required server.
Execute the following command to find all the servers that are connected to the CLI:
mi remote show
The connected servers are listed. See the following example:
remotes: TestServer: remote_address: 192.168.1.15 remote_port: "9165" access_token: "" default: remote_address: localhost remote_port: "9164" access_token: eyJraWQiOiJkMjU5MDU1YS1mYTBmLTRkZTAtYWM5OS01ZjY1YzZhMDc3ZGYiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlzcyI6Imh0dHBzOlwvXC8xMjcuMC4wLjE6OTE2NFwvIiwiZXhwIjoxNTk0NDcwODIxfQ.Hp41iNSTSI_xCCc2iwJxYVMq-gIsDCZQqw2V7GlhIJjdTHcBR3ijm1x-S8dP6Q04oFaVnoulT2oJ7wKANwxXA9LD1ASXlmUGpsrfgFWtAtYtEqtN_MHHh2wTn6Y38VUx7d8fuqPYYoOV_f1Orh8rN_AzilIf2YhQj6qw5Gjw8Z4Zl9IlVazYtAk7ZcNsUyKB0xRLjfDdc_XhAt70wePgFLH0EmP0RuLaSDbkWfiAGeEw77RIrAudzMdIHr6RaaKo-fp4nLzSuCMo_IdbdgybdBYWbEq0OtzRSK2HlHWRqYAjRyecUHHDLL-fnZAONmfY6MF5RTYyaoV8izQeca1DUA current_remote: default
To change the current_remote of the CLI, execute the following command:
mi remote select <server-name>
-
Log in
Execute the following command to log in to the selected server. You will be prompted to enter the username and password.
mi remote login
Alternatively, you can pass the user name and password in a single command:
Note
If you are on Windows, you must always log in with the following command.
mi remote login [username] [password]
To logout from the CLI, use the following command:
mi remote logout
Once you are logged in to a Micro Integrator server's management API, you can use the available options and commands to manage artifact deployments and to perform other adminstration tasks.
Monitoring artifacts using the CLI¶
You can refer to the following video to get a quick understanding of how this is done.
CLI Reference¶
global flags¶
The following global flags can be used with all the mi
options and commands.
--verbose Enable verbose logs (provides more information on execution).
--help, -h Display information and usage examples of a command.
mi¶
Use mi
to initialize the CLI tool.
mi
mi version¶
Use the version
option to get the version of the running CLI tool.
mi version
mi remote¶
Use remote
to manages the remote servers connected to the CLI tool. The CLI can be connected to multiple running Micro Integrator servers, however, you can only log in to one at a time.
Usage
mi remote <COMMAND> <ARGUMENTS>
Commands and Arguments
add <server-name> <host> <api-port> Connect a Micro Integrator server to the CLI.
remove <server-name> Remove a Micro Integrator server from the CLI.
update <server-name> <host> <api-port> Update the host and the management api port of a Micro Integrator server.
show Show the Micro Integrator servers connected to the CLI.
select <server-name> Select one Micro Integrator server to manage.
login Log in to use the management API of the selected server (will be prompted for username and password). This should be a valid user that is stored in the Micro Integrator user store.
login <username> <password> Log in to use the management API of the selected server (inline username and password).
Examples
# To add a Micro Integrator
mi remote add TestServer 192.168.1.15 9164
# To remove a Micro Integrator
mi remote remove TestServer
# To update a Micro Integrator
mi remote update TestServer 192.168.1.17 9164
# To show available Micro Integrators
mi remote show
# To select a Micro Integrator
mi remote select TestServer
# login to the current (selected) Micro Integrator instance
mi remote login # will be prompted for username and password
# login (with inline username and password)
mi remote login admin admin
mi logs¶
Use logs
to list all the log files created for the Micro Integrator server.
Usage
mi logs <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the complete list of log files created.
Examples
# To list all the log files
mi logs show
mi log-level¶
Use log-level
to manage the logging configurations in a Micro Integrator server.
Usage
mi log-level <COMMAND> <ARGUMENTS>
Commands and Arguments
show [logger-name] Show information about a logger.
update [logger-name] [class-name] [log-level] Update the log level of existing logger or add new logger. The possible values for log level: DEBUG, INFO, WARN, ERROR, TRACE, FATAL, OFF.
Examples
# Show information about a logger
mi log-level show org-apache-coyote
# Update the log level of an existing logger
mi log-level update org-apache-coyote DEBUG
# Add a new logger
mi log-level update synapse-api org.apache.synapse.rest.API DEBUG
mi api¶
Use api
to get details of API artifacts deployed in the Micro Integrator server.
Usage
mi api <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of API artifacts deployed in the Micro Integrator server.
show [api-name] Get information about a specific API that is deployed in the Micro Integrator server.
Examples
# To list all the apis
mi api show
# To get details about a specific api
mi api show sampleApi
mi compositeapp¶
Use compositeapp
to get details of the composite applications (CApps) that are deployed in the Micro Integrator server.
Usage
mi compositeapp <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of composite applications deployed in the Micro Integrator server.
show [app-name] Show information about a specific composite application.
Examples:
# To list all the composite apps
mi compositeapp show
# To get details of a specific composite app
mi compositeapp show sampleApp
mi endpoint¶
Use endpoint
to manage endpoint aritfacts deployed in the Micro Integrator server.
Usage
mi endpoint <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of endpoint artifacts deployed in the Micro Integrator server.
show [endpoint-name] Show information about a specific endpoint deployed in the Micro Integrator server.
update [endpoint-name] state [active|inactive] Activate or deactive the status of a specific endpoint. Use 'active' or 'inactive' as values for the status.
Examples
# To list all the endpoints
mi endpoint show
# To get details about a specific endpoint
mi endpoint show sampleEndpoint
# To deactive an endpoint
mi endpoint update sampleEndpoint state inactive
# To active an inactive endpoint
mi endpoint update sampleEndpoint state active
mi inboundendpoint¶
Use inboundendpoint
to get details of inbound endpoint artifacts deployed in the Micro Integrator server.
Usage
mi inboundendpoint <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of inbound endpoint artifacts deployed in the Micro Integrator server.
show [inboundendpoint-name] Show information about a specific inbound endpoint deployed in the Micro Integrator server.
Examples:
# To list all the inbound endpoints
mi inboundendpoint show
# To get details about a specific inbound endpoint
mi inboundendpoint show sampleInboundEndpoint
mi proxyservice¶
Use proxyservice
to manage the proxy service artifacts deployed in the Micro Integrator server.
Usage
mi proxyservice <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of proxy service artifacts deployed in the Micro Integrator server.
show [proxyservice-name] Show information about a specific proxy service deployed in the Micro Integrator server.
update [proxyservice-name] state [active|inactive] Activate or deactive the status of a specific proxy service. Use 'active' or 'inactive' as the status value.
Examples
# To list all the proxy services
mi proxyservice show
# To get details about a specific proxy service
mi proxyservice show sampleProxy
# To deactive a proxy service
mi proxyservice update sampleProxy state inactive
# To active an inactive proxy service
mi proxyservice update sampleProxy state active
mi sequence¶
Use sequence
to get details of the sequence artifacts deployed in the Micro Integrator server.
Usage
mi sequence <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of sequence artifacts deployed in the Micro Integrator server.
show [sequence-name] Show information about a specific sequence deployed in the Micro Integrator server.
Examples
# To list all the sequences
mi sequence show
# To get details about a specific sequence
mi sequence show sampleProxy
mi task¶
Use task
to get details of the scheduled tasks deployed in the Micro Integrator server.
Usage
mi task <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of schedued task artifacts deployed in the Micro Integrator server.
show [task-name] Show information about a specific scheduled task artifact deployed in the Micro Integrator server.
Examples
# To list all the tasks
mi task show
# To get details about a specific task
mi task show sampleTask
mi dataservice¶
Use dataservice
to get details of data service artifacts deployed in the Micro Integrator server.
Usage
mi dataservice <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of data service artifacts deployed in the Micro Integrator server.
show [data-service-name] Show information about a specific data service artifact deployed in the Micro Integrator server.
Examples
# To list all the dataservices
mi dataservice show
# To get details about a specific task
mi dataservice show SampleDataService
mi connector¶
Use connector
to get details of connector artifacts deployed in the Micro Integrator server.
Usage
mi connector <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of connector artifacts deployed in the Micro Integrator server.
show [connector-name] Show information about a specific connector that is deployed in the Micro Integrator server.
Examples
# To list all the connectors
mi connector show
# To get details about a specific connector
mi connector show sampleConnector
mi template¶
Use template
to get details of template artifacts (Endpoint templates and Sequence templates) that are deployed in the Micro Integrator server.
Usage
mi template <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show all templates deployed in the Micro Integrator server.
show [template-type] Show the list of templates matching the given template type, which are deployed in the Micro Integrator server. Use 'endpoint' or 'sequence' as the template type value.
show [template-type] [template-name] Show details of a specific template artifact. Specify both the template type and template name as arguments. Use 'endpoint' or 'sequence' as the template type value.
Examples
# To list all the templates
mi template show
# To list all the endpoint templates
mi template show endpoint
# To list all the sequence templates
mi template show sequence
# To get details of a specific endpoint template
mi template show endpoint sampleEndpointTemplate
# To get details of a specific sequence template
mi template show sequence sampleSequenceTemplate
mi messageprocessor¶
Use messageprocessor
to manage message processor artifacts deployed in the Micro Integrator server.
Usage
mi messageprocessor <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of messsage processor artifacts deployed in the Micro Integrator server.
show [messageprocessor-name] Show information about a specific message processor artifact deployed in the Micro Integrator server.
update [messageprocessor-name] state [active|inactive] Activate or deactive the status of a specific message processor. Use 'active' or 'inactive' as values for the status.
Examples
# To list all the message processors
mi messageprocessor show
# To get details of a specific message processor
mi messageprocessor show sampleMessageProcessor
# To deactive a message processor
mi messageprocessor update sampleMessageProcessor state inactive
# To active an inactive message processor
mi messageprocessor update sampleMessageProcessor state active
mi messagestore¶
Use messagestore
to get details of message store artifacts deployed in the Micro Integrator server.
Usage
mi messagestore <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of message store artifacts deployed in the Micro Integrator server.
show [messagestore-name] Show information of a specific message store artifact that is deployed in the Micro Integrator server.
Examples
# To list all the message stores
mi messagestore show
# To get details of a specific message stores
mi messagestore show sampleMessageStore
mi localentry¶
Use localentry
to get details of local entry artifacts deployed in the Micro Integrator server.
Usage
mi localentry <COMMAND> <ARGUMENTS>
Commands and Arguments
show Show the list of localentry artifacts deployed in the Micro Integrator server.
show [localentry-name] Show information of a specific local entry artifact that is deployed in the Micro Integrator server.
Examples
# To list all the local entries
mi localentry show
# To get details of a specific local entry
mi localentry show sampleLocalEntry
mi user¶
Use user
to manage the users in the Micro Integrator's user store. Note that only users assigned to the admin user role can manage other users in the user store.
Usage
mi user <COMMAND> <ARGUMENTS> <FLAGS>
Commands and Arguments
add [username] Add new user to the Micro Integrator user store. Specify (as arguments) the user name. You will be prompted to provide password, and whether the admin role should be assigned to the new user. Use 'true' or 'false' for the 'Is an admin [y/N]' argument.
remove [username] Remove an existing user by specifying the user name.
show Show the list of users created in the user store.
show [username] Show details of a specific user that is in the user store.
show <FLAG> Show the list of users matching the regex pattern or user role that is specified as a flag.
Flags
-p, --pattern Specify a regex as a user name pattern.
-r, --role Specify a user role to fetch a users. You can use the 'admin' user role or any other role that is stored in the user store.
Examples
# To add a new user. This option is only available for admin users.
mi user add userid
# To remove a user
mi user remove userid
# To list all the users
mi user show
# To list user by user ID
mi user show userid
# To list users by user role
mi user show -r dev-role
# To list users matching a user name pattern. You can use the wild card symbol "*" (at the start and/or end of pattern) to define a pattern. Example: '*mi*'
mi user show -p [user name pattern]
mi secret¶
Use secret
to encrypt plain text secrets that you will use in server configurations (deployment.toml
file) and synapse configurations. Secrets encrypted using the CLI are used when you want to dynamically inject encrypted secrets to the Micro Integrator.
Usage
mi secret <COMMAND> <ARGUMENTS> <FLAGS>
Commands and Arguments
init Initialize the keystore that is used for encryption. You are prompted to give the 'keystore_path/keystore_file_name' when you initialize.
create Create an encrypted secret. You will be prompted to provide an alias and the actual plain text secret that you want to encrypt.
create file Create the encrypted secret and export it to a file.
create k8 Create the encrypted secret and export it to a .yaml file that you can use in a kubenetes environment.
Flags
-f Use a .properties file to input multiple plain text secrets.
Examples
# To initialize keystore information
mi secret init
# To encrypt secret and get output on console
mi secret create
# To encrypt secret and get output to file (stored in the <CLI_HOME>/security folder).
mi secret create file
# To encrypt secret and get output as a .yaml file (stored in the <CLI_HOME>/security folder).
mi secret create k8
# To bulk encrypt secrets defined in a properties file.
mi secret create -f=</file_path>
# To bulk encrypt secretes defined in a properties file and get a .yaml file (stored in the <CLI_HOME>/security folder).
mi secret create k8 -f=</file_path>
mi transaction¶
Use transaction
to count the inbound transactions received by the Micro Integrator.
Usage
mi transaction <COMMAND> <ARGUMENTS> <FLAGS>
Commands and Arguments
count Get transaction count for the current month.
count [year] [month] Get transaction count for the specified year and month.
report [start] [end] [--path[=<path>]] Generate transaction report for the specified period and store in the specified location.
report [start] [end] Generate transaction report for the specified date and store in the current location.
report [start] [--path[=<path>]] Generate transaction report from the specified date upto current date and store in the specified location.
Flags
-p, --path Specify a directory path to create the transaction count report. Applicable only to the 'report' command.
Examples
# To get the transaction count for the current month
mi transaction count
# To get the transaction count for 2020/05 [YYYY/MM]
mi transaction count 2020 05
# To generate transaction count report with data between 2020-01 and 2020-05 at the specified location
mi transaction report 2020-01 2020-05 --path=</dir_path>
# To generate transaction count report with data from 2020-01 (upto current date) at the specified location
mi transaction report 2020-01 --path=</dir_path>
# To generate transaction count report at the current location for data between 2020-01 and 2020-05
mi transaction report 2020-01 2020-05
Top