UNPKG

@okta/stormpath-migration

Version:

Migration tool to import Stormpath data into an Okta tenant

43 lines (39 loc) 1.73 kB
/*! * Copyright (c) 2017, Okta, Inc. and/or its affiliates. All rights reserved. * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.") * * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and limitations under the License. */ const Promise = require('bluebird'); const createOktaGroup = require('../functions/create-okta-group'); const logger = require('../util/logger'); const stormpathExport = require('../stormpath/stormpath-export'); const config = require('../util/config'); const addUsersFromOrganization = require('./util/add-users-from-organization'); const cache = require('./util/cache'); async function migrateOrg(org) { const lg = logger.group(`Stormpath organization id=${org.id} name=${org.name}`); try { const name = `org:${org.name}`; const description = org.nameKey; const group = await createOktaGroup(name, description); cache.organizationMap[org.id] = group.id; await addUsersFromOrganization(org.id); } catch (err) { logger.error(err); } finally { lg.end(); } } async function migrateOrganizations() { logger.header('Starting organizations import'); const organizations = await stormpathExport.getOrganizations(); logger.info(`Importing ${organizations.length} organizations`); return organizations.each(migrateOrg, { limit: 1 }); } module.exports = migrateOrganizations;