e2992cbede
* Change import name aliases Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Change import name aliases Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Change import aliases Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Remove unused aliases Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> Fix aliases Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> FIx errors Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> Fix error Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> FIx merge Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> FIx merge Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> FIx merge Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix import alias Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix errors Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix linter Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix linter Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix import Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Add linter to CI pipeline Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Changes Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Remove unused aliases Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix merge issues Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix gci Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix gci Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix gci Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Add gofumpt Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Remove multiple gofupmt in CI Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Remove unnecessary changes Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix linter Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> * Fix CI pipeline Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> --------- Signed-off-by: WashingtonKK <washingtonkigan@gmail.com> |
||
---|---|---|
.. | ||
README.md | ||
bootstrap.go | ||
certs.go | ||
channels.go | ||
config.go | ||
consumers.go | ||
doc.go | ||
groups.go | ||
health.go | ||
message.go | ||
policies.go | ||
provision.go | ||
sdk.go | ||
things.go | ||
users.go | ||
utils.go |
README.md
Mainflux CLI
Build
From the project root:
make cli
Usage
Service
Get Mainflux Services Health Check
mainflux-cli health <service>
Users management
Create User
mainflux-cli users create <user_name> <user_email> <user_password>
mainflux-cli users create <user_name> <user_email> <user_password> <user_token>
Login User
mainflux-cli users token <user_email> <user_password>
Get User
mainflux-cli users get <user_id> <user_token>
Get Users
mainflux-cli users get all <user_token>
Update User Metadata
mainflux-cli users update <user_id> '{"name":"value1", "metadata":{"value2": "value3"}}' <user_token>
Update User Password
mainflux-cli users password <old_password> <password> <user_token>
Enable User
mainflux-cli users enable <user_id> <user_token>
Disable User
mainflux-cli users disable <user_id> <user_token>
System Provisioning
Create Thing
mainflux-cli things create '{"name":"myThing"}' <user_token>
Create Thing with metadata
mainflux-cli things create '{"name":"myThing", "metadata": {"key1":"value1"}}' <user_token>
Bulk Provision Things
mainflux-cli provision things <file> <user_token>
file
- A CSV or JSON file containing thing names (must have extension.csv
or.json
)user_token
- A valid user auth token for the current system
An example CSV file might be:
thing1,
thing2,
thing3,
in which the first column is the thing's name.
A comparable JSON file would be
[
{
"name": "<thing1_name>",
"status": "enabled"
},
{
"name": "<thing2_name>",
"status": "disabled"
},
{
"name": "<thing3_name>",
"status": "enabled",
"credentials": {
"identity": "<thing3_identity>",
"secret": "<thing3_secret>"
}
}
]
With JSON you can be able to specify more fields of the channels you want to create
Update Thing
mainflux-cli things update <thing_id> '{"name":"value1", "metadata":{"key1": "value2"}}' <user_token>
Identify Thing
mainflux-cli things identify <thing_key>
Enable Thing
mainflux-cli things enable <thing_id> <user_token>
Disable Thing
mainflux-cli things disable <thing_id> <user_token>
Get Thing
mainflux-cli things get <thing_id> <user_token>
Get Things
mainflux-cli things get all <user_token>
Get a subset list of provisioned Things
mainflux-cli things get all --offset=1 --limit=5 <user_token>
Create Channel
mainflux-cli channels create '{"name":"myChannel"}' <user_token>
Bulk Provision Channels
mainflux-cli provision channels <file> <user_token>
file
- A CSV or JSON file containing channel names (must have extension.csv
or.json
)user_token
- A valid user auth token for the current system
An example CSV file might be:
<channel1_name>,
<channel2_name>,
<channel3_name>,
in which the first column is channel names.
A comparable JSON file would be
[
{
"name": "<channel1_name>",
"description": "<channel1_description>",
"status": "enabled"
},
{
"name": "<channel2_name>",
"description": "<channel2_description>",
"status": "disabled"
},
{
"name": "<channel3_name>",
"description": "<channel3_description>",
"status": "enabled"
}
]
With JSON you can be able to specify more fields of the channels you want to create
Update Channel
mainflux-cli channels update '{"id":"<channel_id>","name":"myNewName"}' <user_token>
Enable Channel
mainflux-cli channels enable <channel_id> <user_token>
Disable Channel
mainflux-cli channels disable <channel_id> <user_token>
Get Channel
mainflux-cli channels get <channel_id> <user_token>
Get Channels
mainflux-cli channels get all <user_token>
Get a subset list of provisioned Channels
mainflux-cli channels get all --offset=1 --limit=5 <user_token>
Access control
Connect Thing to Channel
mainflux-cli things connect <thing_id> <channel_id> <user_token>
Bulk Connect Things to Channels
mainflux-cli provision connect <file> <user_token>
file
- A CSV or JSON file containing thing and channel ids (must have extension.csv
or.json
)user_token
- A valid user auth token for the current system
An example CSV file might be
<thing_id1>,<channel_id1>
<thing_id2>,<channel_id2>
in which the first column is thing IDs and the second column is channel IDs. A connection will be created for each thing to each channel. This example would result in 4 connections being created.
A comparable JSON file would be
{
"client_ids": ["<thing_id1>", "<thing_id2>"],
"group_ids": ["<channel_id1>", "<channel_id2>"]
}
Disconnect Thing from Channel
mainflux-cli things disconnect <thing_id> <channel_id> <user_token>
Get a subset list of Channels connected to Thing
mainflux-cli things connections <thing_id> <user_token>
Get a subset list of Things connected to Channel
mainflux-cli channels connections <channel_id> <user_token>
Messaging
Send a message over HTTP
mainflux-cli messages send <channel_id> '[{"bn":"Dev1","n":"temp","v":20}, {"n":"hum","v":40}, {"bn":"Dev2", "n":"temp","v":20}, {"n":"hum","v":40}]' <thing_secret>
Read messages over HTTP
mainflux-cli messages read <channel_id> <user_token> -R <reader_url>
Bootstrap
Add configuration
mainflux-cli bootstrap create '{"external_id": "myExtID", "external_key": "myExtKey", "name": "myName", "content": "myContent"}' <user_token> -b <bootstrap-url>
View configuration
mainflux-cli bootstrap get <thing_id> <user_token> -b <bootstrap-url>
Update configuration
mainflux-cli bootstrap update '{"thing_id":"<thing_id>", "name": "newName", "content": "newContent"}' <user_token> -b <bootstrap-url>
Remove configuration
mainflux-cli bootstrap remove <thing_id> <user_token> -b <bootstrap-url>
Bootstrap configuration
mainflux-cli bootstrap bootstrap <external_id> <external_key> -b <bootstrap-url>
Groups
Create Group
mainflux-cli groups create '{"name":"<group_name>","description":"<description>","parentID":"<parent_id>","metadata":"<metadata>"}' <user_token>
Get Group
mainflux-cli groups get <group_id> <user_token>
Get Groups
mainflux-cli groups get all <user_token>
Get Group Members
mainflux-cli groups members <group_id> <user_token>
Get Memberships
mainflux-cli groups membership <member_id> <user_token>
Assign Members to Group
mainflux-cli groups assign <member_ids> <member_type> <group_id> <user_token>
Unassign Members to Group
mainflux-cli groups unassign <member_ids> <group_id> <user_token>
Enable Group
mainflux-cli groups enable <group_id> <user_token>
Disable Group
mainflux-cli groups disable <group_id> <user_token>