@nest-boot/row-level-security 7.3.0 → 8.0.0-beta.0
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/decorators/policy.decorator.d.ts +4 -4
- package/dist/decorators/policy.decorator.js +25 -31
- package/dist/decorators/policy.decorator.js.map +1 -1
- package/dist/enums/policy-command.enum.js +2 -5
- package/dist/enums/policy-command.enum.js.map +1 -1
- package/dist/enums/policy-mode.enum.js +2 -5
- package/dist/enums/policy-mode.enum.js.map +1 -1
- package/dist/enums/row-level-security-role.enum.js +2 -5
- package/dist/enums/row-level-security-role.enum.js.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +11 -27
- package/dist/index.js.map +1 -1
- package/dist/interfaces/index.d.ts +4 -4
- package/dist/interfaces/index.js +3 -19
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/policy-metadata.interface.d.ts +2 -2
- package/dist/interfaces/policy-metadata.interface.js +1 -2
- package/dist/interfaces/policy-options.interface.d.ts +2 -2
- package/dist/interfaces/policy-options.interface.js +1 -2
- package/dist/interfaces/policy-sql-options.interface.d.ts +2 -2
- package/dist/interfaces/policy-sql-options.interface.js +1 -2
- package/dist/interfaces/row-level-security-migration-generator.interface.d.ts +1 -1
- package/dist/interfaces/row-level-security-migration-generator.interface.js +1 -2
- package/dist/row-level-security-driver.d.ts +4 -3
- package/dist/row-level-security-driver.js +8 -19
- package/dist/row-level-security-driver.js.map +1 -1
- package/dist/row-level-security-migration-generator.d.ts +1 -1
- package/dist/row-level-security-migration-generator.js +40 -41
- package/dist/row-level-security-migration-generator.js.map +1 -1
- package/dist/row-level-security-migration.d.ts +1 -1
- package/dist/row-level-security-migration.js +9 -13
- package/dist/row-level-security-migration.js.map +1 -1
- package/dist/row-level-security-migrator.d.ts +2 -2
- package/dist/row-level-security-migrator.js +9 -13
- package/dist/row-level-security-migrator.js.map +1 -1
- package/dist/row-level-security.d.ts +1 -1
- package/dist/row-level-security.js +19 -23
- package/dist/row-level-security.js.map +1 -1
- package/dist/utils/assert-identifier.js +1 -4
- package/dist/utils/assert-identifier.js.map +1 -1
- package/dist/utils/assert-snake-case.js +1 -4
- package/dist/utils/assert-snake-case.js.map +1 -1
- package/dist/utils/create-policy-bootstrap-sql-statements.js +1 -4
- package/dist/utils/create-policy-bootstrap-sql-statements.js.map +1 -1
- package/dist/utils/create-policy-down-sql.d.ts +1 -1
- package/dist/utils/create-policy-down-sql.js +5 -8
- package/dist/utils/create-policy-down-sql.js.map +1 -1
- package/dist/utils/create-policy-privilege-down-sql-statements.d.ts +1 -1
- package/dist/utils/create-policy-privilege-down-sql-statements.js +19 -22
- package/dist/utils/create-policy-privilege-down-sql-statements.js.map +1 -1
- package/dist/utils/create-policy-role-sql-statements.js +8 -13
- package/dist/utils/create-policy-role-sql-statements.js.map +1 -1
- package/dist/utils/create-policy-up-sql-statements.d.ts +1 -1
- package/dist/utils/create-policy-up-sql-statements.js +26 -29
- package/dist/utils/create-policy-up-sql-statements.js.map +1 -1
- package/dist/utils/create-row-level-security-transaction-setup.js +15 -18
- package/dist/utils/create-row-level-security-transaction-setup.js.map +1 -1
- package/dist/utils/escape-sql-literal.js +1 -4
- package/dist/utils/escape-sql-literal.js.map +1 -1
- package/dist/utils/index.d.ts +12 -12
- package/dist/utils/index.js +11 -27
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/is-postgres-keyword-requiring-quote.js +1 -4
- package/dist/utils/is-postgres-keyword-requiring-quote.js.map +1 -1
- package/dist/utils/normalize-postgres-type-alias.util.js +1 -4
- package/dist/utils/normalize-postgres-type-alias.util.js.map +1 -1
- package/dist/utils/quote-identifier.js +3 -6
- package/dist/utils/quote-identifier.js.map +1 -1
- package/dist/utils/quote-qualified-identifier.js +3 -6
- package/dist/utils/quote-qualified-identifier.js.map +1 -1
- package/dist/utils/row-level-security-context-builder.d.ts +1 -1
- package/dist/utils/row-level-security-context-builder.js +7 -13
- package/dist/utils/row-level-security-context-builder.js.map +1 -1
- package/dist/utils/row-level-security-context-builder.types.js +1 -2
- package/package.json +31 -31
- package/dist/decorators/policy.decorator.spec.d.ts +0 -1
- package/dist/decorators/policy.decorator.spec.js +0 -550
- package/dist/decorators/policy.decorator.spec.js.map +0 -1
- package/dist/index.spec.d.ts +0 -1
- package/dist/index.spec.js +0 -64
- package/dist/index.spec.js.map +0 -1
- package/dist/row-level-security-driver.spec.d.ts +0 -1
- package/dist/row-level-security-driver.spec.js +0 -267
- package/dist/row-level-security-driver.spec.js.map +0 -1
- package/dist/row-level-security-migration-generator.spec.d.ts +0 -1
- package/dist/row-level-security-migration-generator.spec.js +0 -1135
- package/dist/row-level-security-migration-generator.spec.js.map +0 -1
- package/dist/row-level-security-migration.spec.d.ts +0 -1
- package/dist/row-level-security-migration.spec.js +0 -32
- package/dist/row-level-security-migration.spec.js.map +0 -1
- package/dist/row-level-security.spec.d.ts +0 -1
- package/dist/row-level-security.spec.js +0 -52
- package/dist/row-level-security.spec.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/dist/utils/normalize-postgres-type-alias.spec.d.ts +0 -1
- package/dist/utils/normalize-postgres-type-alias.spec.js +0 -28
- package/dist/utils/normalize-postgres-type-alias.spec.js.map +0 -1
- package/dist/utils/policy-migration-sql.spec.d.ts +0 -1
- package/dist/utils/policy-migration-sql.spec.js +0 -273
- package/dist/utils/policy-migration-sql.spec.js.map +0 -1
- package/dist/utils/row-level-security-context-builder.spec.d.ts +0 -1
- package/dist/utils/row-level-security-context-builder.spec.js +0 -40
- package/dist/utils/row-level-security-context-builder.spec.js.map +0 -1
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const create_policy_role_sql_statements_1 = require("./utils/create-policy-role-sql-statements");
|
|
14
|
-
const create_policy_up_sql_statements_1 = require("./utils/create-policy-up-sql-statements");
|
|
15
|
-
const normalize_postgres_type_alias_util_1 = require("./utils/normalize-postgres-type-alias.util");
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { TSMigrationGenerator } from "@mikro-orm/migrations";
|
|
3
|
+
import { parse } from "pgsql-ast-parser";
|
|
4
|
+
import { getPolicyDefinitions } from "./decorators/policy.decorator.js";
|
|
5
|
+
import { PolicyCommand } from "./enums/policy-command.enum.js";
|
|
6
|
+
import { PolicyMode } from "./enums/policy-mode.enum.js";
|
|
7
|
+
import { createPolicyBootstrapSqlStatements } from "./utils/create-policy-bootstrap-sql-statements.js";
|
|
8
|
+
import { createPolicyDownSql } from "./utils/create-policy-down-sql.js";
|
|
9
|
+
import { createPolicyPrivilegeDownSqlStatements } from "./utils/create-policy-privilege-down-sql-statements.js";
|
|
10
|
+
import { createPolicyRoleDownSqlStatements, createPolicyRoleUpSqlStatements, getPolicyRoleNames, } from "./utils/create-policy-role-sql-statements.js";
|
|
11
|
+
import { createPolicyUpSqlStatements } from "./utils/create-policy-up-sql-statements.js";
|
|
12
|
+
import { normalizePostgresTypeAlias } from "./utils/normalize-postgres-type-alias.util.js";
|
|
16
13
|
const POSTGRES_IDENTIFIER_MAX_LENGTH = 63;
|
|
17
14
|
const POLICY_IDENTIFIER_TYPE = "policy";
|
|
18
15
|
/** MikroORM TypeScript migration generator that injects generated RLS SQL. */
|
|
19
|
-
class RowLevelSecurityMigrationGenerator extends
|
|
16
|
+
export class RowLevelSecurityMigrationGenerator extends TSMigrationGenerator {
|
|
17
|
+
existingPolicyDefinitions;
|
|
18
|
+
existingPolicyRoleDefinitions;
|
|
19
|
+
currentPolicyDefinitions;
|
|
20
20
|
async generate(diff, path, name) {
|
|
21
21
|
return await this.withPolicyDefinitions(diff, () => super.generate(diff, path, name));
|
|
22
22
|
}
|
|
@@ -61,28 +61,28 @@ class RowLevelSecurityMigrationGenerator extends migrations_1.TSMigrationGenerat
|
|
|
61
61
|
}
|
|
62
62
|
const policyDiff = {
|
|
63
63
|
up: [
|
|
64
|
-
...removed.map((definition) =>
|
|
64
|
+
...removed.map((definition) => createPolicyDownSql(definition)),
|
|
65
65
|
...diff.up,
|
|
66
|
-
...(added.length > 0 ?
|
|
66
|
+
...(added.length > 0 ? createPolicyBootstrapSqlStatements() : []),
|
|
67
67
|
...(added.length > 0
|
|
68
|
-
?
|
|
68
|
+
? createPolicyRoleUpSqlStatements(getDefinitionRoles(added))
|
|
69
69
|
: []),
|
|
70
70
|
...getDefinitionBootstrapSql(added),
|
|
71
|
-
...added.flatMap((definition) =>
|
|
71
|
+
...added.flatMap((definition) => createPolicyUpSqlStatements(definition)),
|
|
72
72
|
],
|
|
73
73
|
down: [
|
|
74
|
-
...added.map((definition) =>
|
|
75
|
-
...added.flatMap((definition) =>
|
|
74
|
+
...added.map((definition) => createPolicyDownSql(definition)),
|
|
75
|
+
...added.flatMap((definition) => createPolicyPrivilegeDownSqlStatements(definition, preservedDefinitions)),
|
|
76
76
|
...(revocableRoleNames.length > 0
|
|
77
|
-
?
|
|
77
|
+
? createPolicyRoleDownSqlStatements(revocableRoleNames)
|
|
78
78
|
: []),
|
|
79
79
|
...diff.down,
|
|
80
|
-
...(removed.length > 0 ?
|
|
80
|
+
...(removed.length > 0 ? createPolicyBootstrapSqlStatements() : []),
|
|
81
81
|
...(removed.length > 0
|
|
82
|
-
?
|
|
82
|
+
? createPolicyRoleUpSqlStatements(getDefinitionRoles(removed))
|
|
83
83
|
: []),
|
|
84
84
|
...getDefinitionBootstrapSql(removed),
|
|
85
|
-
...removed.flatMap((definition) =>
|
|
85
|
+
...removed.flatMap((definition) => createPolicyUpSqlStatements(definition)),
|
|
86
86
|
],
|
|
87
87
|
};
|
|
88
88
|
const migrationFile = super.generateMigrationFile(className, policyDiff);
|
|
@@ -122,7 +122,7 @@ class RowLevelSecurityMigrationGenerator extends migrations_1.TSMigrationGenerat
|
|
|
122
122
|
tableName,
|
|
123
123
|
properties: entityMetadata.properties,
|
|
124
124
|
};
|
|
125
|
-
return
|
|
125
|
+
return getPolicyDefinitions(entityMetadata.class, policyEntityMetadata).map((policy) => {
|
|
126
126
|
const policyName = normalizePostgresPolicyName(policy.name, hashAlgorithm);
|
|
127
127
|
return {
|
|
128
128
|
entityName,
|
|
@@ -191,7 +191,6 @@ class RowLevelSecurityMigrationGenerator extends migrations_1.TSMigrationGenerat
|
|
|
191
191
|
return sortPolicyDefinitions(rows.map(createPolicyDefinitionFromPolicyRow));
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
|
-
exports.RowLevelSecurityMigrationGenerator = RowLevelSecurityMigrationGenerator;
|
|
195
194
|
function convertMigrationBaseClass(migrationFile) {
|
|
196
195
|
const migrationImport = "import { Migration } from '@mikro-orm/migrations';";
|
|
197
196
|
const migrationBaseClass = "extends Migration";
|
|
@@ -215,7 +214,7 @@ function getDefinitionRoleNames(definitions) {
|
|
|
215
214
|
if (definitions.length === 0) {
|
|
216
215
|
return [];
|
|
217
216
|
}
|
|
218
|
-
return
|
|
217
|
+
return getPolicyRoleNames(getDefinitionRoles(definitions));
|
|
219
218
|
}
|
|
220
219
|
function getRevocableDefinitionRoleNames(addedDefinitions, preservedDefinitions) {
|
|
221
220
|
const preservedRoleNames = new Set(getDefinitionRoleNames(preservedDefinitions));
|
|
@@ -268,10 +267,10 @@ function hasSamePolicyDefinitionContent(left, right) {
|
|
|
268
267
|
normalizePolicyRoles(right.roles).join("\n"));
|
|
269
268
|
}
|
|
270
269
|
function normalizePolicyMode(mode) {
|
|
271
|
-
return mode ??
|
|
270
|
+
return mode ?? PolicyMode.PERMISSIVE;
|
|
272
271
|
}
|
|
273
272
|
function normalizePolicyCommand(command) {
|
|
274
|
-
return command ??
|
|
273
|
+
return command ?? PolicyCommand.ALL;
|
|
275
274
|
}
|
|
276
275
|
function hasSamePolicyExpression(left, right) {
|
|
277
276
|
const normalizedLeft = normalizePolicyExpression(left);
|
|
@@ -313,7 +312,7 @@ function parsePolicyExpressionStatement(expression) {
|
|
|
313
312
|
try {
|
|
314
313
|
return {
|
|
315
314
|
sql,
|
|
316
|
-
statement:
|
|
315
|
+
statement: parse(sql, { locationTracking: true })[0],
|
|
317
316
|
};
|
|
318
317
|
}
|
|
319
318
|
catch {
|
|
@@ -323,7 +322,7 @@ function parsePolicyExpressionStatement(expression) {
|
|
|
323
322
|
const parserCompatibleSql = `select 1 where ${parserCompatibleExpression}`;
|
|
324
323
|
return {
|
|
325
324
|
sql: parserCompatibleSql,
|
|
326
|
-
statement:
|
|
325
|
+
statement: parse(parserCompatibleSql, {
|
|
327
326
|
locationTracking: true,
|
|
328
327
|
})[0],
|
|
329
328
|
};
|
|
@@ -543,7 +542,7 @@ function isPolicyExpressionAstNode(value, type) {
|
|
|
543
542
|
value.type === type);
|
|
544
543
|
}
|
|
545
544
|
function normalizePolicyExpressionDataTypeName(typeName) {
|
|
546
|
-
return
|
|
545
|
+
return normalizePostgresTypeAlias(typeName.toLowerCase().replace(/\s+/g, " "));
|
|
547
546
|
}
|
|
548
547
|
function normalizePolicyExpressionOperator(operator) {
|
|
549
548
|
return operator === "!=" ? "<>" : operator;
|
|
@@ -581,7 +580,7 @@ function createPolicyNameAliases(policyName, normalizedName) {
|
|
|
581
580
|
return [...aliases];
|
|
582
581
|
}
|
|
583
582
|
function hashValue(value, length, hashAlgorithm) {
|
|
584
|
-
return
|
|
583
|
+
return createHash(hashAlgorithm)
|
|
585
584
|
.update(value)
|
|
586
585
|
.digest("hex")
|
|
587
586
|
.substring(0, length);
|
|
@@ -592,7 +591,7 @@ function createPolicyDefinitionFromPolicyRow(row) {
|
|
|
592
591
|
schemaName: row.schema_name,
|
|
593
592
|
tableName: row.table_name,
|
|
594
593
|
policyName: row.policy_name,
|
|
595
|
-
mode: row.permissive === false ?
|
|
594
|
+
mode: row.permissive === false ? PolicyMode.RESTRICTIVE : PolicyMode.PERMISSIVE,
|
|
596
595
|
command: getPolicyCommandFromDatabase(row.command),
|
|
597
596
|
using: row.qual ?? undefined,
|
|
598
597
|
withCheck: row.with_check ?? undefined,
|
|
@@ -614,18 +613,18 @@ function normalizePolicyRowRoles(roles) {
|
|
|
614
613
|
}
|
|
615
614
|
function getPolicyCommandFromDatabase(command) {
|
|
616
615
|
if (command === "r") {
|
|
617
|
-
return
|
|
616
|
+
return PolicyCommand.SELECT;
|
|
618
617
|
}
|
|
619
618
|
if (command === "a") {
|
|
620
|
-
return
|
|
619
|
+
return PolicyCommand.INSERT;
|
|
621
620
|
}
|
|
622
621
|
if (command === "w") {
|
|
623
|
-
return
|
|
622
|
+
return PolicyCommand.UPDATE;
|
|
624
623
|
}
|
|
625
624
|
if (command === "d") {
|
|
626
|
-
return
|
|
625
|
+
return PolicyCommand.DELETE;
|
|
627
626
|
}
|
|
628
|
-
return
|
|
627
|
+
return PolicyCommand.ALL;
|
|
629
628
|
}
|
|
630
629
|
function isCreateTableStatement(sql, definition) {
|
|
631
630
|
return new RegExp(`create\\s+table\\s+(?:if\\s+not\\s+exists\\s+)?${createTableReferencePattern(definition)}(?:\\s|\\()`, "i").test(sql);
|
|
@@ -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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
-
import type { PolicySqlOptions } from "./interfaces/policy-sql-options.interface";
|
|
2
|
+
import type { PolicySqlOptions } from "./interfaces/policy-sql-options.interface.js";
|
|
3
3
|
/** Base MikroORM migration with convenience helpers for row-level security SQL. */
|
|
4
4
|
export declare abstract class RowLevelSecurityMigration extends Migration {
|
|
5
5
|
/** Adds shared RLS bootstrap SQL. Currently no-op; roles are managed outside migrations. */
|
|
@@ -1,30 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const create_policy_bootstrap_sql_statements_1 = require("./utils/create-policy-bootstrap-sql-statements");
|
|
6
|
-
const create_policy_role_sql_statements_1 = require("./utils/create-policy-role-sql-statements");
|
|
7
|
-
const create_policy_up_sql_statements_1 = require("./utils/create-policy-up-sql-statements");
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
import { createPolicyBootstrapSqlStatements } from "./utils/create-policy-bootstrap-sql-statements.js";
|
|
3
|
+
import { createPolicyRoleUpSqlStatements } from "./utils/create-policy-role-sql-statements.js";
|
|
4
|
+
import { createPolicyUpSqlStatements } from "./utils/create-policy-up-sql-statements.js";
|
|
8
5
|
/** Base MikroORM migration with convenience helpers for row-level security SQL. */
|
|
9
|
-
class RowLevelSecurityMigration extends
|
|
6
|
+
export class RowLevelSecurityMigration extends Migration {
|
|
10
7
|
/** Adds shared RLS bootstrap SQL. Currently no-op; roles are managed outside migrations. */
|
|
11
8
|
addRowLevelSecurityBootstrapSql(roles = []) {
|
|
12
|
-
for (const sql of
|
|
9
|
+
for (const sql of createPolicyBootstrapSqlStatements()) {
|
|
13
10
|
this.addSql(sql);
|
|
14
11
|
}
|
|
15
|
-
for (const sql of
|
|
12
|
+
for (const sql of createPolicyRoleUpSqlStatements(roles)) {
|
|
16
13
|
this.addSql(sql);
|
|
17
14
|
}
|
|
18
15
|
}
|
|
19
16
|
/** Adds SQL that enables RLS and creates the configured policy. */
|
|
20
17
|
addPolicySql(options) {
|
|
21
|
-
for (const sql of
|
|
18
|
+
for (const sql of createPolicyRoleUpSqlStatements(options.roles)) {
|
|
22
19
|
this.addSql(sql);
|
|
23
20
|
}
|
|
24
|
-
for (const sql of
|
|
21
|
+
for (const sql of createPolicyUpSqlStatements(options)) {
|
|
25
22
|
this.addSql(sql);
|
|
26
23
|
}
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
|
-
exports.RowLevelSecurityMigration = RowLevelSecurityMigration;
|
|
30
26
|
//# sourceMappingURL=row-level-security-migration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-level-security-migration.js","sourceRoot":"","sources":["../src/row-level-security-migration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"row-level-security-migration.js","sourceRoot":"","sources":["../src/row-level-security-migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,kCAAkC,EAAE,MAAM,mDAAmD,CAAC;AACvG,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAEzF,mFAAmF;AACnF,MAAM,OAAgB,yBAA0B,SAAQ,SAAS;IAC/D,4FAA4F;IAClF,+BAA+B,CAAC,QAAkB,EAAE;QAC5D,KAAK,MAAM,GAAG,IAAI,kCAAkC,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,mEAAmE;IACzD,YAAY,CAAC,OAAyB;QAC9C,KAAK,MAAM,GAAG,IAAI,+BAA+B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -4,9 +4,9 @@ import { Migrator } from "@mikro-orm/migrations";
|
|
|
4
4
|
export declare class RowLevelSecurityMigrator extends Migrator {
|
|
5
5
|
/** Registers the RLS-aware migrator extension with a MikroORM instance. */
|
|
6
6
|
static register(orm: MikroORM): void;
|
|
7
|
-
|
|
7
|
+
create(path?: string, blank?: boolean, initial?: boolean, name?: string): Promise<MigrationResult>;
|
|
8
8
|
/** Checks whether schema or RLS policy changes require a new migration. */
|
|
9
|
-
|
|
9
|
+
checkSchema(): Promise<boolean>;
|
|
10
10
|
private hasPendingPolicyChanges;
|
|
11
11
|
private getRowLevelSecurityGenerator;
|
|
12
12
|
private getInternals;
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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");
|
|
1
|
+
import { Migrator } from "@mikro-orm/migrations";
|
|
2
|
+
import { RowLevelSecurityMigrationGenerator } from "./row-level-security-migration-generator.js";
|
|
6
3
|
/** MikroORM migrator that also creates migrations for policy-only RLS changes. */
|
|
7
|
-
class RowLevelSecurityMigrator extends
|
|
4
|
+
export class RowLevelSecurityMigrator extends Migrator {
|
|
8
5
|
/** Registers the RLS-aware migrator extension with a MikroORM instance. */
|
|
9
6
|
static register(orm) {
|
|
10
7
|
orm.config.registerExtension("@mikro-orm/migrator", () => new RowLevelSecurityMigrator(orm.em));
|
|
11
8
|
}
|
|
12
|
-
async
|
|
9
|
+
async create(path, blank = false, initial = false, name) {
|
|
13
10
|
if (initial) {
|
|
14
|
-
return await super.
|
|
11
|
+
return await super.create(path, blank, initial, name);
|
|
15
12
|
}
|
|
16
13
|
const internals = this.getInternals();
|
|
17
|
-
await internals.
|
|
14
|
+
const offline = await internals.hasSnapshot();
|
|
15
|
+
await (offline ? internals.initPaths() : internals.init());
|
|
18
16
|
const diff = await internals.getSchemaDiff(blank, initial);
|
|
19
17
|
if (diff.up.length === 0) {
|
|
20
18
|
const hasPolicyChanges = await this.hasPendingPolicyChanges(diff);
|
|
@@ -31,9 +29,8 @@ class RowLevelSecurityMigrator extends migrations_1.Migrator {
|
|
|
31
29
|
};
|
|
32
30
|
}
|
|
33
31
|
/** Checks whether schema or RLS policy changes require a new migration. */
|
|
34
|
-
async
|
|
32
|
+
async checkSchema() {
|
|
35
33
|
const internals = this.getInternals();
|
|
36
|
-
await internals.ensureMigrationsDirExists();
|
|
37
34
|
const diff = await internals.getSchemaDiff(false, false);
|
|
38
35
|
if (diff.up.length > 0) {
|
|
39
36
|
return true;
|
|
@@ -48,7 +45,7 @@ class RowLevelSecurityMigrator extends migrations_1.Migrator {
|
|
|
48
45
|
}
|
|
49
46
|
getRowLevelSecurityGenerator() {
|
|
50
47
|
const generator = this.getInternals().generator;
|
|
51
|
-
return generator instanceof
|
|
48
|
+
return generator instanceof RowLevelSecurityMigrationGenerator
|
|
52
49
|
? generator
|
|
53
50
|
: undefined;
|
|
54
51
|
}
|
|
@@ -56,5 +53,4 @@ class RowLevelSecurityMigrator extends migrations_1.Migrator {
|
|
|
56
53
|
return this;
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
|
-
exports.RowLevelSecurityMigrator = RowLevelSecurityMigrator;
|
|
60
56
|
//# sourceMappingURL=row-level-security-migrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-level-security-migrator.js","sourceRoot":"","sources":["../src/row-level-security-migrator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"row-level-security-migrator.js","sourceRoot":"","sources":["../src/row-level-security-migrator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;AAmBjG,kFAAkF;AAClF,MAAM,OAAO,wBAAyB,SAAQ,QAAQ;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,MAAM,CACnB,IAAa,EACb,KAAK,GAAG,KAAK,EACb,OAAO,GAAG,KAAK,EACf,IAAa;QAEb,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC;QAE9C,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3D,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,WAAW;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,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,kCAAkC;YAC5D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAEO,YAAY;QAClB,OAAO,IAAoC,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RowLevelSecurityContextValue, SnakeCase } from "./utils/row-level-security-context-builder.types";
|
|
1
|
+
import { RowLevelSecurityContextValue, SnakeCase } from "./utils/row-level-security-context-builder.types.js";
|
|
2
2
|
/** Request-scoped row-level security execution mode. */
|
|
3
3
|
export declare enum RowLevelSecurityMode {
|
|
4
4
|
/** Apply RLS only when a role or context value is present. */
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RowLevelSecurity = exports.RowLevelSecurityMode = void 0;
|
|
4
|
-
const request_context_1 = require("@nest-boot/request-context");
|
|
1
|
+
import { RequestContext } from "@nest-boot/request-context";
|
|
5
2
|
const ROW_LEVEL_SECURITY_CONTEXT = Symbol("ROW_LEVEL_SECURITY_CONTEXT");
|
|
6
3
|
const ROW_LEVEL_SECURITY_MODE = Symbol("ROW_LEVEL_SECURITY_MODE");
|
|
7
4
|
const ROW_LEVEL_SECURITY_ROLE = Symbol("ROW_LEVEL_SECURITY_ROLE");
|
|
8
5
|
/** Request-scoped row-level security execution mode. */
|
|
9
|
-
var RowLevelSecurityMode;
|
|
6
|
+
export var RowLevelSecurityMode;
|
|
10
7
|
(function (RowLevelSecurityMode) {
|
|
11
8
|
/** Apply RLS only when a role or context value is present. */
|
|
12
9
|
RowLevelSecurityMode["AUTO"] = "auto";
|
|
@@ -14,56 +11,55 @@ var RowLevelSecurityMode;
|
|
|
14
11
|
RowLevelSecurityMode["ENABLED"] = "enabled";
|
|
15
12
|
/** Never apply RLS, even when role or context values are present. */
|
|
16
13
|
RowLevelSecurityMode["DISABLED"] = "disabled";
|
|
17
|
-
})(RowLevelSecurityMode || (
|
|
14
|
+
})(RowLevelSecurityMode || (RowLevelSecurityMode = {}));
|
|
18
15
|
/** Request-scoped row-level security mode, role, and context helpers. */
|
|
19
|
-
class RowLevelSecurity {
|
|
16
|
+
export class RowLevelSecurity {
|
|
20
17
|
/** Stores the row-level security mode for the current request context. */
|
|
21
18
|
static setMode(mode) {
|
|
22
|
-
|
|
19
|
+
RequestContext.set(ROW_LEVEL_SECURITY_MODE, mode);
|
|
23
20
|
}
|
|
24
21
|
/** Reads the request-scoped row-level security mode. */
|
|
25
22
|
static getMode() {
|
|
26
|
-
return
|
|
27
|
-
? (
|
|
23
|
+
return RequestContext.isActive()
|
|
24
|
+
? (RequestContext.get(ROW_LEVEL_SECURITY_MODE) ??
|
|
28
25
|
RowLevelSecurityMode.AUTO)
|
|
29
26
|
: RowLevelSecurityMode.AUTO;
|
|
30
27
|
}
|
|
31
28
|
/** Stores the database role that should be applied to the next RLS query. */
|
|
32
29
|
static setRole(role) {
|
|
33
|
-
|
|
30
|
+
RequestContext.set(ROW_LEVEL_SECURITY_ROLE, role);
|
|
34
31
|
}
|
|
35
32
|
/** Reads the request-scoped database role, if one is active. */
|
|
36
33
|
static getRole() {
|
|
37
|
-
return
|
|
38
|
-
?
|
|
34
|
+
return RequestContext.isActive()
|
|
35
|
+
? RequestContext.get(ROW_LEVEL_SECURITY_ROLE)
|
|
39
36
|
: undefined;
|
|
40
37
|
}
|
|
41
38
|
/** Stores a context value that will be converted to a PostgreSQL setting. */
|
|
42
39
|
static setContext(key, value) {
|
|
43
|
-
const context =
|
|
40
|
+
const context = RequestContext.getOrSet(ROW_LEVEL_SECURITY_CONTEXT, new Map());
|
|
44
41
|
context.set(key, value);
|
|
45
42
|
}
|
|
46
43
|
/** Reads a request-scoped context value by key. */
|
|
47
44
|
static getContext(key) {
|
|
48
|
-
return
|
|
49
|
-
?
|
|
45
|
+
return RequestContext.isActive()
|
|
46
|
+
? RequestContext.get(ROW_LEVEL_SECURITY_CONTEXT)?.get(key)
|
|
50
47
|
: undefined;
|
|
51
48
|
}
|
|
52
49
|
/** Returns all request-scoped context entries for RLS transaction setup. */
|
|
53
50
|
static entries() {
|
|
54
|
-
return
|
|
55
|
-
? Array.from(
|
|
51
|
+
return RequestContext.isActive()
|
|
52
|
+
? Array.from(RequestContext.get(ROW_LEVEL_SECURITY_CONTEXT) ?? [])
|
|
56
53
|
: [];
|
|
57
54
|
}
|
|
58
55
|
/** Clears request-scoped RLS mode, role, and context values. */
|
|
59
56
|
static clear() {
|
|
60
|
-
if (!
|
|
57
|
+
if (!RequestContext.isActive()) {
|
|
61
58
|
return;
|
|
62
59
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
RequestContext.set(ROW_LEVEL_SECURITY_MODE, RowLevelSecurityMode.AUTO);
|
|
61
|
+
RequestContext.set(ROW_LEVEL_SECURITY_ROLE, undefined);
|
|
62
|
+
RequestContext.set(ROW_LEVEL_SECURITY_CONTEXT, new Map());
|
|
66
63
|
}
|
|
67
64
|
}
|
|
68
|
-
exports.RowLevelSecurity = RowLevelSecurity;
|
|
69
65
|
//# sourceMappingURL=row-level-security.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-level-security.js","sourceRoot":"","sources":["../src/row-level-security.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"row-level-security.js","sourceRoot":"","sources":["../src/row-level-security.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAS5D,MAAM,0BAA0B,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AACxE,MAAM,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAClE,MAAM,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAElE,wDAAwD;AACxD,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC9B,8DAA8D;IAC9D,qCAAa,CAAA;IACb,wDAAwD;IACxD,2CAAmB,CAAA;IACnB,qEAAqE;IACrE,6CAAqB,CAAA;AACvB,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B;AAED,yEAAyE;AACzE,MAAM,OAAO,gBAAgB;IAC3B,0EAA0E;IAC1E,MAAM,CAAC,OAAO,CAAC,IAA0B;QACvC,cAAc,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,wDAAwD;IACxD,MAAM,CAAC,OAAO;QACZ,OAAO,cAAc,CAAC,QAAQ,EAAE;YAC9B,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAuB,uBAAuB,CAAC;gBAChE,oBAAoB,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,6EAA6E;IAC7E,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,cAAc,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,gEAAgE;IAChE,MAAM,CAAC,OAAO;QACZ,OAAO,cAAc,CAAC,QAAQ,EAAE;YAC9B,CAAC,CAAC,cAAc,CAAC,GAAG,CAAS,uBAAuB,CAAC;YACrD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,MAAM,CAAC,UAAU,CACf,GAAiB,EACjB,KAAmC;QAEnC,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CACrC,0BAA0B,EAC1B,IAAI,GAAG,EAAE,CACV,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,mDAAmD;IACnD,MAAM,CAAC,UAAU,CACf,GAAiB;QAEjB,OAAO,cAAc,CAAC,QAAQ,EAAE;YAC9B,CAAC,CAAC,cAAc,CAAC,GAAG,CAChB,0BAA0B,CAC3B,EAAE,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,4EAA4E;IAC5E,MAAM,CAAC,OAAO;QACZ,OAAO,cAAc,CAAC,QAAQ,EAAE;YAC9B,CAAC,CAAC,KAAK,CAAC,IAAI,CACR,cAAc,CAAC,GAAG,CAChB,0BAA0B,CAC3B,IAAI,EAAE,CACR;YACH,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED,gEAAgE;IAChE,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,cAAc,CAAC,GAAG,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACvE,cAAc,CAAC,GAAG,CAAqB,uBAAuB,EAAE,SAAS,CAAC,CAAC;QAC3E,cAAc,CAAC,GAAG,CAChB,0BAA0B,EAC1B,IAAI,GAAG,EAAE,CACV,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assertIdentifier = assertIdentifier;
|
|
4
1
|
/** Asserts that a value is a safe unquoted PostgreSQL identifier. */
|
|
5
|
-
function assertIdentifier(identifier) {
|
|
2
|
+
export function assertIdentifier(identifier) {
|
|
6
3
|
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(identifier)) {
|
|
7
4
|
throw new Error(`Invalid SQL identifier: ${identifier}`);
|
|
8
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-identifier.js","sourceRoot":"","sources":["../../src/utils/assert-identifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assert-identifier.js","sourceRoot":"","sources":["../../src/utils/assert-identifier.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assertSnakeCase = assertSnakeCase;
|
|
4
1
|
/** Asserts that a value is snake_case for use in roles or context keys. */
|
|
5
|
-
function assertSnakeCase(value, label) {
|
|
2
|
+
export function assertSnakeCase(value, label) {
|
|
6
3
|
if (!/^[a-z]+(_[a-z]+)*$/.test(value)) {
|
|
7
4
|
throw new Error(`${label} must be snake_case: ${value}`);
|
|
8
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-snake-case.js","sourceRoot":"","sources":["../../src/utils/assert-snake-case.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assert-snake-case.js","sourceRoot":"","sources":["../../src/utils/assert-snake-case.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAa;IAC1D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,wBAAwB,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createPolicyBootstrapSqlStatements = createPolicyBootstrapSqlStatements;
|
|
4
1
|
/** Creates SQL statements for shared RLS bootstrap infrastructure. */
|
|
5
|
-
function createPolicyBootstrapSqlStatements() {
|
|
2
|
+
export function createPolicyBootstrapSqlStatements() {
|
|
6
3
|
return [];
|
|
7
4
|
}
|
|
8
5
|
//# sourceMappingURL=create-policy-bootstrap-sql-statements.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-policy-bootstrap-sql-statements.js","sourceRoot":"","sources":["../../src/utils/create-policy-bootstrap-sql-statements.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-policy-bootstrap-sql-statements.js","sourceRoot":"","sources":["../../src/utils/create-policy-bootstrap-sql-statements.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,UAAU,kCAAkC;IAChD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { PolicySqlOptions } from "../interfaces/policy-sql-options.interface";
|
|
1
|
+
import type { PolicySqlOptions } from "../interfaces/policy-sql-options.interface.js";
|
|
2
2
|
/** Creates guarded SQL for dropping a policy and disabling RLS when no policies remain. */
|
|
3
3
|
export declare function createPolicyDownSql(options: PolicySqlOptions): string;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.createPolicyDownSql = createPolicyDownSql;
|
|
4
|
-
const assert_identifier_1 = require("./assert-identifier");
|
|
5
|
-
const quote_qualified_identifier_1 = require("./quote-qualified-identifier");
|
|
1
|
+
import { assertIdentifier } from "./assert-identifier.js";
|
|
2
|
+
import { quoteQualifiedIdentifier } from "./quote-qualified-identifier.js";
|
|
6
3
|
/** Creates guarded SQL for dropping a policy and disabling RLS when no policies remain. */
|
|
7
|
-
function createPolicyDownSql(options) {
|
|
8
|
-
const tableIdentifier =
|
|
9
|
-
const policyName =
|
|
4
|
+
export function createPolicyDownSql(options) {
|
|
5
|
+
const tableIdentifier = quoteQualifiedIdentifier(options.schemaName, options.tableName);
|
|
6
|
+
const policyName = assertIdentifier(options.policyName);
|
|
10
7
|
return /* SQL */ `
|
|
11
8
|
do $$
|
|
12
9
|
declare
|