Command line interface for Exosite Murano.
Project description
# 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"
})
```
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"
})
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
exosite-0.28.tar.gz
(14.0 kB
view details)
File details
Details for the file exosite-0.28.tar.gz
.
File metadata
- Download URL: exosite-0.28.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f81967411d00cc788022a0f33cd2cf716958800d931649a0cef0f16bbb8dfe04 |
|
MD5 | ecce51e73bb269b89123cd83f08ddbd9 |
|
BLAKE2b-256 | 5d656f7fae402e5aa14df037b9a5ed49cc79b810e1bcea08ea98f4087ddbc935 |