Skip to content

Latest commit

 

History

History
128 lines (98 loc) · 4.82 KB

README.md

File metadata and controls

128 lines (98 loc) · 4.82 KB

stormpath-migration

Requirements

Prerequisites

To use this tool, you must have a Stormpath export unzipped on your local filesystem. The directory structure should be as follows:

├── home/
│   ├── {tenantId}/
│   │   ├── directories/
│   │   │   ├── {directoryId}.json
│   │   │   ├-- ....
│   │   ├── providers/
│   │   │   ├── {directoryId}.json
│   │   │   ├-- ....
│   │   ├── accounts/
│   │   │   ├── {directoryId}/
│   │   │   │   ├── {accountId}.json
│   │   │   │   ├-- ....
│   │   │   ├-- ....
│   │   ├── groups/
│   │   │   ├── {directoryId}/
│   │   │   │   ├── {groupId}.json
│   │   │   │   ├-- ....
│   │   │   ├-- ....
│   │   ├── organizations/
│   │   │   ├── {organizationId}.json
│   │   │   ├-- ....

Note: Providers must match 1:1 with Directories (same filenames).

Note: The 'accounts' and 'groups' folders should be segmented by {directoryId} so that it's possible to iterate over them by directory.

Here's a concrete example:

├── home/
│   ├── tenant123/
│   │   ├── directories/
│   │   │   ├── 5LInED46hB6nv9auaOrIYW.json
│   │   │   ├── 7ZBZLdnlxFsEtIs4BRpUHk.json
│   │   │   ├-- ....
│   │   ├── providers/
│   │   │   ├── 5LInED46hB6nv9auaOrIYW.json
│   │   │   ├── 7ZBZLdnlxFsEtIs4BRpUHk.json
│   │   │   ├-- ....
│   │   ├── accounts/
│   │   │   ├── 5LInED46hB6nv9auaOrIYW/
│   │   │   │   ├── 8LJuP3l2Lke9XWL4Vpie3o.json
│   │   │   │   ├-- ....
│   │   │   ├── 7ZBZLdnlxFsEtIs4BRpUHk/
│   │   │   │   ├── 4DfxGCAyrxNyiqjPQIHfHI.json
│   │   │   │   ├-- ....
│   │   ├── groups/
│   │   │   ├── 5LInED46hB6nv9auaOrIYW/
│   │   │   │   ├── 1iMYLWrjvnc833sPCBVbtU.json
│   │   │   │   ├-- ....
│   │   │   ├── 7ZBZLdnlxFsEtIs4BRpUHk/
│   │   │   │   ├── d72ghS4bBhaqzuUN6ur1g.json
│   │   │   │   ├-- ....
│   │   ├── organizations/
│   │   │   ├── 7O67Ni1CG5bo9E9NLA3kdg.json
│   │   │   ├-- ....

In this example, the "stormpathBaseDir" would be /home/tenant123.

To Install:

$ npm install -g @okta/stormpath-migration

To Run:

$ import-stormpath --stormPathBaseDir /path/to/export/data --oktaBaseUrl https://your-org.okta.com --oktaApiToken 5DSfsl4x@3Slt6

Note: output is logged to the console as well as to a json log file. The first and last line of output indicate where the JSON log file was written to.

Required Args

--stormPathBaseDir (-b) Root directory where your Stormpath tenant export data lives

  • Example: --stormPathBaseDir ~/Desktop/stormpath-exports/683IDSZVtUQewtFoqVrIEe

--oktaBaseUrl (-u) Base URL of your Okta tenant

  • Example: --oktaBaseUrl https://your-org.okta.com

--oktaApiToken (-t) API token for your Okta tenant (SSWS token)

  • Example: --oktaApiToken 00gdoRRz2HUBdy06kTDwTOiPeVInGKpKfG-H4P_Lij

Optional Args

--customData (-d) Strategy for importing Stormpath Account custom data. Defaults to flatten.

  • Options

  • Example: --customData stringify

--concurrencyLimit (-c) Max number of concurrent transactions. Defaults to 30.

  • Example: --concurrencyLimit 200

--maxFiles (-f) Max number of files to parse per directory. Use to preview the entire import.

--logLevel (-l) Logging level. Defaults to info.

  • Options: error, warn, info, verbose, debug, silly
  • Example: --logLevel verbose

Organization Reset

If you need to run the import script again, but wish to start with a blank slate, this tool also provides a reset script that will remove all data from your org. The reset script takes the same arguments as the import script.

WARNING: This will delete all data from the specified org:

reset-okta --stormPathBaseDir /path/to/export/data --oktaBaseUrl https://your-org.okta.com --oktaApiToken 5DSfsl4x@3Slt6