package
0.23.2
Repository: https://github.com/mainfluxlabs/mainflux.git
Documentation: pkg.go.dev

# README

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>

Update User Metadata

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>"}' <group_id> <user_token>

Create Thing with metadata

mainfluxlabs-cli things create '{"name":"<thing_name>", "metadata": {\"key1\":\"value1\"}}' <group_id> <user_token>

Bulk Provision Things

mainfluxlabs-cli provision things <file> <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>"}' <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 --offset=1 --limit=5 <user_token>

Retrieve Thing By ID

mainfluxlabs-cli things get <thing_id> <user_token>

Create Channel

mainfluxlabs-cli channels create '{"name":"<channel_name>"}' <group_id> <user_token>

Bulk Provision Channels

mainfluxlabs-cli provision channels <file> <user_token>
  • file - A CSV or JSON file containing channels
  • user_token - A valid user auth token for the current system

Update Channel

mainfluxlabs-cli channels update '{"name":"<new_name>"}' <channel_id> <user_token>

Remove Channel

mainfluxlabs-cli channels delete <channel_id> <user_token>

Retrieve a subset list of provisioned Channels

mainfluxlabs-cli channels get all --offset=1 --limit=5 <user_token>

Retrieve Channel By ID

mainfluxlabs-cli channels get <channel_id> <user_token>

Access control

Connect Thing to Channel

mainfluxlabs-cli things connect <thing_id> <channel_id> <user_token>

Bulk Connect Things to Channels

mainfluxlabs-cli provision connect <file> <user_token>
  • file - A CSV or JSON file containing thing and channel ids
  • user_token - A valid user auth token for the current system

An example CSV file might be

<thing_id>,<channel_id>
<thing_id>,<channel_id>

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

{
    "thing_ids": [
        "<thing_id>",
        "<thing_id>"
    ],
    "channel_ids": [
        "<channel_id>",
        "<channel_id>"
    ]
}

Disconnect Thing from Channel

mainfluxlabs-cli things disconnect <thing_id> <channel_id> <user_token>

Retrieve a Channel by Thing

mainfluxlabs-cli things connections <thing_id> <user_token>

Retrieve a subset list of Things connected to Channel

mainfluxlabs-cli channels connections <channel_id> <user_token>

Messaging

Send a message over HTTP

mainfluxlabs-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_auth_token>

Read messages over HTTP

mainfluxlabs-cli messages read <channel_id> <thing_auth_token>

Groups

Create new 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 channels by group

mainfluxlabs-cli groups channels <group_id> <user_token>

View group by channel

mainfluxlabs-cli groups channel <channel_id> <user_token>

Orgs

Create new 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 user to an org

mainfluxlabs-cli orgs assign '[{"member_id":"<member_id>","email":"<email>","role":"<role>"}]' <org_id> <user_token>

Unassign user from org

mainfluxlabs-cli orgs unassign '["<member_id>"]' <org_id> <user_token>

Update members

mainfluxlabs-cli orgs update-members '[{"member_id":"<member_id>","role":"<new_role>"}]' <org_id> <user_token>

List users by org

mainfluxlabs-cli orgs members <org_id> <user_token>

List orgs that user belongs to

mainfluxlabs-cli orgs memberships <member_id> <user_token>

Webhooks

Create new webhooks

mainfluxlabs-cli webhooks create '[{"name":"<webhook_name>","url":"<http://webhook-url.com>","headers":{"key":"value",...}}]' <group_id> <user_token>

Get webhook by id

mainfluxlabs-cli webhooks get by-id <id> <user_token>

Get webhooks by group

mainfluxlabs-cli webhooks get 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>"]' <group_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>