UNPKG

auth0-tenant-to-tenant-user-migration-tool

Version:
72 lines 3.7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.migrateUsers = void 0; const pick_1 = __importDefault(require("lodash/pick")); const get_management_token_1 = require("../utils/get-management-token"); const get_user_by_email_1 = __importDefault(require("../utils/get-user-by-email")); const get_users_by_connection_1 = __importDefault(require("../utils/get-users-by-connection")); const request_prerequiste_data_1 = require("../utils/request-prerequiste-data"); const with_graceful_exit_1 = __importDefault(require("../utils/with-graceful-exit")); const import_users_1 = __importDefault(require("../utils/import-users")); const logger_1 = __importDefault(require("../utils/logger")); const migrateUsers = async () => { const { domain: sourceDomain, clientId: sourceClientId, clientSecret: sourceClientSecret, } = await (0, request_prerequiste_data_1.requestAuthOConfiguration)('source'); const sourceToken = await (0, get_management_token_1.getManagementToken)(sourceDomain, sourceClientId, sourceClientSecret); let exportedUsers = []; const emailAddress = await (0, request_prerequiste_data_1.requestEmail)(); if (emailAddress) { const foundUser = await (0, get_user_by_email_1.default)(sourceDomain, sourceToken, emailAddress); if (!foundUser) { throw new Error('User not found!'); } exportedUsers.push(foundUser); } else { const sourceConnection = await (0, request_prerequiste_data_1.requestConnection)('source', sourceDomain, sourceToken, 'name'); const foundUsers = await (0, get_users_by_connection_1.default)({ domain: sourceDomain, connection: sourceConnection, token: sourceToken, }); if (foundUsers.length > 0) { exportedUsers = exportedUsers.concat(foundUsers); } } if (exportedUsers.length > 0) { const { fields: fieldsToExtract, upsert } = await (0, request_prerequiste_data_1.requestMigrationDetails)(); const { domain: destinationDomain, clientId: destinationClientId, clientSecret: destinationClientSecret, } = await (0, request_prerequiste_data_1.requestAuthOConfiguration)('destination'); const destinationToken = await (0, get_management_token_1.getManagementToken)(destinationDomain, destinationClientId, destinationClientSecret); const usersToImport = exportedUsers.map((user) => { const newUser = (0, pick_1.default)(user, fieldsToExtract); return { ...newUser, ...(newUser.user_id && { user_id: newUser.user_id.replace('auth0|', ''), }), }; }); const destinationConnectionId = await (0, request_prerequiste_data_1.requestConnection)('destination', destinationDomain, destinationToken, 'id'); await (0, import_users_1.default)({ users: usersToImport, token: destinationToken, connectionId: destinationConnectionId, tenantDomain: destinationDomain, isUpsert: upsert, }); } else { logger_1.default.info('No users found to migrate.'); } }; exports.migrateUsers = migrateUsers; const setupMigrateUsersCommand = (program) => { program .command('migrate-users') .description('Migrate users between tenants') .action((0, with_graceful_exit_1.default)(exports.migrateUsers)); }; exports.default = setupMigrateUsersCommand; //# sourceMappingURL=migrate-users.js.map