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>

# Functions

NewCertsCmd returns certificate command.
NewChannelsCmd returns channels command.
NewGroupRolesCmd returns users command.
NewGroupsCmd returns users command.
NewHealthCmd returns health check command.
NewKeysCmd returns keys command.
NewMessagesCmd returns messages command.
NewOrgsCmd returns users command.
NewProvisionCmd returns provision command.
NewThingsCmd returns things command.
NewUsersCmd returns users command.
NewWebhooksCmd returns users command.
No description provided by the author
SetSDK sets mainflux SDK instance.

# Variables

ConfigPath config path parameter.
Email query parameter.
Limit query parameter.
Metadata query parameter.
Name query parameter.
Offset query parameter.
RawOutput raw output mode.

# Structs

No description provided by the author