Mainflux.mainflux/docs/cli.md

4.5 KiB

CLI

Mainflux CLI makes it easy to manage users, things, channels and messages.

CLI can be downloaded as separate asset from project realeses 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

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

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>