{ "info": { "author": "Randall Degges", "author_email": "r@rdegges.com", "bugtrack_url": null, "classifiers": [], "description": "# stormy\n\nA CLI tool for managing (and working with) Stormpath.\n\n![Stormy Logo](https://github.com/rdegges/stormy/raw/master/assets/stormy.jpg)\n\n\n## Intro\n\n[Stormpath](http://stormpath.com/) is one of my favorite tools. They're an API\ncompany that handles user accounts and authentication.\n\nThe idea is that instead of building your own users database, APIs, etc. -- you\ninstead just hit their servers to do things like:\n\n- Create user accounts securely (HTTPs, bcrypt, etc.).\n- Manage user permissions, group memberships, etc.\n- Authenticate users securely.\n- Etc.\n\nThis works particularly well for service oriented applications, where your user\ndata must be accessible by more than one codebase. For instance -- if you've\ngot a website that needs to let users log into their accounts, as well as\ndeveloper API which must also authenticate users -- Stormpath becomes extremely\nuseful.\n\nIn my experience, they totally rock, and you should use them.\n\n\n## Installation\n\nYou can install stormy on any \\*nix computer with `pip` installed. Just run the\nfollowing from your terminal:\n\n```console\n$ pip install stormy\n```\n\nIf you'd like to be able to use `stormy` wherever you are, you might want to\ninstall it globally, e.g.:\n\n```console\n$ sudo pip install stormy\n```\n\n:)\n\n\n## Usage\n\nBefore you get started, you'll want to go create a\n[Stormpath account](https://api.stormpath.com/register). Once you've got that\nsetup, you'll need to give `stormy` your credentials so it can access your\naccount.\n\nJust run `stormy configure` from the terminal to get started. Your credentials\nwill be stored in a file named `~/.stormy`. The `configure` command will prompt\nyou for your API key information.\n\n**NOTE**: You can get your API key information by visiting your\n[account dashboard](https://api.stormpath.com/ui/dashboard) and clicking\nthrough the API Key options.\n\n```console\n$ stormy configure\n```\n\nNext, take a look at the help output (`stormy help` on the CLI):\n\n```console\n$ stormy help\nUsage:\n stormy configure\n stormy applications\n stormy applications:create\n ( | -n | --name )\n [( | -d | --description )]\n stormy applications:destroy\n ( | -n | --name )\n stormy directories\n stormy directories:create\n ( | -n | --name )\n [( | -d | --description )]\n stormy directories:destroy\n ( | -n | --name )\n stormy accounts\n ( | -d | --directory )\n stormy accounts:create\n ( | -d | --directory )\n ( | -e | --email )\n ( | -p | --password )\n ( | -f | --first-name )\n ( | -l | --last-name )\n [( | -m | --middle-name )]\n stormy accounts:destroy\n ( | -d | --directory )\n ( | -e | --email )\n stormy groups\n ( | -d | --directory )\n stormy groups:create\n ( | -d | --directory )\n ( | -n | --name )\n [( | -d | --description )]\n stormy groups:destroy\n ( | -d | --directory )\n ( | -n | --name )\n stormy add_account_to_group\n ( | -d | --directory )\n ( | -e | --email )\n ( | -g | --group )\n stormy remove_account_from_group\n ( | -d | --directory )\n ( | -e | --email )\n ( | -g | --group )\n stormy (-h | --help)\n stormy --version\n```\n\nLet's say you want to list all of your Stormpath applications -- **easy!** --\njust run `stormy applications` and BAM, you'll see them all listed!\n\n```console\n$ stormy applications\n=== Stormpath Applications\n{\n \"Stormpath\": {\n \"description\": \"Manages access to the Stormpath Console and API.\",\n \"status\": \"ENABLED\"\n },\n \"test\": {\n \"description\": \"Randall's Test Application\",\n \"status\": \"ENABLED\"\n }\n}\n```\n\nNow, let's say you want to create a new directory of users. A directory is\nbasically a container that holds a bunch of user accounts. To do this, we can\nuse the `directories:create` command:\n\n```console\n$ stormy directories:create \"Users\" \"All website users.\"\nSuccessfully created directory!\n```\n\nYou could also accomplish the above by using either the short or long options as\nwell; for instance:\n\n```console\n$ stormy directories:create --description \"All website users.\" -n \"Users\"\nSuccessfully created directory!\n```\n\nBoth work the same way.\n\nNot bad, right? Now that you know the basics, you should be able to figure the\nrest out.\n\n\n## Help\n\nNeed help? Can't figure something out? If you think you've found a bug, please\nopen an issue on the GitHub issue tracker.\n\nOtherwise, [shoot me an email](mailto:r@rdegges.com)!\n\n\n## Changelog\n\nv0.2: 10-31-2013\n\n - Redoing our CLI arguments -- making things more Heroku-esque.\n\nv0.1: 10-30-2013\n\n - Adding more flexible CLI options. You can now use positional options,\n short options, or long options!\n\nv0.0: 10-29-2013\n\n - Rolling our v0.0 onto PyPI. We have a basic feature set.\n\nv0.0: 10-27-2013\n\n - Started hacking on the project! It's 1:24 am! Woo!", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rdegges/stormy", "keywords": "user authentication auth security api stormpath bcrypt utility", "license": "UNLICENSE", "maintainer": null, "maintainer_email": null, "name": "stormy", "package_url": "https://pypi.org/project/stormy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/stormy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/rdegges/stormy" }, "release_url": "https://pypi.org/project/stormy/0.2/", "requires_dist": null, "requires_python": null, "summary": "A CLI tool for managing (and working with) Stormpath.", "version": "0.2" }, "last_serial": 908760, "releases": { "0.0": [ { "comment_text": "", "digests": { "md5": "fdfec085a99501e3350b012c8bca8a4d", "sha256": "5d09887389828acb501ffdf3f0571e1a70f39c15ad74115fa29ba4661e16ca69" }, "downloads": -1, "filename": "stormy-0.0.tar.gz", "has_sig": false, "md5_digest": "fdfec085a99501e3350b012c8bca8a4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6258, "upload_time": "2013-10-30T03:48:07", "url": "https://files.pythonhosted.org/packages/69/34/26ecff5e7e5e8a124f3b9514e645b0544418432715005419e9b1f78d3e73/stormy-0.0.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "489c5fde5957f9690b3d98c3b221724b", "sha256": "b7e5779e0b9b3421348056f2e2480dfd6f677cf1cb890e922ed46a0738ac1d93" }, "downloads": -1, "filename": "stormy-0.1.tar.gz", "has_sig": false, "md5_digest": "489c5fde5957f9690b3d98c3b221724b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6972, "upload_time": "2013-10-31T09:43:38", "url": "https://files.pythonhosted.org/packages/06/96/7c9068467b8dfcc7daa8daf87891214ae2cba124e837a3239780e16acadd/stormy-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "20950c37ae07ec604e54c3504a35177d", "sha256": "de51171ac0d2f4a26c5a9b37fa9f30a1dcd4b2e6674d0ca0cdaf60019bc7a966" }, "downloads": -1, "filename": "stormy-0.2.tar.gz", "has_sig": false, "md5_digest": "20950c37ae07ec604e54c3504a35177d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6983, "upload_time": "2013-10-31T23:34:32", "url": "https://files.pythonhosted.org/packages/78/0b/0b1285b904fd49f10e76de3a5d83cdc76908950a63a61ceac5c0934e13b4/stormy-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "20950c37ae07ec604e54c3504a35177d", "sha256": "de51171ac0d2f4a26c5a9b37fa9f30a1dcd4b2e6674d0ca0cdaf60019bc7a966" }, "downloads": -1, "filename": "stormy-0.2.tar.gz", "has_sig": false, "md5_digest": "20950c37ae07ec604e54c3504a35177d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6983, "upload_time": "2013-10-31T23:34:32", "url": "https://files.pythonhosted.org/packages/78/0b/0b1285b904fd49f10e76de3a5d83cdc76908950a63a61ceac5c0934e13b4/stormy-0.2.tar.gz" } ] }