@tomei/sso
Version:
Tomei SSO Package
86 lines (83 loc) • 1.97 kB
JavaScript
'use strict';
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up(queryInterface, Sequelize) {
await queryInterface.createTable('sso_ApiKey', {
APIKeyId: {
primaryKey: true,
type: Sequelize.INTEGER,
allowNull: false,
autoIncrement: true,
},
APIKey: {
type: Sequelize.STRING(128),
allowNull: false,
unique: true,
},
Name: {
type: Sequelize.STRING(255),
allowNull: false,
},
SystemCode: {
type: Sequelize.STRING(10),
allowNull: false,
references: {
model: 'sso_System',
key: 'SystemCode',
},
onDelete: 'CASCADE',
onUpdate: 'CASCADE',
},
Description: {
type: Sequelize.TEXT,
allowNull: true,
},
Status: {
type: Sequelize.STRING(50),
defaultValue: 'Active',
allowNull: false,
},
ExpirationDate: {
allowNull: false,
type: Sequelize.DATE,
},
CreatedAt: {
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP(3)'),
type: Sequelize.DATE,
},
CreatedById: {
type: Sequelize.INTEGER,
allowNull: true,
references: {
model: 'sso_User',
key: 'UserId',
},
onDelete: 'CASCADE',
onUpdate: 'CASCADE',
},
RevokedAt: {
allowNull: true,
type: Sequelize.DATE,
},
RevokedById: {
type: Sequelize.INTEGER,
allowNull: true,
references: {
model: 'sso_User',
key: 'UserId',
},
onDelete: 'CASCADE',
onUpdate: 'CASCADE',
},
RevokedReason: {
type: Sequelize.TEXT,
defaultValue: 'Active',
allowNull: true,
},
});
},
async down(queryInterface) {
await queryInterface.dropTable('sso_APIKey');
},
};