Skip to content

Latest commit

 

History

History

cli

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Magistrala CLI

Build

From the project root:

make cli

Usage

Service

Get Magistrala Services Health Check

magistrala-cli health <service>

Users management

Create User

magistrala-cli users create <user_name> <user_email> <user_password>

magistrala-cli users create <user_name> <user_email> <user_password> <user_token>

Login User

magistrala-cli users token <user_email> <user_password>

Get User

magistrala-cli users get <user_id> <user_token>

Get Users

magistrala-cli users get all <user_token>

Update User Metadata

magistrala-cli users update <user_id> '{"name":"value1", "metadata":{"value2": "value3"}}' <user_token>

Update User Password

magistrala-cli users password <old_password> <password> <user_token>

Enable User

magistrala-cli users enable <user_id> <user_token>

Disable User

magistrala-cli users disable <user_id> <user_token>

System Provisioning

Create Thing

magistrala-cli things create '{"name":"myThing"}' <user_token>

Create Thing with metadata

magistrala-cli things create '{"name":"myThing", "metadata": {"key1":"value1"}}' <user_token>

Bulk Provision Things

magistrala-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

magistrala-cli things update <thing_id> '{"name":"value1", "metadata":{"key1": "value2"}}' <user_token>

Identify Thing

magistrala-cli things identify <thing_key>

Enable Thing

magistrala-cli things enable <thing_id> <user_token>

Disable Thing

magistrala-cli things disable <thing_id> <user_token>

Get Thing

magistrala-cli things get <thing_id> <user_token>

Get Things

magistrala-cli things get all <user_token>

Get a subset list of provisioned Things

magistrala-cli things get all --offset=1 --limit=5 <user_token>

Create Channel

magistrala-cli channels create '{"name":"myChannel"}' <user_token>

Bulk Provision Channels

magistrala-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

magistrala-cli channels update '{"id":"<channel_id>","name":"myNewName"}' <user_token>

Enable Channel

magistrala-cli channels enable <channel_id> <user_token>

Disable Channel

magistrala-cli channels disable <channel_id> <user_token>

Get Channel

magistrala-cli channels get <channel_id> <user_token>

Get Channels

magistrala-cli channels get all <user_token>

Get a subset list of provisioned Channels

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

Access control

Connect Thing to Channel

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

Bulk Connect Things to Channels

magistrala-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

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

Get a subset list of Channels connected to Thing

magistrala-cli things connections <thing_id> <user_token>

Get a subset list of Things connected to Channel

magistrala-cli channels connections <channel_id> <user_token>

Messaging

Send a message over HTTP

magistrala-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

magistrala-cli messages read <channel_id> <user_token> -R <reader_url>

Bootstrap

Add configuration

magistrala-cli bootstrap create '{"external_id": "myExtID", "external_key": "myExtKey", "name": "myName", "content": "myContent"}' <user_token> -b <bootstrap-url>

View configuration

magistrala-cli bootstrap get <thing_id> <user_token> -b <bootstrap-url>

Update configuration

magistrala-cli bootstrap update '{"thing_id":"<thing_id>", "name": "newName", "content": "newContent"}' <user_token> -b <bootstrap-url>

Remove configuration

magistrala-cli bootstrap remove <thing_id> <user_token> -b <bootstrap-url>

Bootstrap configuration

magistrala-cli bootstrap bootstrap <external_id> <external_key> -b <bootstrap-url>

Groups

Create Group

magistrala-cli groups create '{"name":"<group_name>","description":"<description>","parentID":"<parent_id>","metadata":"<metadata>"}' <user_token>

Get Group

magistrala-cli groups get <group_id> <user_token>

Get Groups

magistrala-cli groups get all <user_token>

Get Group Members

magistrala-cli groups members <group_id> <user_token>

Get Memberships

magistrala-cli groups membership <member_id> <user_token>

Assign Members to Group

magistrala-cli groups assign <member_ids> <member_type> <group_id> <user_token>

Unassign Members to Group

magistrala-cli groups unassign <member_ids> <group_id>  <user_token>

Enable Group

magistrala-cli groups enable <group_id> <user_token>

Disable Group

magistrala-cli groups disable <group_id> <user_token>