Coder Social home page Coder Social logo

stormy's Introduction

stormy

A CLI tool for managing (and working with) Stormpath.

Stormy Logo

Intro

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.

Installation

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

:)

Usage

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.

Help

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!

Changelog

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.