diff --git a/docs/getting-started.md b/docs/getting-started.md index e3f208c5..1c9b8723 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -328,6 +328,168 @@ mosquitto_sub -u -P -t channels//messages -h If you are using TLS to secure MQTT connection, add `--cafile docker/ssl/certs/ca.crt` to every command. +## CLI + +Mainflux CLI is another way 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: + +``` +make cli +``` + +which will build `mainflux-cli` in `/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 Manipulation with channels + help Help about any command + msg Send or retrieve messages + things things + users users create/token + version Get version of Mainflux Things Service + +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: + +``` +Manipulation with channels: create, delete or update channels + +Usage: + mainflux-cli channels [flags] + mainflux-cli channels [command] + +Available Commands: + create create + delete delete + get get all/ + update update + +``` + +### Service +#### Get the service verison + +``` +./mainflux-cli version +``` + +### User 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 +#### Provision Device + +``` +./mainflux-cli things create '{"type":"device", "name":"nyDevice"}' +``` + +#### Provision Application + +``` +./mainflux-cli things create '{"type":"app", "name":"nyDevice"}' +``` + +#### Retrieve All Things + +``` +./mainflux-cli things get all --offset=1 --limit=5 +``` + +#### Retrieve Thing By ID + +``` +./mainflux-cli things get --offset=1 --limit=5 +``` + +#### Remove Thing + +``` +./mainflux-cli things delete +``` + +#### Provision Channel + +``` +./mainflux-cli channels create '{"name":"nyChannel"}' +``` + +#### Retrieve All Channels + +``` +./mainflux-cli channels get all --offset=1 --limit=5 +``` + +#### Retrievie Channel By ID + +``` +./mainflux-cli channels get --offset=1 --limit=5 +``` + +#### Remove Channel + +``` +./mainflux-cli channels delete +``` + +### Access control +#### Connect Thing to a Channel + +``` +./mainflux-cli things connect +``` + +#### Disconnect Things from a Channel + +``` +./mainflux-cli things disconnect +``` + +### Messaging +#### Send a message over HTTP + +``` +./mainflux-cli msg send '[{"bn":"some-base-name:","bt":1.276020076001e+09, "bu":"A","bver":5, "n":"voltage","u":"V","v":120.1}, {"n":"current","t":-5,"v":1.2}, {"n":"current","t":-4,"v":1.3}]' +``` + + + + + ## Add-ons The `/docker` folder contains an `addons` directory. This directory is used for various services that are not core to the Mainflux platform but could be used for providing additional features.