GithubHelp home page GithubHelp logo

j3k0 / stormpath-export Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ryanmmmmm/stormpath-export

0.0 3.0 1.0 323 KB

Easily export your Stormpath user data.

License: The Unlicense

Python 100.00%

stormpath-export's Introduction

stormpath-export

Easily export your Stormpath user data.

stormpath-export Release stormpath-export Downloads stormpath-export Code Quality stormpath-export Build

Box Sketch

Purpose

Stormpath is one of my favorite API services. They provide a scalable, simple, and secure user management API which makes building scalable systems simple.

Whenever I talk to people about using Stormpath, the same question invariably comes up: "Is it easy to export my user data out of Stormpath? Or am I locked in?"

Up until now, the answer has been "Yes! But only if you contact them about it."

With stormpath-export, however, you can easily back up all your Stormpath user data instantly!

stormpath-export will:

  • Grab all Stormpath data you've stored, and dump it to JSON files locally.
  • Dump data into a local directory structure which makes intuitive sense (groups are located in the groups directory, etc.).
  • Each object gets it's own JSON file generated. This makes it easy to look at the file system and extract the information you need.

stormpath-export makes it easy to:

  • Download a copy of all your user data.
  • Back up your user data (Stormpath has their own backups of course, but you can never be too safe).
  • Migrate user data out of Stormpath.

Installation

Installing stormpath-export is simple -- just use pip!

Once you have pip installed on your computer, you can run the following to install the latest release of stormpath-export:

$ pip install -U stormpath-export

That's it :)

Usage

Before you can export all your Stormpath data, you'll need to configure stormpath-export and give it your Stormpath API credentials. To do this, simply run:

$ stormpath-export configure

This will prompt you for some basic information, then store your credentials in the local file ~/.stormy.

NOTE: If you are using Stormpath Enterprise, please enter https://enterprise.stormpath.io/v1 when prompted for the Base URL. This instructs the export tool to talk to the Stormpath Enterprise environment.

Next, to initiate a backup job, you can run:

$ stormpath-export

This will export all your Stormpath data, and dump it into a new directory named stormpath-exports. If you'd like to specify your own backup location, you can do so by adding a path -- for instance:

$ stormpath-export ~/Desktop/stormpath-exports

When exporting your data, you should see output similar to the following:

=== Exporting all application data...
- Exporting application: Stormpath
=== Done!

=== Exporting all directory data...
- Exporting directory: Stormpath Administrators
- Exporting directory: testdirectory
=== Done!

=== Exporting all group data...
- Exporting group: Administrators
=== Done!

=== Exporting all account data...
- Exporting account: [email protected]
=== Done!

Note

Depending on how many applications, groups, directories, organizations, and accounts you have, this process may take a while.

Once the process is finished, you can navigate the JSON files in the export directory, which will contain all your Stormpath data.

For full usage information, run stormpath-export -h:

$ stormpath-export -h
stormpath-export
----------------

Easily export your Stormpath (https://stormpath.com/) user data.

Usage:
  stormpath-export configure
  stormpath-export [(<location> | -l <location> | --location <location>)]
  stormpath-export (-h | --help)
  stormpath-export --version

Options:
  -h --help  Show this screen.
  --version  Show version.

Written by Randall Degges <http://www.rdegges.com/>.

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 us an email.

Changelog

0.1.2: 12-27-2016

  • Importing missing dependency.

0.1.1: 10-17-2016

  • Supporting --base-url argument.
  • Making the tool Python 3 compatible.

0.1.0: 03-16-2016

  • Supporting API key exports.
  • Supporting Organization exports.
  • Fixing documentation.
  • Updating Stormpath dependency.

0.0.9: 06-19-2015

  • Fixing version information.

0.0.8: 06-19-2015

  • Supporting private deployments.

0.0.7: 06-18-2015

  • Supporting Account API key backups.

0.0.6: 06-18-2015

  • Completely re-doing export structures -- much more sane now.
  • Adding IDs, hrefs, and all fields to all backups.
  • Still needs to support Social / ID site / Verification templates.

0.0.5: 05-28-2015

  • Making the application export back up directory mappings.

0.0.4: 05-27-2015

  • Backing up customData for all resource types.
  • Upgrading dependencies.

0.0.3: 06-19-2014

  • Making application export include directory name for clarity.

0.0.2: 06-08-2014

  • Fixing bug with groups.
  • Adding support for custom data exporting.
  • Including new Stormpath SDK.

0.0.1: 12-14-2013

  • First super-beta release of the project. WOO.

stormpath-export's People

Contributors

j3k0 avatar rdegges avatar

Watchers

 avatar  avatar  avatar

Forkers

casualuser

stormpath-export's Issues

Import to ganomede-directory

Using import-json from ganomede-directory: https://github.com/j3k0/ganomede-directory/tree/master/bin

Write a script that import all users from a list of directories.

Script name: ./import-all-json

Given following structure:

  • a/
  • a/b/
  • a/b/ok1.json
  • a/b/fail1.json
  • a/c/
  • a/c/ok2.json
  • a/c/fail2.json
  • b/
  • b/d/
  • b/d/ok3.json
  • b/e/
  • b/e/fail3.json

Assuming import-json failN.json fails with an error message cannot import blah blah

When running: ./import-all-json a/b a/c

Expected output:

a/b/fail1.json: cannot import blah blah
a/c/fail2.json: cannot import blah blah

DONE: imported 2 users successfully. 2 failed to import (see above).

When running: ./import-all-json a b

Expected output:

DONE: imported 0 users successfully. 0 failed to import (see above).

When running: ./import-all-json b/d

Expected output:

DONE: imported 1 users successfully. 0 failed to import (see above).

When running: ./import-all-json b/e

Expected output:

b/e/fail3.json: cannot import blah blah

DONE: imported 0 users successfully. 1 failed to import (see above).

Of course: cannot import blah blah has to be whatever import-json outputs.

Store accounts into different subdirectories

Instead of all accounts JSON files going into the same accounts/ directory, create each account file into a subdirectory accounts/<givenName>/<domain>/<xyz>/, with:

  • xyz being the lowercased first three letters of the username.
  • domain being the domain name for the user's email.
  • givenName being the user's givenName, lowercased (either facebook or email in our use-case).

Example file: ClotildeL5.json

{
  "email": "[email protected]",
  "givenName": "Facebook",
  "middleName": "10202848354846732",
  "surname": "[email protected]",
  "username": "ClotildeL5"
}

It should be store in directory accounts/facebook/email-not-provided.local/clo/ directory.

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.