From ba82d986c1d2cfebf7ca231f9c3083a8d81c4d1e Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Mon, 25 Nov 2024 14:40:26 +0000 Subject: [PATCH] chore(migrations): rename saml_auth_providers_role_mappings table as role_mappings --- ...roviders_role_mappings_as_role_mappings.js | 52 +++++++++++++++++++ .../src/models/saml-auth-provider.ee.js | 2 +- .../src/models/saml-auth-provider.ee.test.js | 2 +- .../saml-auth-providers-role-mapping.ee.js | 4 +- ...aml-auth-providers-role-mapping.ee.test.js | 6 +-- 5 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 packages/backend/src/db/migrations/20241125141647_rename_saml_auth_providers_role_mappings_as_role_mappings.js diff --git a/packages/backend/src/db/migrations/20241125141647_rename_saml_auth_providers_role_mappings_as_role_mappings.js b/packages/backend/src/db/migrations/20241125141647_rename_saml_auth_providers_role_mappings_as_role_mappings.js new file mode 100644 index 00000000..b8abfe85 --- /dev/null +++ b/packages/backend/src/db/migrations/20241125141647_rename_saml_auth_providers_role_mappings_as_role_mappings.js @@ -0,0 +1,52 @@ +export async function up(knex) { + await knex.schema.createTable('role_mappings', (table) => { + table.uuid('id').primary().defaultTo(knex.raw('gen_random_uuid()')); + table + .uuid('saml_auth_provider_id') + .references('id') + .inTable('saml_auth_providers'); + table.uuid('role_id').references('id').inTable('roles'); + table.string('remote_role_name').notNullable(); + + table.unique(['saml_auth_provider_id', 'remote_role_name']); + + table.timestamps(true, true); + }); + + const existingRoleMappings = await knex('saml_auth_providers_role_mappings'); + + if (existingRoleMappings.length) { + await knex('role_mappings').insert(existingRoleMappings); + } + + return await knex.schema.dropTable('saml_auth_providers_role_mappings'); +} + +export async function down(knex) { + await knex.schema.createTable( + 'saml_auth_providers_role_mappings', + (table) => { + table.uuid('id').primary().defaultTo(knex.raw('gen_random_uuid()')); + table + .uuid('saml_auth_provider_id') + .references('id') + .inTable('saml_auth_providers'); + table.uuid('role_id').references('id').inTable('roles'); + table.string('remote_role_name').notNullable(); + + table.unique(['saml_auth_provider_id', 'remote_role_name']); + + table.timestamps(true, true); + } + ); + + const existingRoleMappings = await knex('role_mappings'); + + if (existingRoleMappings.length) { + await knex('saml_auth_providers_role_mappings').insert( + existingRoleMappings + ); + } + + return await knex.schema.dropTable('role_mappings'); +} diff --git a/packages/backend/src/models/saml-auth-provider.ee.js b/packages/backend/src/models/saml-auth-provider.ee.js index 744da1a8..59fcc2cf 100644 --- a/packages/backend/src/models/saml-auth-provider.ee.js +++ b/packages/backend/src/models/saml-auth-provider.ee.js @@ -58,7 +58,7 @@ class SamlAuthProvider extends Base { modelClass: SamlAuthProvidersRoleMapping, join: { from: 'saml_auth_providers.id', - to: 'saml_auth_providers_role_mappings.saml_auth_provider_id', + to: 'role_mappings.saml_auth_provider_id', }, }, }); diff --git a/packages/backend/src/models/saml-auth-provider.ee.test.js b/packages/backend/src/models/saml-auth-provider.ee.test.js index cc20db52..780bbc19 100644 --- a/packages/backend/src/models/saml-auth-provider.ee.test.js +++ b/packages/backend/src/models/saml-auth-provider.ee.test.js @@ -31,7 +31,7 @@ describe('SamlAuthProvider model', () => { modelClass: SamlAuthProvidersRoleMapping, join: { from: 'saml_auth_providers.id', - to: 'saml_auth_providers_role_mappings.saml_auth_provider_id', + to: 'role_mappings.saml_auth_provider_id', }, }, }; diff --git a/packages/backend/src/models/saml-auth-providers-role-mapping.ee.js b/packages/backend/src/models/saml-auth-providers-role-mapping.ee.js index 00e11bb0..84edfa94 100644 --- a/packages/backend/src/models/saml-auth-providers-role-mapping.ee.js +++ b/packages/backend/src/models/saml-auth-providers-role-mapping.ee.js @@ -2,7 +2,7 @@ import Base from './base.js'; import SamlAuthProvider from './saml-auth-provider.ee.js'; class SamlAuthProvidersRoleMapping extends Base { - static tableName = 'saml_auth_providers_role_mappings'; + static tableName = 'role_mappings'; static jsonSchema = { type: 'object', @@ -21,7 +21,7 @@ class SamlAuthProvidersRoleMapping extends Base { relation: Base.BelongsToOneRelation, modelClass: SamlAuthProvider, join: { - from: 'saml_auth_providers_role_mappings.saml_auth_provider_id', + from: 'role_mappings.saml_auth_provider_id', to: 'saml_auth_providers.id', }, }, diff --git a/packages/backend/src/models/saml-auth-providers-role-mapping.ee.test.js b/packages/backend/src/models/saml-auth-providers-role-mapping.ee.test.js index 2fe26e90..052061fb 100644 --- a/packages/backend/src/models/saml-auth-providers-role-mapping.ee.test.js +++ b/packages/backend/src/models/saml-auth-providers-role-mapping.ee.test.js @@ -5,9 +5,7 @@ import Base from './base'; describe('SamlAuthProvidersRoleMapping model', () => { it('tableName should return correct name', () => { - expect(SamlAuthProvidersRoleMapping.tableName).toBe( - 'saml_auth_providers_role_mappings' - ); + expect(SamlAuthProvidersRoleMapping.tableName).toBe('role_mappings'); }); it('jsonSchema should have the correct schema', () => { @@ -22,7 +20,7 @@ describe('SamlAuthProvidersRoleMapping model', () => { relation: Base.BelongsToOneRelation, modelClass: SamlAuthProvider, join: { - from: 'saml_auth_providers_role_mappings.saml_auth_provider_id', + from: 'role_mappings.saml_auth_provider_id', to: 'saml_auth_providers.id', }, },