ToolJet/server/migrations/1714015564318-AddGranularPermissionsTable.ts

33 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-02-25 06:52:50 +00:00
import { DATA_BASE_CONSTRAINTS } from '@modules/group-permissions/constants/error';
2024-04-25 06:49:26 +00:00
import { MigrationInterface, QueryRunner } from 'typeorm';
export class AddGranularPermissionsTable1714015564318 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`
CREATE TYPE resource_type AS ENUM ('app', 'data_source');
`
);
await queryRunner.query(
`
CREATE TABLE granular_permissions (
2024-05-06 02:24:47 +00:00
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
2024-04-25 06:49:26 +00:00
group_id UUID,
2024-07-05 04:26:32 +00:00
name VARCHAR(50) NOT NULL,
2024-04-25 06:49:26 +00:00
type resource_type NOT NULL,
is_all BOOLEAN DEFAULT true,
2024-04-25 06:49:26 +00:00
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_group_id FOREIGN KEY (group_id) REFERENCES permission_groups(id) ON DELETE CASCADE,
2024-05-28 23:46:46 +00:00
CONSTRAINT ${DATA_BASE_CONSTRAINTS.GRANULAR_PERMISSIONS_NAME_UNIQUE.dbConstraint} UNIQUE (name, group_id)
2024-04-25 06:49:26 +00:00
);
`
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE IF EXISTS granular_permissions`);
}
}