A CLI tool for managing (and working with) Stormpath.
Stormpath is one of my favorite tools. They're an API company that handles user accounts and authentication.
The idea is that instead of building your own users database, APIs, etc. -- you instead just hit their servers to do things like:
- Create user accounts securely (HTTPs, bcrypt, etc.).
- Manage user permissions, group memberships, etc.
- Authenticate users securely.
- Etc.
This works particularly well for service oriented applications, where your user data must be accessible by more than one codebase. For instance -- if you've got a website that needs to let users log into their accounts, as well as developer API which must also authenticate users -- Stormpath becomes extremely useful.
In my experience, they totally rock, and you should use them.
You can install stormy on any *nix computer with pip
installed. Just run the
following from your terminal:
$ pip install stormy
If you'd like to be able to use stormy
wherever you are, you might want to
install it globally, e.g.:
$ sudo pip install stormy
:)
Before you get started, you'll want to go create a
Stormpath account. Once you've got that
setup, you'll need to give stormy
your credentials so it can access your
account.
Just run stormy configure
from the terminal to get started. Your credentials
will be stored in a file named ~/.stormy
. The configure
command will prompt
you for your API key information.
NOTE: You can get your API key information by visiting your account dashboard and clicking through the API Key options.
$ stormy configure
Next, take a look at the help output (stormy help
on the CLI):
$ stormy help
Usage:
stormy configure
stormy applications
stormy applications:create
(<name> | -n <name> | --name <name>)
[(<description> | -d <description> | --description <description>)]
stormy applications:destroy
(<name> | -n <name> | --name <name>)
stormy directories
stormy directories:create
(<name> | -n <name> | --name <name>)
[(<description> | -d <description> | --description <description>)]
stormy directories:destroy
(<name> | -n <name> | --name <name>)
stormy accounts
(<directory> | -d <directory> | --directory <directory>)
stormy accounts:create
(<directory> | -d <directory> | --directory <directory>)
(<email> | -e <email> | --email <email>)
(<password> | -p <password> | --password <password>)
(<first_name> | -f <first_name> | --first-name <first_name>)
(<last_name> | -l <last_name> | --last-name <last_name>)
[(<middle_name> | -m <middle_name> | --middle-name <middle_name>)]
stormy accounts:destroy
(<directory> | -d <directory> | --directory <directory>)
(<email> | -e <email> | --email <email>)
stormy groups
(<directory> | -d <directory> | --directory <directory>)
stormy groups:create
(<directory> | -d <directory> | --directory <directory>)
(<name> | -n <name> | --name <name>)
[(<description> | -d <description> | --description <description>)]
stormy groups:destroy
(<directory> | -d <directory> | --directory <directory>)
(<name> | -n <name> | --name <name>)
stormy add_account_to_group
(<directory> | -d <directory> | --directory <directory>)
(<email> | -e <email> | --email <email>)
(<group> | -g <group> | --group <group>)
stormy remove_account_from_group
(<directory> | -d <directory> | --directory <directory>)
(<email> | -e <email> | --email <email>)
(<group> | -g <group> | --group <group>)
stormy (-h | --help)
stormy --version
Let's say you want to list all of your Stormpath applications -- easy! --
just run stormy applications
and BAM, you'll see them all listed!
$ stormy applications
=== Stormpath Applications
{
"Stormpath": {
"description": "Manages access to the Stormpath Console and API.",
"status": "ENABLED"
},
"test": {
"description": "Randall's Test Application",
"status": "ENABLED"
}
}
Now, let's say you want to create a new directory of users. A directory is
basically a container that holds a bunch of user accounts. To do this, we can
use the directories:create
command:
$ stormy directories:create "Users" "All website users."
Successfully created directory!
You could also accomplish the above by using either the short or long options as well; for instance:
$ stormy directories:create --description "All website users." -n "Users"
Successfully created directory!
Both work the same way.
Not bad, right? Now that you know the basics, you should be able to figure the rest out.
Need help? Can't figure something out? If you think you've found a bug, please open an issue on the GitHub issue tracker.
Otherwise, shoot me an email!
v0.2: 10-31-2013
- Redoing our CLI arguments -- making things more Heroku-esque.
v0.1: 10-30-2013
- Adding more flexible CLI options. You can now use positional options,
short options, or long options!
v0.0: 10-29-2013
- Rolling our v0.0 onto PyPI. We have a basic feature set.
v0.0: 10-27-2013
- Started hacking on the project! It's 1:24 am! Woo!