• Recent
    • Tags
    • Popular
    • Register
    • Login

    Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

    Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website Mango 5 Documentation Website

    mangocli - A utility for querying Mango's REST API

    Mango Automation general Discussion
    2
    2
    1.2k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      adamlevy
      last edited by adamlevy

      Hi all,

      Since Mango 3.3 introduces the use of JWT tokens for authentication, I decided that using the REST API is a bit more appealing. So I decided to write a little utility to make it easier to query.

      mangocli is written in Bash and uses (https://curl.haxx.se/) and jq.

      You can review the code and download it here: https://github.com/iA3io/mangocli

      This is an open source tool and you are free to use and modify it however you see fit. I hope you find it helpful.

      More information is in the README in the Git repo but here is a snippet:

      Example Usage

      Query all data points

      $ mangocli -a ./jwt-token data-points
      

      The default HTTP action is GET. The default host is http://localhost:8080.

      Create a new data point

      $ mangocli -a ./jwt-token -d @./new-point.json data-points
      

      The -d option is just the --data option for curl. The @ prefix causes
      the argument to be parsed as a file. Using the -d option changes the default
      HTTP action to POST.

      Enable and restart a data point

      $ mangocli -a ./jwt-token -u enabled=true -u restart=true PUT data-points/enable-disable/DP_XID
      

      Using the -u option defines a URL query parameter.

      Delete a data point.

      $ mangocli -a ./jwt-token DELETE data-points/DP_XID
      

      Manual

      Usage: mangocli [OPTION...] [ACTION] PATH
      
      Options:
        -h HOST      HOST is the domain name or IP address of the Mango server.
                     Can be set using the environment variable MANGOCLI_HOST.
                     Defaults to 'http://localhost:8080' if not specified.
                     A HOST without a specified protocol will default to HTTPS.
      
        -a AUTH      AUTH is the JWT token or the path to a file containing it.
                     Can be set using the environment variable MANGOCLI_AUTH
      
        -d DATA      DATA to include in the body of a request. Can be specified multiple times.
                     Use `-d @-' to read from stdin or `-d @filename' to read from a file.
                     Equivalent to `curl --data="DATA"'. Changes default ACTION to POST.
      
        -u PARAM     PARAM is URL encoded data. Can be specified multiple times.
                     Using this option will pass all data as URL parameters.
                     Use `-u @-' to read from stdin or `-u @file' to read from a file.
                     Equivalent to `curl --get --data-urlencode="PARAM"'.
      
        -C CURL_OPTS CURL_OPTS is a space separated list of additional options to pass to curl. 
                     Can be specified multiple times.
      
        -V VERSION   VERSION is the REST API version number: 1 or 2.
                     Can be set using the environment variable MANGOCLI_VERSION.
                     Defaults to v2.
      
        -c           Compact JSON output. Removes all whitespace.
      
        -v           Increase verbosity. Once for info, twice for debug output.
      
        -q           Quiet mode. Suppresses all error, info and debug messages. 
                     Overrides any `-v' options. 
      
      Arguments:
        ACTION       The HTTP action: GET, POST, PUT, DELETE
                     Defaults to GET.
      
        PATH         The path or route for the request
      
      1 Reply Last reply Reply Quote 1
      • phildunlapP
        phildunlap
        last edited by

        Hi adamlevy,

        Thanks for sharing! That's really cool!

        1 Reply Last reply Reply Quote 0
        • First post
          Last post