Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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>