Skip to content
This repository has been archived by the owner on May 8, 2019. It is now read-only.

Command line interface for Exosite Murano

Notifications You must be signed in to change notification settings

exosite-archive/exosite-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exosite Murano Command Line Tool (exosite cli)

The tool will upload all resources described in the Solutionfile.json to a solution in your business account. This includes static assets, endpoint definitons, event handlers and modules.

Requirements

  • python 2.7 or later
sudo pip install --upgrade exosite

If you are running OS X El Capitan, the following may be necessary:

sudo pip install --upgrade exosite --ignore-installed six --ignore-installed prompt-toolkit --ignore-installed requests

Usage:

This command will prompt you to input credential data and save it to file '.Solutionfile.secret' for latter use.

exosite --init

This command will perform upload, the target script/file will be read from config file 'Solutionfile.json'

exosite --deploy

Usage:

usage: exosite [-h] [--host [HOST]] [-k] [-p] [-s] [-a] [-e] [-m] [--deploy] [--init] [-v]

Arguments:

-h, --help            show this help message and exit
--host [HOST]
-k, --insecrue        Ignore SSL
-p, --upload_productid
                      Upload static file
-s, --upload_static   Upload static file
-a, --upload_api      Upload api
-e, --upload_eventhandler
                      Upload event handler
-m, --upload_modules  Upload modules
-c, --update_cors     Update cors configuration
--enable_identity <identity> Add identity
--delete_identity <identity> Delete identity
--logs [tail]         Script log information
--read <identity> <alias>  Read data from resource
--write <identity> <alias> <value>
                      Write data to resource
--tree                Listing resources
--watch               Watch for modified files and deploy automatically
--open [product|solution]
                      Open solution/product url in browser
--deploy              Upload all solution configurations
--init                Configure for credential parameters
-v, --version         Show Version number

Solutionfile.json format:

{
  "version": "0.2",
  "default_page": "index.html",
  "file_dir": "public",
  "custom_api": "sample_api.lua",
  "custom_api_hook": "_init",
  "product_spec": {
    "lightbulb": "lightbulb.yaml"
  },
  "modules": {
    "auth": "modules/util.lua",
    "debug": "modules/debug.lua"
  },
  "event_handler": {
    "device": {
      "datapoint": "event_handler/product.lua"
    },
    "timer": {
      "timer": "event_handler/timer.lua"
    }
  }
}
{
  "version": "0.3",
  "default_page": "index.html",
  "assets": "public",
  "routes": "sample_api.lua",
  "routes_hook": "_init",
  "modules": {
    "auth": "modules/util.lua",
    "debug": "modules/debug.lua"
  },
  "services": {
    "device": {
      "datapoint": "event_handler/product.lua"
    },
    "timer": {
      "timer": "event_handler/timer.lua"
    }
  }
  "cors": {
    "origin": ["http://localhost:*"],
    "methods": ["get", "post"],
    "headers": ["accept", "content-type", "authorization"],
    "expose_headers": ["X-Key"],
    "credentials": true
  }
}

Custom API file format:

--#ENDPOINT <METHOD> <PATH>
SCRIPT_CODE

where --#ENDPOINT <METHOD> <PATH> is also separator between endpoint definitions, for example:

--#ENDPOINT GET /keystore/{value}
return Keystore.get({key = request.parameters.value})
--#ENDPOINT POST /user/{email}/lightbulbs
return User.listUserRoleParamValues({
  id = request.user_id,
  role_id = "lightbulb_owner",
  parameter_name = "serialnumber"
})

About

Command line interface for Exosite Murano

Resources

Stars

Watchers

Forks

Packages

No packages published