Mainflux CLI
Build
From the project root:
make cli
Usage
Service
Get Mainflux Things services Health Check
mainfluxlabs-cli health
Users management
Create User
mainfluxlabs-cli users create <user_email> <user_password>
Login User
mainfluxlabs-cli users token <user_email> <user_password>
Retrieve User
mainfluxlabs-cli users get <user_token>
mainfluxlabs-cli users update '{"key1":"value1", "key2":"value2"}' <user_token>
Update User Password
mainfluxlabs-cli users password <old_password> <password> <user_token>
System Provisioning
Create Group
mainfluxlabs-cli groups create '{"name":"<group_name>"}' <org_id> <user_token>
Create Thing
mainfluxlabs-cli things create '{"name":"<thing_name>","profile_id":"<profile_id>"}' <group_id> <user_token>
mainfluxlabs-cli things create '{"name":"<thing_name>","profile_id":"<profile_id>","metadata": {\"key1\":\"value1\"}}' <group_id> <user_token>
Bulk Provision Things
mainfluxlabs-cli provision things <file> <group_id> <user_token>
file
- A CSV or JSON file containing things
user_token
- A valid user auth token for the current system
Update Thing
mainfluxlabs-cli things update '{"name":"<new_name>","profile_id":"<profile_id>"}' <thing_id> <user_token>
Remove Thing
mainfluxlabs-cli things delete <thing_id> <user_token>
Retrieve a subset list of provisioned Things
mainfluxlabs-cli things get all <user_token>
Retrieve Thing by ID
mainfluxlabs-cli things get by-id <thing_id> <user_token>
Retrieve Things by Profile
mainfluxlabs-cli things get by-profile <profile_id> <user_token>
mainfluxlabs-cli things metadata <thing_key>
Retrieve Thing ID by Key
mainfluxlabs-cli things identify <thing_key>
Create Profile
mainfluxlabs-cli profiles create '{"name":"<profile_name>"}' <group_id> <user_token>
Bulk Provision Profiles
mainfluxlabs-cli provision profiles <file> <group_id> <user_token>
file
- A CSV or JSON file containing profiles
user_token
- A valid user auth token for the current system
Update Profile
mainfluxlabs-cli profiles update '{"name":"<new_name>"}' <profile_id> <user_token>
Remove Profile
mainfluxlabs-cli profiles delete <profile_id> <user_token>
Retrieve a subset list of provisioned Profiles
mainfluxlabs-cli profiles get all <user_token>
Retrieve Profile by ID
mainfluxlabs-cli profiles get by-id <profile_id> <user_token>
Retrieve a Profile by Thing
mainfluxlabs-cli profiles get by-thing <thing_id> <user_token>
Messaging
Send a message over HTTP
mainfluxlabs-cli messages send [subtopic] '[{"bn":"Dev1","n":"temp","v":20}, {"n":"hum","v":40}, {"bn":"Dev2", "n":"temp","v":20}, {"n":"hum","v":40}]' <thing_key>
Read messages over HTTP
- Read messages from a specific subtopic by adding a flag
-s=<subtopic>
- Reading SenML messages is the default. To read JSON messages add the flag
-f=json
- Setting the
by-admin
flag allows the admin to list all messages of a certain format, from all publishers
- If
by-admin
is set, auth_token
will be admin_token
, otherwise auth_token
is thing_key
mainfluxlabs-cli messages read [by-admin] <auth_token>
Groups
Create Group
mainfluxlabs-cli groups create '{"name":"<group_name>","description":"<description>","metadata":{"key":"value",...}}' <org_id> <user_token>
Delete Group
mainfluxlabs-cli groups delete <group_id> <user_token>
Get Group by ID
mainfluxlabs-cli groups get <group_id> <user_token>
List all Groups
mainfluxlabs-cli groups get all <user_token>
Update Group
mainfluxlabs-cli groups update '{"name":"<new_name>"}' <group_id> <user_token>
List Things by Group
mainfluxlabs-cli groups things <group_id> <user_token>
View Group by Thing
mainfluxlabs-cli groups thing <thing_id> <user_token>
List Profiles by Group
mainfluxlabs-cli groups profiles <group_id> <user_token>
View Group by Profile
mainfluxlabs-cli groups profile <profile_id> <user_token>
Orgs
Create Org
mainfluxlabs-cli orgs create '{"name":"<org_name>","description":"<description>","metadata":{"key":"value",...}}' <user_token>
Get Org by ID
mainfluxlabs-cli orgs get <org_id> <user_token>
List all Orgs
mainfluxlabs-cli orgs get all <user_token>
Update Org
mainfluxlabs-cli orgs update '{"name":"<new_name>"}' <org_id> <user_token>
Delete Org
mainfluxlabs-cli orgs delete <org_id> <user_token>
Assign Member to Org
mainfluxlabs-cli orgs assign '[{"member_id":"<member_id>","email":"<email>","role":"<role>"}]' <org_id> <user_token>
Unassign Member from Org
mainfluxlabs-cli orgs unassign '["<member_id>"]' <org_id> <user_token>
Get Member from Org
mainfluxlabs-cli orgs member <org_id> <member_id> <user_token>
Update Members
mainfluxlabs-cli orgs update-members '[{"member_id":"<member_id>","role":"<new_role>"}]' <org_id> <user_token>
List Members by Org
mainfluxlabs-cli orgs members <org_id> <user_token>
List Orgs that Member belongs to
mainfluxlabs-cli orgs memberships <member_id> <user_token>
Webhooks
Create Webhooks
mainfluxlabs-cli webhooks create '[{"name":"<webhook_name>","url":"<http://webhook-url.com>","headers":{"key":"value",...}}]' <thing_id> <user_token>
Get Webhook by ID
mainfluxlabs-cli webhooks get by-id <id> <user_token>
Get Webhooks by Group
mainfluxlabs-cli webhooks get by-group <group_id> <user_token>
Update Webhook
mainfluxlabs-cli webhooks update '{"name":"<new_name>","url":"<http://webhook-url.com>"}' <webhook_id> <user_token>
Delete Webhooks
mainfluxlabs-cli webhooks delete '["<webhook_id>"]' <user_token>
Keys management
Issue a new Key
mainfluxlabs-cli keys issue <duration> <user_token>
Remove API key from database
mainfluxlabs-cli keys revoke <key_id> <user_token>
Retrieve API key with given id
mainfluxlabs-cli keys retrieve <key_id> <user_token>