{ "info": { "author": "Ivan Lan", "author_email": "ivanlan@exosite.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: Unix", "Programming Language :: Python", "Topic :: Software Development :: Build Tools" ], "description": "# Exosite Murano Command Line Tool (exosite cli)\n\nThe 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.\n\n## Requirements\n\n- python 2.7 or later\n\n```\nsudo pip install --upgrade exosite\n```\n\nIf you are running OS X El Capitan, the following may be necessary:\n\n```\nsudo pip install --upgrade exosite --ignore-installed six --ignore-installed prompt-toolkit --ignore-installed requests\n```\n\n\n## Usage:\nThis command will prompt you to input credential data and save it to file '.Solutionfile.secret' for latter use.\n```\nexosite --init\n```\n\nThis command will perform upload, the target script/file will be read from config file 'Solutionfile.json'\n```\nexosite --deploy\n ```\n\n#### Usage:\n\nusage: exosite [-h] [--host [HOST]] [-k] [-p] [-s] [-a] [-e] [-m] [--deploy] [--init] [-v]\n\n#### Arguments:\n```\n-h, --help show this help message and exit\n--host [HOST]\n-k, --insecrue Ignore SSL\n-p, --upload_productid\n Upload static file\n-s, --upload_static Upload static file\n-a, --upload_api Upload api\n-e, --upload_eventhandler\n Upload event handler\n-m, --upload_modules Upload modules\n-c, --update_cors Update cors configuration\n--enable_identity Add identity\n--delete_identity Delete identity\n--logs [tail] Script log information\n--read Read data from resource\n--write \n Write data to resource\n--tree Listing resources\n--watch Watch for modified files and deploy automatically\n--open [product|solution]\n Open solution/product url in browser\n--deploy Upload all solution configurations\n--init Configure for credential parameters\n-v, --version Show Version number\n\n```\n#### Solutionfile.json format:\n```\n{\n \"version\": \"0.2\",\n \"default_page\": \"index.html\",\n \"file_dir\": \"public\",\n \"custom_api\": \"sample_api.lua\",\n \"custom_api_hook\": \"_init\",\n \"product_spec\": {\n \"lightbulb\": \"lightbulb.yaml\"\n },\n \"modules\": {\n \"auth\": \"modules/util.lua\",\n \"debug\": \"modules/debug.lua\"\n },\n \"event_handler\": {\n \"device\": {\n \"datapoint\": \"event_handler/product.lua\"\n },\n \"timer\": {\n \"timer\": \"event_handler/timer.lua\"\n }\n }\n}\n{\n \"version\": \"0.3\",\n \"default_page\": \"index.html\",\n \"assets\": \"public\",\n \"routes\": \"sample_api.lua\",\n \"routes_hook\": \"_init\",\n \"modules\": {\n \"auth\": \"modules/util.lua\",\n \"debug\": \"modules/debug.lua\"\n },\n \"services\": {\n \"device\": {\n \"datapoint\": \"event_handler/product.lua\"\n },\n \"timer\": {\n \"timer\": \"event_handler/timer.lua\"\n }\n }\n \"cors\": {\n \"origin\": [\"http://localhost:*\"],\n \"methods\": [\"get\", \"post\"],\n \"headers\": [\"accept\", \"content-type\", \"authorization\"],\n \"expose_headers\": [\"X-Key\"],\n \"credentials\": true\n }\n}\n```\n\n#### Custom API file format:\n\n```\n--#ENDPOINT \nSCRIPT_CODE\n ```\n\nwhere `--#ENDPOINT ` is also separator between endpoint definitions, for example:\n\n```\n--#ENDPOINT GET /keystore/{value}\nreturn Keystore.get({key = request.parameters.value})\n--#ENDPOINT POST /user/{email}/lightbulbs\nreturn User.listUserRoleParamValues({\n id = request.user_id,\n role_id = \"lightbulb_owner\",\n parameter_name = \"serialnumber\"\n})\n```", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://exosite.com", "keywords": "exosite,m2m,iot,cli,murano", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "exosite", "package_url": "https://pypi.org/project/exosite/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/exosite/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://exosite.com" }, "release_url": "https://pypi.org/project/exosite/0.28/", "requires_dist": null, "requires_python": null, "summary": "Command line interface for Exosite Murano.", "version": "0.28" }, "last_serial": 4904053, "releases": { "0.13": [ { "comment_text": "", "digests": { "md5": "9c55fc2e54e22619f3f48a9dac3001ce", "sha256": "1e357c35d8d3e1ed95c284113e72b999b99181fb86b01450bfc5b949ab3e870f" }, "downloads": -1, "filename": "exosite-0.13.tar.gz", "has_sig": false, "md5_digest": "9c55fc2e54e22619f3f48a9dac3001ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7151, "upload_time": "2016-06-15T05:05:56", "url": "https://files.pythonhosted.org/packages/e9/5b/08d8f20fcbf7f6f1177a1b4a7aee29c092389f61e83a875bbcfce5e7bab2/exosite-0.13.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "3f5e5485b8d9e44a3ecf778ee24d24ba", "sha256": "d4e0aa3decff8d5e8dee8968cc462457b590343e7ccc598b0c6559c495685e0f" }, "downloads": -1, "filename": "exosite-0.14.tar.gz", "has_sig": false, "md5_digest": "3f5e5485b8d9e44a3ecf778ee24d24ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7146, "upload_time": "2016-06-15T07:08:51", "url": "https://files.pythonhosted.org/packages/e7/65/64bbdda697ab7e7f21acfb05acdd244e237a73625419ff7a981f1c1708b0/exosite-0.14.tar.gz" } ], "0.15": [ { "comment_text": "", "digests": { "md5": "a4879c07a75bdf4af28737bcb3b98dd4", "sha256": "e0cfa609b47475465eb842d03bc325c12290efaa2f2cf8f7532a788066871560" }, "downloads": -1, "filename": "exosite-0.15.tar.gz", "has_sig": false, "md5_digest": "a4879c07a75bdf4af28737bcb3b98dd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8109, "upload_time": "2016-06-15T08:15:39", "url": "https://files.pythonhosted.org/packages/f9/25/2ab649fb079a594578973b1483143e4a37b1f46e35f7b92996a2d453f0c3/exosite-0.15.tar.gz" } ], "0.16": [ { "comment_text": "", "digests": { "md5": "2a8a9da5aa3de314ea6ea672b9090051", "sha256": "3161b7172efa6ecdd7666ee8fa9cf5666363cc9b01c79123dac5f1f7a6a4da36" }, "downloads": -1, "filename": "exosite-0.16.tar.gz", "has_sig": false, "md5_digest": "2a8a9da5aa3de314ea6ea672b9090051", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8187, "upload_time": "2016-06-21T14:23:44", "url": "https://files.pythonhosted.org/packages/3b/cd/96e666cd87483887db1896bf8bb3da1f9545f153182d27413ac2cb11deee/exosite-0.16.tar.gz" } ], "0.17": [ { "comment_text": "", "digests": { "md5": "630391d9122b551ad9b6b716665e9217", "sha256": "2595a92d5524d31b9f5fb968a578bbe392a1bda5fe1a87777498d40bc6cfe787" }, "downloads": -1, "filename": "exosite-0.17.tar.gz", "has_sig": false, "md5_digest": "630391d9122b551ad9b6b716665e9217", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8209, "upload_time": "2016-06-21T15:24:32", "url": "https://files.pythonhosted.org/packages/eb/01/02105c4dbf652f1973a043fa9287b098793e860ecc83eed92a7cccfd3f84/exosite-0.17.tar.gz" } ], "0.18": [ { "comment_text": "", "digests": { "md5": "3fc2fe9e0f3c48635a7762736a7a3aae", "sha256": "fee4f0628960f7573f59cd0430a004ec972bfeddd0228aa5024c137bbd612c27" }, "downloads": -1, "filename": "exosite-0.18.tar.gz", "has_sig": false, "md5_digest": "3fc2fe9e0f3c48635a7762736a7a3aae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9320, "upload_time": "2016-06-29T22:31:37", "url": "https://files.pythonhosted.org/packages/f1/4c/e04e2f30bf739a71bd183d2d90994971c082792a263c49ee53d1227bfc8b/exosite-0.18.tar.gz" } ], "0.19": [ { "comment_text": "", "digests": { "md5": "8a5265955f98ec8856f679ff627ff8cb", "sha256": "7032a89f894991f813b0da761fa7e35d4b79d7bc3e317853e74c3039b72ea18e" }, "downloads": -1, "filename": "exosite-0.19.tar.gz", "has_sig": false, "md5_digest": "8a5265955f98ec8856f679ff627ff8cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9343, "upload_time": "2016-07-01T14:49:28", "url": "https://files.pythonhosted.org/packages/13/0d/0e2780b88b3e42fc0a8d1826d665e50c7e60d5017b9c43ddc8e182be2186/exosite-0.19.tar.gz" } ], "0.20": [ { "comment_text": "", "digests": { "md5": "18af6d60ee52e199ea5cf5f89bf5e8e8", "sha256": "da30e0ba6e85c1f0dfe4e37cba4a07d8fd80f1d3cdfcf08d4470189970c84aa8" }, "downloads": -1, "filename": "exosite-0.20.tar.gz", "has_sig": false, "md5_digest": "18af6d60ee52e199ea5cf5f89bf5e8e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13007, "upload_time": "2016-09-09T08:00:38", "url": "https://files.pythonhosted.org/packages/40/ea/d6f98a4cbe6826ee475e57b36f83e747b87528b2b3adbb79fab315dc4dda/exosite-0.20.tar.gz" } ], "0.21": [ { "comment_text": "", "digests": { "md5": "b142820bff98306149793300a6392e4f", "sha256": "2012ee9eb03abe4dbb8a30947e1c752754cc3786df6639a78fe72a1c1441f5b8" }, "downloads": -1, "filename": "exosite-0.21.tar.gz", "has_sig": false, "md5_digest": "b142820bff98306149793300a6392e4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12991, "upload_time": "2016-09-12T09:01:58", "url": "https://files.pythonhosted.org/packages/a0/9f/13bdc62e97767a5ce83547037c665addf22e5a73c5589f0ca53e3054bd5c/exosite-0.21.tar.gz" } ], "0.22": [ { "comment_text": "", "digests": { "md5": "49806fa49ac6912718bd7073aea7375c", "sha256": "c6cf277974dfb3b83d0aca0da66b3baa9dbef4b2146f384fbfb532624fd54315" }, "downloads": -1, "filename": "exosite-0.22.tar.gz", "has_sig": false, "md5_digest": "49806fa49ac6912718bd7073aea7375c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12969, "upload_time": "2016-09-20T06:12:49", "url": "https://files.pythonhosted.org/packages/85/eb/40225f16c3818172e4c8bc86a24e54c78c53874663d021cc8436f3b92b54/exosite-0.22.tar.gz" } ], "0.23": [ { "comment_text": "", "digests": { "md5": "a70845225fe80a579c87090409859274", "sha256": "bdead03c4a66d056ded04152ad2dcf8c5f74ef1f6ebbc6626b76c2ffde947bc8" }, "downloads": -1, "filename": "exosite-0.23.tar.gz", "has_sig": false, "md5_digest": "a70845225fe80a579c87090409859274", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13112, "upload_time": "2016-10-18T05:30:56", "url": "https://files.pythonhosted.org/packages/03/c9/66d178ff8c138d01e26e44931fca33c3d9ce8cd1c1c8431633d256bec707/exosite-0.23.tar.gz" } ], "0.24": [ { "comment_text": "", "digests": { "md5": "f966adca20c46cb2f208ed91f0501359", "sha256": "b78231a89d6ffbb49b9a5471ab2cb0fbdc488598fc3c0831152bbf6cbbc95e3b" }, "downloads": -1, "filename": "exosite-0.24.tar.gz", "has_sig": false, "md5_digest": "f966adca20c46cb2f208ed91f0501359", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13360, "upload_time": "2016-10-20T08:23:05", "url": "https://files.pythonhosted.org/packages/a4/94/a3cfde473c97b5260f7679aab09d3a5f0508e73d52fd174ad8c3ba17686f/exosite-0.24.tar.gz" } ], "0.25": [ { "comment_text": "", "digests": { "md5": "442a41c0f27fb4727ad6f711694411b7", "sha256": "9b54ffd1055a59265d56667ae877606e978df4fc667b11999de2795c1b03a309" }, "downloads": -1, "filename": "exosite-0.25.tar.gz", "has_sig": false, "md5_digest": "442a41c0f27fb4727ad6f711694411b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13773, "upload_time": "2016-11-15T06:54:10", "url": "https://files.pythonhosted.org/packages/82/a3/342447d2b5fab9e622a2daff77e7f0b1662a690321605d9b63257efaafd0/exosite-0.25.tar.gz" } ], "0.26": [ { "comment_text": "", "digests": { "md5": "bee7cb2156a422bf16f79218204f9151", "sha256": "ada49e4547f9e030afbc9a1d37ee0b02bef4659472a3809819eedffb8cdad5a8" }, "downloads": -1, "filename": "exosite-0.26.tar.gz", "has_sig": false, "md5_digest": "bee7cb2156a422bf16f79218204f9151", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13815, "upload_time": "2016-11-18T02:18:01", "url": "https://files.pythonhosted.org/packages/75/6a/4175a620dd8a790a0788cd70b6d581edb31a0d26c8627745aaecd7c259ba/exosite-0.26.tar.gz" } ], "0.27": [ { "comment_text": "", "digests": { "md5": "7f84d89b3a7b927806116e3d655e1736", "sha256": "568053ad68c8c5408270558a37fe5cbedc10660bbf5739287a290ae7ddfe3a24" }, "downloads": -1, "filename": "exosite-0.27.tar.gz", "has_sig": false, "md5_digest": "7f84d89b3a7b927806116e3d655e1736", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13959, "upload_time": "2016-11-30T08:14:45", "url": "https://files.pythonhosted.org/packages/eb/de/939aa182a5b6e15f3e2ba0d852e6d9a2a1ef91320372e0110fd7119cef5c/exosite-0.27.tar.gz" } ], "0.28": [ { "comment_text": "", "digests": { "md5": "ecce51e73bb269b89123cd83f08ddbd9", "sha256": "f81967411d00cc788022a0f33cd2cf716958800d931649a0cef0f16bbb8dfe04" }, "downloads": -1, "filename": "exosite-0.28.tar.gz", "has_sig": false, "md5_digest": "ecce51e73bb269b89123cd83f08ddbd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13954, "upload_time": "2017-01-05T07:14:38", "url": "https://files.pythonhosted.org/packages/5d/65/6f7fae402e5aa14df037b9a5ed49cc79b810e1bcea08ea98f4087ddbc935/exosite-0.28.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ecce51e73bb269b89123cd83f08ddbd9", "sha256": "f81967411d00cc788022a0f33cd2cf716958800d931649a0cef0f16bbb8dfe04" }, "downloads": -1, "filename": "exosite-0.28.tar.gz", "has_sig": false, "md5_digest": "ecce51e73bb269b89123cd83f08ddbd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13954, "upload_time": "2017-01-05T07:14:38", "url": "https://files.pythonhosted.org/packages/5d/65/6f7fae402e5aa14df037b9a5ed49cc79b810e1bcea08ea98f4087ddbc935/exosite-0.28.tar.gz" } ] }