@nest-boot/row-level-security 7.2.0 → 7.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -7,4 +7,5 @@ export * from "./row-level-security";
7
7
  export * from "./row-level-security-driver";
8
8
  export * from "./row-level-security-migration";
9
9
  export * from "./row-level-security-migration-generator";
10
+ export * from "./row-level-security-migrator";
10
11
  export * from "./utils";
package/dist/index.js CHANGED
@@ -23,5 +23,6 @@ __exportStar(require("./row-level-security"), exports);
23
23
  __exportStar(require("./row-level-security-driver"), exports);
24
24
  __exportStar(require("./row-level-security-migration"), exports);
25
25
  __exportStar(require("./row-level-security-migration-generator"), exports);
26
+ __exportStar(require("./row-level-security-migrator"), exports);
26
27
  __exportStar(require("./utils"), exports);
27
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,8DAA4C;AAC5C,2DAAyC;AACzC,uEAAqD;AACrD,+CAA6B;AAC7B,uDAAqC;AACrC,8DAA4C;AAC5C,iEAA+C;AAC/C,2EAAyD;AACzD,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,8DAA4C;AAC5C,2DAAyC;AACzC,uEAAqD;AACrD,+CAA6B;AAC7B,uDAAqC;AACrC,8DAA4C;AAC5C,iEAA+C;AAC/C,2EAAyD;AACzD,gEAA8C;AAC9C,0CAAwB"}
@@ -47,6 +47,7 @@ describe("row level security package exports", () => {
47
47
  expect(rowLevelSecurity.RowLevelSecurityDriver).toBeDefined();
48
48
  expect(rowLevelSecurity.RowLevelSecurityMigration).toBeDefined();
49
49
  expect(rowLevelSecurity.RowLevelSecurityMigrationGenerator).toBeDefined();
50
+ expect(rowLevelSecurity.RowLevelSecurityMigrator).toBeDefined();
50
51
  expect(rowLevelSecurity.createPolicyUpSqlStatements).toBeDefined();
51
52
  });
52
53
  it("exports utility helpers", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAsC;AACtC,+DAAiD;AAEjD,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC,WAAW,EAAE,CAAC;QAClE,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9D,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,MAAM,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1E,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,WAAW,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CACrE,kBAAkB,CACnB,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,kCAAkC,EAAE,CAAC,CAAC,OAAO,CACxE,MAAM,CAAC,eAAe,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAC7D,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,+BAA+B,EAAE,CAAC,CAAC,OAAO,CACrE,MAAM,CAAC,eAAe,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,IAAI,GAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAEjD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAsC;AACtC,+DAAiD;AAEjD,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC,WAAW,EAAE,CAAC;QAClE,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9D,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,MAAM,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1E,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,WAAW,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CACrE,kBAAkB,CACnB,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,kCAAkC,EAAE,CAAC,CAAC,OAAO,CACxE,MAAM,CAAC,eAAe,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAC7D,CAAC;QACF,MAAM,CAAC,qBAAqB,CAAC,+BAA+B,EAAE,CAAC,CAAC,OAAO,CACrE,MAAM,CAAC,eAAe,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,IAAI,GAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAEjD,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -6,6 +6,9 @@ export declare class RowLevelSecurityMigrationGenerator extends TSMigrationGener
6
6
  private existingPolicyRoleDefinitions?;
7
7
  private currentPolicyDefinitions?;
8
8
  generate(diff: MigrationDiff, path?: string, name?: string): Promise<[string, string]>;
9
+ /** Returns whether the current metadata contains RLS policy changes not present in the database. */
10
+ hasPendingPolicyChanges(diff: MigrationDiff): Promise<boolean>;
11
+ private withPolicyDefinitions;
9
12
  generateMigrationFile(className: string, diff: MigrationDiff): string;
10
13
  private getPolicyDefinitionChanges;
11
14
  private getRelevantPolicyDefinitions;
@@ -13,6 +13,20 @@ const create_policy_up_sql_statements_1 = require("./utils/create-policy-up-sql-
13
13
  /** MikroORM TypeScript migration generator that injects generated RLS SQL. */
14
14
  class RowLevelSecurityMigrationGenerator extends migrations_1.TSMigrationGenerator {
15
15
  async generate(diff, path, name) {
16
+ return await this.withPolicyDefinitions(diff, () => super.generate(diff, path, name));
17
+ }
18
+ /** Returns whether the current metadata contains RLS policy changes not present in the database. */
19
+ async hasPendingPolicyChanges(diff) {
20
+ return await this.withPolicyDefinitions(diff, () => {
21
+ if (!this.existingPolicyDefinitions) {
22
+ return false;
23
+ }
24
+ const currentPolicyDefinitions = this.currentPolicyDefinitions ?? [];
25
+ const { added, removed } = this.getPolicyDefinitionChanges(diff, currentPolicyDefinitions);
26
+ return added.length > 0 || removed.length > 0;
27
+ });
28
+ }
29
+ async withPolicyDefinitions(diff, callback) {
16
30
  const entityMetadata = this.getEntityMetadata();
17
31
  const currentPolicyDefinitions = this.getPolicyDefinitions(entityMetadata);
18
32
  const tableReferences = getPolicyDefinitionTableReferences(currentPolicyDefinitions);
@@ -23,7 +37,7 @@ class RowLevelSecurityMigrationGenerator extends migrations_1.TSMigrationGenerat
23
37
  this.existingPolicyRoleDefinitions = existingPolicyDefinitions;
24
38
  this.currentPolicyDefinitions = currentPolicyDefinitions;
25
39
  try {
26
- return await super.generate(diff, path, name);
40
+ return await callback();
27
41
  }
28
42
  finally {
29
43
  this.existingPolicyDefinitions = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"row-level-security-migration-generator.js","sourceRoot":"","sources":["../src/row-level-security-migration-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"row-level-security-migration-generator.js","sourceRoot":"","sources":["../src/row-level-security-migration-generator.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ const node_fs_1 = require("node:fs");
10
+ const node_os_1 = require("node:os");
11
+ const node_path_1 = require("node:path");
9
12
  const migrations_1 = require("@mikro-orm/migrations");
10
13
  const policy_decorator_1 = require("./decorators/policy.decorator");
11
14
  const policy_command_enum_1 = require("./enums/policy-command.enum");
12
15
  const row_level_security_migration_generator_1 = require("./row-level-security-migration-generator");
16
+ const row_level_security_migrator_1 = require("./row-level-security-migrator");
13
17
  let WorkspaceMember = class WorkspaceMember {
14
18
  };
15
19
  WorkspaceMember = __decorate([
@@ -42,6 +46,17 @@ WorkspaceMemberWithGeneratedPolicy = __decorate([
42
46
  context: "user_id",
43
47
  })
44
48
  ], WorkspaceMemberWithGeneratedPolicy);
49
+ let WorkspaceMemberWithWorkspaceContextPolicy = class WorkspaceMemberWithWorkspaceContextPolicy {
50
+ };
51
+ WorkspaceMemberWithWorkspaceContextPolicy = __decorate([
52
+ (0, policy_decorator_1.Policy)({
53
+ name: "workspace_member_workspace_select_policy",
54
+ command: policy_command_enum_1.PolicyCommand.SELECT,
55
+ property: "workspace",
56
+ context: "workspace_id",
57
+ roles: ["authenticated"],
58
+ })
59
+ ], WorkspaceMemberWithWorkspaceContextPolicy);
45
60
  let AuditLog = class AuditLog {
46
61
  };
47
62
  AuditLog = __decorate([
@@ -252,6 +267,39 @@ describe("RowLevelSecurityMigrationGenerator", () => {
252
267
  ]);
253
268
  expect(superGenerate).toHaveBeenCalledTimes(1);
254
269
  });
270
+ it("detects pending policy-only changes from existing database policies", async () => {
271
+ const execute = jest.fn((_sql) => Promise.resolve([
272
+ {
273
+ policy_name: "workspace_member_workspace_select_policy",
274
+ schema_name: "public",
275
+ table_name: "workspace_member",
276
+ permissive: true,
277
+ command: "r",
278
+ qual: `((select app.get_context('tenant_id', null::bigint)) = "workspace_id")`,
279
+ with_check: null,
280
+ roles: ["authenticated"],
281
+ },
282
+ ]));
283
+ const generator = createGenerator([
284
+ {
285
+ class: WorkspaceMemberWithWorkspaceContextPolicy,
286
+ tableName: "workspace_member",
287
+ properties: {
288
+ workspace: {
289
+ fieldNames: ["workspace_id"],
290
+ columnTypes: ["bigint"],
291
+ },
292
+ },
293
+ },
294
+ ], {
295
+ getConnection: () => ({
296
+ execute,
297
+ }),
298
+ });
299
+ await expect(generator.hasPendingPolicyChanges({ up: [], down: [] })).resolves.toBe(true);
300
+ expect(generator.existingPolicyDefinitions).toBeUndefined();
301
+ expect(generator.currentPolicyDefinitions).toBeUndefined();
302
+ });
255
303
  it("does not recreate policies for unrelated schema changes without a database connection", async () => {
256
304
  const diff = {
257
305
  up: [
@@ -626,14 +674,138 @@ describe("RowLevelSecurityMigrationGenerator", () => {
626
674
  expect(row_level_security_migration_generator_1.RowLevelSecurityMigrationGenerator.prototype).toBeInstanceOf(migrations_1.TSMigrationGenerator);
627
675
  });
628
676
  });
629
- function createGenerator(metadata, driverOptions = {}) {
677
+ describe("RowLevelSecurityMigrator", () => {
678
+ afterEach(() => {
679
+ jest.restoreAllMocks();
680
+ });
681
+ it("creates a migration when only row-level-security policies changed", async () => {
682
+ const diff = { up: [], down: [] };
683
+ const generator = createGenerator([]);
684
+ const hasPendingPolicyChanges = jest
685
+ .spyOn(generator, "hasPendingPolicyChanges")
686
+ .mockResolvedValue(true);
687
+ const generate = jest
688
+ .spyOn(generator, "generate")
689
+ .mockResolvedValue(["migration-file", "Migration.ts"]);
690
+ const storeCurrentSchema = jest.fn();
691
+ const migrator = Object.assign(Object.create(row_level_security_migrator_1.RowLevelSecurityMigrator.prototype), {
692
+ generator,
693
+ ensureMigrationsDirExists: jest.fn(),
694
+ getSchemaDiff: jest.fn().mockResolvedValue(diff),
695
+ storeCurrentSchema,
696
+ });
697
+ await expect(migrator.createMigration("/tmp", false, false, "Migration")).resolves.toEqual({
698
+ fileName: "Migration.ts",
699
+ code: "migration-file",
700
+ diff,
701
+ });
702
+ expect(hasPendingPolicyChanges).toHaveBeenCalledWith(diff);
703
+ expect(generate).toHaveBeenCalledWith(diff, "/tmp", "Migration");
704
+ expect(storeCurrentSchema).toHaveBeenCalledTimes(1);
705
+ });
706
+ it("generates a policy diff after an applied context policy changes", async () => {
707
+ const migrationPath = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "rls-policy-diff-"));
708
+ const diff = { up: [], down: [] };
709
+ const execute = jest.fn((_sql) => Promise.resolve([
710
+ {
711
+ policy_name: "workspace_member_workspace_select_policy",
712
+ schema_name: "public",
713
+ table_name: "workspace_member",
714
+ permissive: true,
715
+ command: "r",
716
+ qual: `((select app.get_context('tenant_id', null::bigint)) = "workspace_id")`,
717
+ with_check: null,
718
+ roles: ["authenticated"],
719
+ },
720
+ ]));
721
+ const generator = createGenerator([
722
+ {
723
+ class: WorkspaceMemberWithWorkspaceContextPolicy,
724
+ tableName: "workspace_member",
725
+ properties: {
726
+ workspace: {
727
+ fieldNames: ["workspace_id"],
728
+ columnTypes: ["bigint"],
729
+ },
730
+ },
731
+ },
732
+ ], {
733
+ getConnection: () => ({
734
+ execute,
735
+ }),
736
+ }, {
737
+ path: migrationPath,
738
+ pathTs: migrationPath,
739
+ });
740
+ const storeCurrentSchema = jest.fn();
741
+ const migrator = Object.assign(Object.create(row_level_security_migrator_1.RowLevelSecurityMigrator.prototype), {
742
+ generator,
743
+ ensureMigrationsDirExists: jest.fn(),
744
+ getSchemaDiff: jest.fn().mockResolvedValue(diff),
745
+ storeCurrentSchema,
746
+ });
747
+ try {
748
+ const result = await migrator.createMigration(migrationPath, false, false, "MigrationPolicyContextDiff");
749
+ expect(result.fileName).toBe("MigrationPolicyContextDiff.ts");
750
+ expect(result.diff).toBe(diff);
751
+ expect(result.code).toContain("extends RowLevelSecurityMigration");
752
+ expect(result.code).toContain("drop policy if exists workspace_member_workspace_select_policy");
753
+ expect(result.code).toContain("app.get_context('workspace_id', null::bigint)");
754
+ expect(result.code).toContain("app.get_context('tenant_id', null::bigint)");
755
+ expect(result.code.indexOf("drop policy if exists workspace_member_workspace_select_policy")).toBeLessThan(result.code.indexOf("create policy workspace_member_workspace_select_policy"));
756
+ expect(storeCurrentSchema).toHaveBeenCalledTimes(1);
757
+ }
758
+ finally {
759
+ (0, node_fs_1.rmSync)(migrationPath, { force: true, recursive: true });
760
+ }
761
+ });
762
+ it("keeps MikroORM no-op behavior when schema and policies are unchanged", async () => {
763
+ const diff = { up: [], down: [] };
764
+ const generator = createGenerator([]);
765
+ jest.spyOn(generator, "hasPendingPolicyChanges").mockResolvedValue(false);
766
+ const generate = jest.spyOn(generator, "generate");
767
+ const storeCurrentSchema = jest.fn();
768
+ const migrator = Object.assign(Object.create(row_level_security_migrator_1.RowLevelSecurityMigrator.prototype), {
769
+ generator,
770
+ ensureMigrationsDirExists: jest.fn(),
771
+ getSchemaDiff: jest.fn().mockResolvedValue(diff),
772
+ storeCurrentSchema,
773
+ });
774
+ await expect(migrator.createMigration()).resolves.toEqual({
775
+ fileName: "",
776
+ code: "",
777
+ diff,
778
+ });
779
+ expect(generate).not.toHaveBeenCalled();
780
+ expect(storeCurrentSchema).not.toHaveBeenCalled();
781
+ });
782
+ it("reports migration needed when only row-level-security policies changed", async () => {
783
+ const diff = { up: [], down: [] };
784
+ const generator = createGenerator([]);
785
+ jest.spyOn(generator, "hasPendingPolicyChanges").mockResolvedValue(true);
786
+ const migrator = Object.assign(Object.create(row_level_security_migrator_1.RowLevelSecurityMigrator.prototype), {
787
+ generator,
788
+ ensureMigrationsDirExists: jest.fn(),
789
+ getSchemaDiff: jest.fn().mockResolvedValue(diff),
790
+ });
791
+ await expect(migrator.checkMigrationNeeded()).resolves.toBe(true);
792
+ });
793
+ });
794
+ function createGenerator(metadata, driverOptions = {}, generatorOptions = {}) {
630
795
  return new row_level_security_migration_generator_1.RowLevelSecurityMigrationGenerator({
631
796
  config: {
797
+ get: (key) => (key === "baseDir" ? process.cwd() : undefined),
632
798
  getMetadata: () => ({
633
799
  getAll: () => metadata,
634
800
  }),
635
801
  },
636
802
  ...driverOptions,
637
- }, {}, { emit: "ts" });
803
+ }, {
804
+ classToMigrationName: (_timestamp, name) => name ?? "Migration",
805
+ }, {
806
+ emit: "ts",
807
+ fileName: (_timestamp, name) => name ?? "Migration",
808
+ ...generatorOptions,
809
+ });
638
810
  }
639
811
  //# sourceMappingURL=row-level-security-migration-generator.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"row-level-security-migration-generator.spec.js","sourceRoot":"","sources":["../src/row-level-security-migration-generator.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"row-level-security-migration-generator.spec.js","sourceRoot":"","sources":["../src/row-level-security-migration-generator.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { MigrationResult, MikroORM } from "@mikro-orm/core";
2
+ import { Migrator } from "@mikro-orm/migrations";
3
+ /** MikroORM migrator that also creates migrations for policy-only RLS changes. */
4
+ export declare class RowLevelSecurityMigrator extends Migrator {
5
+ /** Registers the RLS-aware migrator extension with a MikroORM instance. */
6
+ static register(orm: MikroORM): void;
7
+ createMigration(path?: string, blank?: boolean, initial?: boolean, name?: string): Promise<MigrationResult>;
8
+ /** Checks whether schema or RLS policy changes require a new migration. */
9
+ checkMigrationNeeded(): Promise<boolean>;
10
+ private hasPendingPolicyChanges;
11
+ private getRowLevelSecurityGenerator;
12
+ private getInternals;
13
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RowLevelSecurityMigrator = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ const row_level_security_migration_generator_1 = require("./row-level-security-migration-generator");
6
+ /** MikroORM migrator that also creates migrations for policy-only RLS changes. */
7
+ class RowLevelSecurityMigrator extends migrations_1.Migrator {
8
+ /** Registers the RLS-aware migrator extension with a MikroORM instance. */
9
+ static register(orm) {
10
+ orm.config.registerExtension("@mikro-orm/migrator", () => new RowLevelSecurityMigrator(orm.em));
11
+ }
12
+ async createMigration(path, blank = false, initial = false, name) {
13
+ if (initial) {
14
+ return await super.createMigration(path, blank, initial, name);
15
+ }
16
+ const internals = this.getInternals();
17
+ await internals.ensureMigrationsDirExists();
18
+ const diff = await internals.getSchemaDiff(blank, initial);
19
+ if (diff.up.length === 0) {
20
+ const hasPolicyChanges = await this.hasPendingPolicyChanges(diff);
21
+ if (!hasPolicyChanges) {
22
+ return { fileName: "", code: "", diff };
23
+ }
24
+ }
25
+ const migration = await internals.generator.generate(diff, path, name);
26
+ await internals.storeCurrentSchema();
27
+ return {
28
+ fileName: migration[1],
29
+ code: migration[0],
30
+ diff,
31
+ };
32
+ }
33
+ /** Checks whether schema or RLS policy changes require a new migration. */
34
+ async checkMigrationNeeded() {
35
+ const internals = this.getInternals();
36
+ await internals.ensureMigrationsDirExists();
37
+ const diff = await internals.getSchemaDiff(false, false);
38
+ if (diff.up.length > 0) {
39
+ return true;
40
+ }
41
+ return await this.hasPendingPolicyChanges(diff);
42
+ }
43
+ async hasPendingPolicyChanges(diff) {
44
+ const generator = this.getRowLevelSecurityGenerator();
45
+ // TODO: Support MikroORM snapshot mode by comparing generated policy state
46
+ // instead of only live database policies.
47
+ return generator ? await generator.hasPendingPolicyChanges(diff) : false;
48
+ }
49
+ getRowLevelSecurityGenerator() {
50
+ const generator = this.getInternals().generator;
51
+ return generator instanceof row_level_security_migration_generator_1.RowLevelSecurityMigrationGenerator
52
+ ? generator
53
+ : undefined;
54
+ }
55
+ getInternals() {
56
+ return this;
57
+ }
58
+ }
59
+ exports.RowLevelSecurityMigrator = RowLevelSecurityMigrator;
60
+ //# sourceMappingURL=row-level-security-migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-level-security-migrator.js","sourceRoot":"","sources":["../src/row-level-security-migrator.ts"],"names":[],"mappings":";;;AACA,sDAAiD;AAEjD,qGAA8F;AAiB9F,kFAAkF;AAClF,MAAa,wBAAyB,SAAQ,qBAAQ;IACpD,2EAA2E;IAC3E,MAAM,CAAU,QAAQ,CAAC,GAAa;QACpC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAC1B,qBAAqB,EACrB,GAAG,EAAE,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC,EAAW,CAAC,CACpD,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,eAAe,CAC5B,IAAa,EACb,KAAK,GAAG,KAAK,EACb,OAAO,GAAG,KAAK,EACf,IAAa;QAEb,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,MAAM,SAAS,CAAC,yBAAyB,EAAE,CAAC;QAE5C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAE3D,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAElE,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAEvE,MAAM,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAErC,OAAO;YACL,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;YACtB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAClB,IAAI;SACL,CAAC;IACJ,CAAC;IAED,2EAA2E;IAClE,KAAK,CAAC,oBAAoB;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,MAAM,SAAS,CAAC,yBAAyB,EAAE,CAAC;QAE5C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,IAAmB;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAEtD,2EAA2E;QAC3E,0CAA0C;QAC1C,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3E,CAAC;IAEO,4BAA4B;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC;QAEhD,OAAO,SAAS,YAAY,2EAAkC;YAC5D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAEO,YAAY;QAClB,OAAO,IAAoC,CAAC;IAC9C,CAAC;CACF;AA9ED,4DA8EC"}