n8n
Version:
n8n Workflow Automation Tool
94 lines • 7.56 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreateUserManagement1646992772331 = void 0;
const uuid_1 = require("uuid");
class CreateUserManagement1646992772331 {
async up({ queryRunner, tablePrefix, loadSurveyFromDisk }) {
await queryRunner.query(`CREATE TABLE ${tablePrefix}role (
\`id\` int NOT NULL AUTO_INCREMENT,
\`name\` varchar(32) NOT NULL,
\`scope\` varchar(255) NOT NULL,
\`createdAt\` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
\`updatedAt\` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (\`id\`),
UNIQUE KEY \`UQ_${tablePrefix}5b49d0f504f7ef31045a1fb2eb8\` (\`scope\`,\`name\`)
) ENGINE=InnoDB;`);
await queryRunner.query(`CREATE TABLE ${tablePrefix}user (
\`id\` VARCHAR(36) NOT NULL,
\`email\` VARCHAR(255) NULL DEFAULT NULL,
\`firstName\` VARCHAR(32) NULL DEFAULT NULL,
\`lastName\` VARCHAR(32) NULL DEFAULT NULL,
\`password\` VARCHAR(255) NULL DEFAULT NULL,
\`resetPasswordToken\` VARCHAR(255) NULL DEFAULT NULL,
\`resetPasswordTokenExpiration\` INT NULL DEFAULT NULL,
\`personalizationAnswers\` TEXT NULL DEFAULT NULL,
\`createdAt\` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
\`updatedAt\` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
\`globalRoleId\` INT NOT NULL,
PRIMARY KEY (\`id\`),
UNIQUE INDEX \`IDX_${tablePrefix}e12875dfb3b1d92d7d7c5377e2\` (\`email\` ASC),
INDEX \`FK_${tablePrefix}f0609be844f9200ff4365b1bb3d\` (\`globalRoleId\` ASC)
) ENGINE=InnoDB;`);
await queryRunner.query(`ALTER TABLE \`${tablePrefix}user\` ADD CONSTRAINT \`FK_${tablePrefix}f0609be844f9200ff4365b1bb3d\` FOREIGN KEY (\`globalRoleId\`) REFERENCES \`${tablePrefix}role\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`CREATE TABLE ${tablePrefix}shared_workflow (
\`createdAt\` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
\`updatedAt\` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
\`roleId\` INT NOT NULL,
\`userId\` VARCHAR(36) NOT NULL,
\`workflowId\` INT NOT NULL,
INDEX \`FK_${tablePrefix}3540da03964527aa24ae014b780x\` (\`roleId\` ASC),
INDEX \`FK_${tablePrefix}82b2fd9ec4e3e24209af8160282x\` (\`userId\` ASC),
INDEX \`FK_${tablePrefix}b83f8d2530884b66a9c848c8b88x\` (\`workflowId\` ASC),
PRIMARY KEY (\`userId\`, \`workflowId\`)
) ENGINE=InnoDB;`);
await queryRunner.query(`ALTER TABLE \`${tablePrefix}shared_workflow\` ADD CONSTRAINT \`FK_${tablePrefix}3540da03964527aa24ae014b780\` FOREIGN KEY (\`roleId\`) REFERENCES \`${tablePrefix}role\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`${tablePrefix}shared_workflow\` ADD CONSTRAINT \`FK_${tablePrefix}82b2fd9ec4e3e24209af8160282\` FOREIGN KEY (\`userId\`) REFERENCES \`${tablePrefix}user\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`${tablePrefix}shared_workflow\` ADD CONSTRAINT \`FK_${tablePrefix}b83f8d2530884b66a9c848c8b88\` FOREIGN KEY (\`workflowId\`) REFERENCES \`${tablePrefix}workflow_entity\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`CREATE TABLE ${tablePrefix}shared_credentials (
\`createdAt\` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
\`updatedAt\` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
\`roleId\` INT NOT NULL,
\`userId\` VARCHAR(36) NOT NULL,
\`credentialsId\` INT NOT NULL,
INDEX \`FK_${tablePrefix}c68e056637562000b68f480815a\` (\`roleId\` ASC),
INDEX \`FK_${tablePrefix}484f0327e778648dd04f1d70493\` (\`userId\` ASC),
INDEX \`FK_${tablePrefix}68661def1d4bcf2451ac8dbd949\` (\`credentialsId\` ASC),
PRIMARY KEY (\`userId\`, \`credentialsId\`)
) ENGINE=InnoDB;`);
await queryRunner.query(`ALTER TABLE \`${tablePrefix}shared_credentials\` ADD CONSTRAINT \`FK_${tablePrefix}484f0327e778648dd04f1d70493\` FOREIGN KEY (\`userId\`) REFERENCES \`${tablePrefix}user\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`${tablePrefix}shared_credentials\` ADD CONSTRAINT \`FK_${tablePrefix}68661def1d4bcf2451ac8dbd949\` FOREIGN KEY (\`credentialsId\`) REFERENCES \`${tablePrefix}credentials_entity\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`${tablePrefix}shared_credentials\` ADD CONSTRAINT \`FK_${tablePrefix}c68e056637562000b68f480815a\` FOREIGN KEY (\`roleId\`) REFERENCES \`${tablePrefix}role\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`CREATE TABLE ${tablePrefix}settings (
\`key\` VARCHAR(255) NOT NULL,
\`value\` TEXT NOT NULL,
\`loadOnStartup\` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (\`key\`)
) ENGINE=InnoDB;`);
await queryRunner.query(`ALTER TABLE ${tablePrefix}workflow_entity DROP INDEX IDX_${tablePrefix}943d8f922be094eb507cb9a7f9`);
await queryRunner.query(`INSERT INTO ${tablePrefix}role (name, scope) VALUES ("owner", "global");`);
const instanceOwnerRole = (await queryRunner.query('SELECT LAST_INSERT_ID() as insertId'));
await queryRunner.query(`INSERT INTO ${tablePrefix}role (name, scope) VALUES ("member", "global");`);
await queryRunner.query(`INSERT INTO ${tablePrefix}role (name, scope) VALUES ("owner", "workflow");`);
const workflowOwnerRole = (await queryRunner.query('SELECT LAST_INSERT_ID() as insertId'));
await queryRunner.query(`INSERT INTO ${tablePrefix}role (name, scope) VALUES ("owner", "credential");`);
const credentialOwnerRole = (await queryRunner.query('SELECT LAST_INSERT_ID() as insertId'));
const survey = loadSurveyFromDisk();
const ownerUserId = (0, uuid_1.v4)();
await queryRunner.query(`INSERT INTO ${tablePrefix}user (id, globalRoleId, personalizationAnswers) values (?, ?, ?)`, [ownerUserId, instanceOwnerRole[0].insertId, survey]);
await queryRunner.query(`INSERT INTO ${tablePrefix}shared_workflow (createdAt, updatedAt, roleId, userId, workflowId) select
NOW(), NOW(), '${workflowOwnerRole[0].insertId}', '${ownerUserId}', id FROM ${tablePrefix}workflow_entity`);
await queryRunner.query(`INSERT INTO ${tablePrefix}shared_credentials (createdAt, updatedAt, roleId, userId, credentialsId) SELECT NOW(), NOW(), '${credentialOwnerRole[0].insertId}', '${ownerUserId}', id FROM ${tablePrefix}credentials_entity`);
await queryRunner.query(`INSERT INTO ${tablePrefix}settings (\`key\`, value, loadOnStartup) VALUES ("userManagement.isInstanceOwnerSetUp", "false", 1), ("userManagement.skipInstanceOwnerSetup", "false", 1)`);
await queryRunner.query(`INSERT INTO ${tablePrefix}settings (\`key\`, value, loadOnStartup) VALUES ("ui.banners.dismissed", JSON_ARRAY('V1'), 1)`);
}
async down({ queryRunner, tablePrefix }) {
await queryRunner.query(`ALTER TABLE ${tablePrefix}workflow_entity ADD UNIQUE INDEX \`IDX_${tablePrefix}943d8f922be094eb507cb9a7f9\` (\`name\`)`);
await queryRunner.query(`DROP TABLE "${tablePrefix}shared_credentials"`);
await queryRunner.query(`DROP TABLE "${tablePrefix}shared_workflow"`);
await queryRunner.query(`DROP TABLE "${tablePrefix}user"`);
await queryRunner.query(`DROP TABLE "${tablePrefix}role"`);
await queryRunner.query(`DROP TABLE "${tablePrefix}settings"`);
}
}
exports.CreateUserManagement1646992772331 = CreateUserManagement1646992772331;
//# sourceMappingURL=1646992772331-CreateUserManagement.js.map