179 lines
4.5 KiB
Markdown
179 lines
4.5 KiB
Markdown
## CLI
|
|
|
|
Mainflux CLI makes it easy to manage users, things, channels and messages.
|
|
|
|
CLI can be downloaded as separate asset from [project realeses](https://github.com/mainflux/mainflux/releases) or it can be built with `GNU Make` tool:
|
|
|
|
```
|
|
make cli
|
|
```
|
|
|
|
which will build `mainflux-cli` in `<project_root>/build` folder.
|
|
|
|
Executing `build/mainflux-cli` without any arguments will output help with all available commands and flags:
|
|
|
|
```
|
|
Usage:
|
|
mainflux-cli [command]
|
|
|
|
Available Commands:
|
|
channels Channels management
|
|
help Help about any command
|
|
messages Send or read messages
|
|
provision Bulk create things and channels from a config file
|
|
things Things management
|
|
users Users management
|
|
version Mainflux system version
|
|
|
|
Flags:
|
|
-c, --content-type string Mainflux message content type (default "application/senml+json")
|
|
-h, --help help for mainflux-cli
|
|
-a, --http-prefix string Mainflux http adapter prefix (default "http")
|
|
-i, --insecure Do not check for TLS cert
|
|
-l, --limit uint limit query parameter (default 100)
|
|
-m, --mainflux-url string Mainflux host URL (default "http://localhost")
|
|
-o, --offset uint offset query parameter
|
|
-t, --things-prefix string Mainflux things service prefix
|
|
-u, --users-prefix string Mainflux users service prefix
|
|
|
|
Use "mainflux-cli [command] --help" for more information about a command.
|
|
```
|
|
|
|
You can execute each command with `-h` flag for more information about that command, e.g.
|
|
|
|
```
|
|
./mainflux-cli channels -h
|
|
```
|
|
|
|
will get you usage info:
|
|
|
|
```
|
|
Channels management: create, get, update or delete Channels and get list of Things connected to Channels
|
|
|
|
Usage:
|
|
mainflux-cli channels [flags]
|
|
mainflux-cli channels [command]
|
|
|
|
Available Commands:
|
|
connections connections <channel_id> <user_auth_token>
|
|
create create <JSON_channel> <user_auth_token>
|
|
delete delete <channel_id> <user_auth_token>
|
|
get get <channel_id | all> <user_auth_token>
|
|
update update <JSON_string> <user_auth_token>
|
|
|
|
```
|
|
|
|
## Service
|
|
#### Get the version of Mainflux services
|
|
```
|
|
mainflux-cli version
|
|
```
|
|
|
|
### Users management
|
|
#### Create User
|
|
```
|
|
mainflux-cli users create john.doe@email.com password
|
|
```
|
|
|
|
#### Login User
|
|
```
|
|
mainflux-cli users token john.doe@email.com password
|
|
```
|
|
|
|
### System Provisioning
|
|
#### Create Thing
|
|
```
|
|
mainflux-cli things create '{"name":"myThing"}' <user_auth_token>
|
|
```
|
|
|
|
#### Bulk Provision Things
|
|
|
|
```bash
|
|
mainflux-cli provision things <file> <user_auth_token>
|
|
```
|
|
|
|
* `file` - A CSV or JSON file containing things
|
|
* `user_auth_token` - A valid user auth token for the current system
|
|
|
|
#### Update Thing
|
|
```
|
|
mainflux-cli things update '{"id":"<thing_id>", "name":"myNewName"}' <user_auth_token>
|
|
```
|
|
|
|
#### Remove Thing
|
|
```
|
|
mainflux-cli things delete <thing_id> <user_auth_token>
|
|
```
|
|
|
|
#### Retrieve a subset list of provisioned Things
|
|
```
|
|
mainflux-cli things get all --offset=1 --limit=5 <user_auth_token>
|
|
```
|
|
|
|
#### Retrieve Thing By ID
|
|
```
|
|
mainflux-cli things get <thing_id> <user_auth_token>
|
|
```
|
|
|
|
#### Create Channel
|
|
```
|
|
mainflux-cli channels create '{"name":"myChannel"}' <user_auth_token>
|
|
```
|
|
|
|
#### Bulk Provision Channels
|
|
|
|
```bash
|
|
mainflux-cli provision channels <file> <user_auth_token>
|
|
```
|
|
|
|
* `file` - A CSV or JSON file containing channels
|
|
* `user_auth_token` - A valid user auth token for the current system
|
|
|
|
#### Update Channel
|
|
```
|
|
mainflux-cli channels update '{"id":"<channel_id>","name":"myNewName"}' <user_auth_token>
|
|
|
|
```
|
|
#### Remove Channel
|
|
```
|
|
mainflux-cli channels delete <channel_id> <user_auth_token>
|
|
```
|
|
|
|
#### Retrieve a subset list of provisioned Channels
|
|
```
|
|
mainflux-cli channels get all --offset=1 --limit=5 <user_auth_token>
|
|
```
|
|
|
|
#### Retrieve Channel By ID
|
|
```
|
|
mainflux-cli channels get <channel_id> <user_auth_token>
|
|
```
|
|
|
|
### Access control
|
|
#### Connect Thing to Channel
|
|
```
|
|
mainflux-cli things connect <thing_id> <channel_id> <user_auth_token>
|
|
```
|
|
|
|
#### Disconnect Thing from Channel
|
|
```
|
|
mainflux-cli things disconnect <thing_id> <channel_id> <user_auth_token>
|
|
|
|
```
|
|
|
|
#### Retrieve a subset list of Channels connected to Thing
|
|
```
|
|
mainflux-cli things connections <thing_id> <user_auth_token>
|
|
```
|
|
|
|
#### Retrieve a subset list of Things connected to Channel
|
|
```
|
|
mainflux-cli channels connections <channel_id> <user_auth_token>
|
|
```
|
|
|
|
### Messaging
|
|
#### Send a message over HTTP
|
|
```
|
|
mainflux-cli msg send <channel_id> '[{"bn":"Dev1","n":"temp","v":20}, {"n":"hum","v":40}, {"bn":"Dev2", "n":"temp","v":20}, {"n":"hum","v":40}]' <thing_auth_token>
|
|
```
|