@nest-boot/row-level-security 7.4.7 → 8.0.0-beta.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/decorators/policy.decorator.d.ts +4 -14
- package/dist/decorators/policy.decorator.js +25 -41
- package/dist/decorators/policy.decorator.js.map +1 -1
- package/dist/enums/policy-command.enum.d.ts +0 -6
- package/dist/enums/policy-command.enum.js +2 -11
- package/dist/enums/policy-command.enum.js.map +1 -1
- package/dist/enums/policy-mode.enum.d.ts +0 -3
- package/dist/enums/policy-mode.enum.js +2 -8
- package/dist/enums/policy-mode.enum.js.map +1 -1
- package/dist/enums/row-level-security-role.enum.d.ts +0 -3
- package/dist/enums/row-level-security-role.enum.js +2 -8
- 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 -30
- package/dist/interfaces/policy-metadata.interface.js +1 -2
- package/dist/interfaces/policy-options.interface.d.ts +2 -11
- package/dist/interfaces/policy-options.interface.js +1 -2
- package/dist/interfaces/policy-sql-options.interface.d.ts +2 -11
- package/dist/interfaces/policy-sql-options.interface.js +1 -2
- package/dist/interfaces/row-level-security-migration-generator.interface.d.ts +2 -6
- package/dist/interfaces/row-level-security-migration-generator.interface.js +1 -2
- package/dist/row-level-security-driver.d.ts +5 -7
- package/dist/row-level-security-driver.js +12 -24
- package/dist/row-level-security-driver.js.map +1 -1
- package/dist/row-level-security-migration-generator.d.ts +1 -3
- package/dist/row-level-security-migration-generator.js +44 -45
- package/dist/row-level-security-migration-generator.js.map +1 -1
- package/dist/row-level-security-migration.d.ts +1 -4
- package/dist/row-level-security-migration.js +9 -16
- package/dist/row-level-security-migration.js.map +1 -1
- package/dist/row-level-security-migrator.d.ts +5 -7
- package/dist/row-level-security-migrator.js +11 -19
- package/dist/row-level-security-migrator.js.map +1 -1
- package/dist/row-level-security.d.ts +1 -14
- package/dist/row-level-security.js +19 -36
- package/dist/row-level-security.js.map +1 -1
- package/dist/utils/assert-identifier.d.ts +0 -1
- package/dist/utils/assert-identifier.js +1 -5
- package/dist/utils/assert-identifier.js.map +1 -1
- package/dist/utils/assert-snake-case.d.ts +0 -1
- package/dist/utils/assert-snake-case.js +1 -5
- package/dist/utils/assert-snake-case.js.map +1 -1
- package/dist/utils/create-policy-bootstrap-sql-statements.d.ts +0 -1
- package/dist/utils/create-policy-bootstrap-sql-statements.js +1 -5
- package/dist/utils/create-policy-bootstrap-sql-statements.js.map +1 -1
- package/dist/utils/create-policy-down-sql.d.ts +1 -2
- package/dist/utils/create-policy-down-sql.js +6 -10
- package/dist/utils/create-policy-down-sql.js.map +1 -1
- package/dist/utils/create-policy-privilege-down-sql-statements.d.ts +1 -7
- package/dist/utils/create-policy-privilege-down-sql-statements.js +20 -29
- package/dist/utils/create-policy-privilege-down-sql-statements.js.map +1 -1
- package/dist/utils/create-policy-role-sql-statements.d.ts +0 -3
- package/dist/utils/create-policy-role-sql-statements.js +8 -17
- package/dist/utils/create-policy-role-sql-statements.js.map +1 -1
- package/dist/utils/create-policy-up-sql-statements.d.ts +1 -2
- package/dist/utils/create-policy-up-sql-statements.js +27 -31
- package/dist/utils/create-policy-up-sql-statements.js.map +1 -1
- package/dist/utils/create-row-level-security-transaction-setup.d.ts +0 -9
- package/dist/utils/create-row-level-security-transaction-setup.js +16 -20
- package/dist/utils/create-row-level-security-transaction-setup.js.map +1 -1
- package/dist/utils/escape-sql-literal.d.ts +0 -1
- package/dist/utils/escape-sql-literal.js +1 -5
- 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 -6
- 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.d.ts +0 -1
- package/dist/utils/quote-identifier.js +3 -7
- package/dist/utils/quote-identifier.js.map +1 -1
- package/dist/utils/quote-qualified-identifier.d.ts +0 -1
- package/dist/utils/quote-qualified-identifier.js +3 -7
- package/dist/utils/quote-qualified-identifier.js.map +1 -1
- package/dist/utils/row-level-security-context-builder.d.ts +1 -5
- package/dist/utils/row-level-security-context-builder.js +9 -19
- package/dist/utils/row-level-security-context-builder.js.map +1 -1
- package/dist/utils/row-level-security-context-builder.types.d.ts +0 -5
- package/dist/utils/row-level-security-context-builder.types.js +1 -2
- package/package.json +44 -32
- 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,18 +1,8 @@
|
|
|
1
|
-
import type { PolicyEntityMetadata, PolicyMetadata, PolicyMetadataEntry } from "../interfaces/policy-metadata.interface";
|
|
2
|
-
import type { PolicyOptions } from "../interfaces/policy-options.interface";
|
|
3
|
-
export type { PolicyEntityMetadata, PolicyEntityPropertyMetadata, PolicyEntityTargetMetadata, PolicyMetadata, PolicyMetadataEntry, PolicyMetadataFactory, } from "../interfaces/policy-metadata.interface";
|
|
4
|
-
export type { PolicyOptions } from "../interfaces/policy-options.interface";
|
|
5
|
-
/**
|
|
6
|
-
* Attaches PostgreSQL row-level security policy metadata to an entity class.
|
|
7
|
-
*
|
|
8
|
-
* When `property` and `context` are provided, the decorator derives default
|
|
9
|
-
* `USING` and `WITH CHECK` expressions that compare the mapped database column
|
|
10
|
-
* against a transaction-local PostgreSQL setting read via `current_setting`.
|
|
11
|
-
*/
|
|
1
|
+
import type { PolicyEntityMetadata, PolicyMetadata, PolicyMetadataEntry } from "../interfaces/policy-metadata.interface.js";
|
|
2
|
+
import type { PolicyOptions } from "../interfaces/policy-options.interface.js";
|
|
3
|
+
export type { PolicyEntityMetadata, PolicyEntityPropertyMetadata, PolicyEntityTargetMetadata, PolicyMetadata, PolicyMetadataEntry, PolicyMetadataFactory, } from "../interfaces/policy-metadata.interface.js";
|
|
4
|
+
export type { PolicyOptions } from "../interfaces/policy-options.interface.js";
|
|
12
5
|
export declare function Policy(options: PolicyOptions): ClassDecorator;
|
|
13
|
-
/** Returns static policy metadata entries already attached to a class. */
|
|
14
6
|
export declare function getPolicyMetadata(target: object): PolicyMetadata[];
|
|
15
|
-
/** Resolves all policy metadata entries for a class using concrete entity metadata. */
|
|
16
7
|
export declare function getPolicyDefinitions(target: object, entityMetadata: PolicyEntityMetadata): PolicyMetadata[];
|
|
17
|
-
/** Adds a raw policy metadata entry to a class. */
|
|
18
8
|
export declare function addPolicyMetadata(target: object, metadata: PolicyMetadataEntry): void;
|
|
@@ -1,27 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const policy_mode_enum_1 = require("../enums/policy-mode.enum");
|
|
9
|
-
const assert_identifier_1 = require("../utils/assert-identifier");
|
|
10
|
-
const escape_sql_literal_1 = require("../utils/escape-sql-literal");
|
|
11
|
-
const is_postgres_keyword_requiring_quote_1 = require("../utils/is-postgres-keyword-requiring-quote");
|
|
12
|
-
const normalize_postgres_type_alias_util_1 = require("../utils/normalize-postgres-type-alias.util");
|
|
13
|
-
const quote_identifier_1 = require("../utils/quote-identifier");
|
|
1
|
+
import { PolicyCommand } from "../enums/policy-command.enum.js";
|
|
2
|
+
import { PolicyMode } from "../enums/policy-mode.enum.js";
|
|
3
|
+
import { assertIdentifier } from "../utils/assert-identifier.js";
|
|
4
|
+
import { escapeSqlLiteral } from "../utils/escape-sql-literal.js";
|
|
5
|
+
import { isPostgresKeywordRequiringQuote } from "../utils/is-postgres-keyword-requiring-quote.js";
|
|
6
|
+
import { normalizePostgresTypeAlias } from "../utils/normalize-postgres-type-alias.util.js";
|
|
7
|
+
import { quoteIdentifier } from "../utils/quote-identifier.js";
|
|
14
8
|
const policyMetadata = new WeakMap();
|
|
15
|
-
|
|
16
|
-
* Attaches PostgreSQL row-level security policy metadata to an entity class.
|
|
17
|
-
*
|
|
18
|
-
* When `property` and `context` are provided, the decorator derives default
|
|
19
|
-
* `USING` and `WITH CHECK` expressions that compare the mapped database column
|
|
20
|
-
* against a transaction-local PostgreSQL setting read via `current_setting`.
|
|
21
|
-
*/
|
|
22
|
-
function Policy(options) {
|
|
9
|
+
export function Policy(options) {
|
|
23
10
|
const name = normalizeOption(options.name, "Policy name is required");
|
|
24
|
-
const command = options.command ??
|
|
11
|
+
const command = options.command ?? PolicyCommand.ALL;
|
|
25
12
|
const property = normalizeOption(options.property, "Policy property is required");
|
|
26
13
|
const context = normalizeOption(options.context, "Policy context is required");
|
|
27
14
|
const using = normalizeExpression(options.using);
|
|
@@ -33,7 +20,7 @@ function Policy(options) {
|
|
|
33
20
|
return (target) => {
|
|
34
21
|
const roles = options.roles ?? [];
|
|
35
22
|
const metadata = {
|
|
36
|
-
mode: options.mode ??
|
|
23
|
+
mode: options.mode ?? PolicyMode.PERMISSIVE,
|
|
37
24
|
command,
|
|
38
25
|
roles,
|
|
39
26
|
};
|
|
@@ -57,16 +44,13 @@ function Policy(options) {
|
|
|
57
44
|
});
|
|
58
45
|
};
|
|
59
46
|
}
|
|
60
|
-
|
|
61
|
-
function getPolicyMetadata(target) {
|
|
47
|
+
export function getPolicyMetadata(target) {
|
|
62
48
|
return getPolicyMetadataEntries(target).filter(isPolicyMetadata);
|
|
63
49
|
}
|
|
64
|
-
|
|
65
|
-
function getPolicyDefinitions(target, entityMetadata) {
|
|
50
|
+
export function getPolicyDefinitions(target, entityMetadata) {
|
|
66
51
|
return getPolicyMetadataEntries(target).map((metadata) => typeof metadata === "function" ? metadata(entityMetadata) : metadata);
|
|
67
52
|
}
|
|
68
|
-
|
|
69
|
-
function addPolicyMetadata(target, metadata) {
|
|
53
|
+
export function addPolicyMetadata(target, metadata) {
|
|
70
54
|
policyMetadata.set(target, [...getPolicyMetadataEntries(target), metadata]);
|
|
71
55
|
}
|
|
72
56
|
function normalizeExpression(expression) {
|
|
@@ -93,12 +77,12 @@ function assertPolicyContextOptions(property, context) {
|
|
|
93
77
|
}
|
|
94
78
|
function assertPolicyPredicates(command, using, withCheck, hasGeneratedExpression) {
|
|
95
79
|
const hasUsing = Boolean(using) ||
|
|
96
|
-
(hasGeneratedExpression && command !==
|
|
80
|
+
(hasGeneratedExpression && command !== PolicyCommand.INSERT);
|
|
97
81
|
const hasWithCheck = Boolean(withCheck) ||
|
|
98
82
|
(hasGeneratedExpression &&
|
|
99
|
-
command !==
|
|
100
|
-
command !==
|
|
101
|
-
if (command ===
|
|
83
|
+
command !== PolicyCommand.SELECT &&
|
|
84
|
+
command !== PolicyCommand.DELETE);
|
|
85
|
+
if (command === PolicyCommand.SELECT || command === PolicyCommand.DELETE) {
|
|
102
86
|
if (!hasUsing) {
|
|
103
87
|
throw new Error("Policy using expression is required");
|
|
104
88
|
}
|
|
@@ -107,7 +91,7 @@ function assertPolicyPredicates(command, using, withCheck, hasGeneratedExpressio
|
|
|
107
91
|
}
|
|
108
92
|
return;
|
|
109
93
|
}
|
|
110
|
-
if (command ===
|
|
94
|
+
if (command === PolicyCommand.INSERT) {
|
|
111
95
|
if (using) {
|
|
112
96
|
throw new Error("Policy using is not allowed for insert");
|
|
113
97
|
}
|
|
@@ -121,10 +105,10 @@ function assertPolicyPredicates(command, using, withCheck, hasGeneratedExpressio
|
|
|
121
105
|
}
|
|
122
106
|
}
|
|
123
107
|
function getGeneratedPolicyPredicates(command, expression) {
|
|
124
|
-
if (command ===
|
|
108
|
+
if (command === PolicyCommand.SELECT || command === PolicyCommand.DELETE) {
|
|
125
109
|
return { using: expression };
|
|
126
110
|
}
|
|
127
|
-
if (command ===
|
|
111
|
+
if (command === PolicyCommand.INSERT) {
|
|
128
112
|
return { withCheck: expression };
|
|
129
113
|
}
|
|
130
114
|
return {
|
|
@@ -156,15 +140,15 @@ function createPolicyContextExpression(entityMetadata, propertyName, contextName
|
|
|
156
140
|
const property = getPropertyMetadata(entityMetadata, propertyName);
|
|
157
141
|
const columnName = getPropertyColumnName(entityMetadata, propertyName, property);
|
|
158
142
|
const contextType = getPropertyContextType(entityMetadata, propertyName, property);
|
|
159
|
-
return `((select current_setting('app.${
|
|
143
|
+
return `((select current_setting('app.${escapeSqlLiteral(contextName)}', true)::${contextType}) = ${formatDeparsedIdentifier(columnName)})`;
|
|
160
144
|
}
|
|
161
145
|
function formatDeparsedIdentifier(identifier) {
|
|
162
|
-
|
|
146
|
+
assertIdentifier(identifier);
|
|
163
147
|
if (/^[a-z_][a-z0-9_]*$/.test(identifier) &&
|
|
164
|
-
!
|
|
148
|
+
!isPostgresKeywordRequiringQuote(identifier)) {
|
|
165
149
|
return identifier;
|
|
166
150
|
}
|
|
167
|
-
return
|
|
151
|
+
return quoteIdentifier(identifier);
|
|
168
152
|
}
|
|
169
153
|
function getPropertyMetadata(entityMetadata, propertyName) {
|
|
170
154
|
const property = entityMetadata.properties?.[propertyName];
|
|
@@ -227,7 +211,7 @@ function normalizePostgresType(entityMetadata, propertyName, postgresType) {
|
|
|
227
211
|
if (!/^[A-Za-z0-9_."()[\],\s[\]]+$/.test(normalized)) {
|
|
228
212
|
throw new Error(`Policy property "${propertyName}" on entity ${entityMetadata.entityName} has an unsupported database column type: ${postgresType}`);
|
|
229
213
|
}
|
|
230
|
-
return
|
|
214
|
+
return normalizePostgresTypeAlias(normalized);
|
|
231
215
|
}
|
|
232
216
|
function mapPropertyTypeToPostgresType(propertyType) {
|
|
233
217
|
const normalized = propertyType?.trim().toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.decorator.js","sourceRoot":"","sources":["../../src/decorators/policy.decorator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy.decorator.js","sourceRoot":"","sources":["../../src/decorators/policy.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
/** PostgreSQL row-level security policy command targets. */
|
|
2
1
|
export declare enum PolicyCommand {
|
|
3
|
-
/** Applies the policy to all supported commands. */
|
|
4
2
|
ALL = "all",
|
|
5
|
-
/** Applies the policy to SELECT statements. */
|
|
6
3
|
SELECT = "select",
|
|
7
|
-
/** Applies the policy to INSERT statements. */
|
|
8
4
|
INSERT = "insert",
|
|
9
|
-
/** Applies the policy to UPDATE statements. */
|
|
10
5
|
UPDATE = "update",
|
|
11
|
-
/** Applies the policy to DELETE statements. */
|
|
12
6
|
DELETE = "delete"
|
|
13
7
|
}
|
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PolicyCommand = void 0;
|
|
4
|
-
/** PostgreSQL row-level security policy command targets. */
|
|
5
|
-
var PolicyCommand;
|
|
1
|
+
export var PolicyCommand;
|
|
6
2
|
(function (PolicyCommand) {
|
|
7
|
-
/** Applies the policy to all supported commands. */
|
|
8
3
|
PolicyCommand["ALL"] = "all";
|
|
9
|
-
/** Applies the policy to SELECT statements. */
|
|
10
4
|
PolicyCommand["SELECT"] = "select";
|
|
11
|
-
/** Applies the policy to INSERT statements. */
|
|
12
5
|
PolicyCommand["INSERT"] = "insert";
|
|
13
|
-
/** Applies the policy to UPDATE statements. */
|
|
14
6
|
PolicyCommand["UPDATE"] = "update";
|
|
15
|
-
/** Applies the policy to DELETE statements. */
|
|
16
7
|
PolicyCommand["DELETE"] = "delete";
|
|
17
|
-
})(PolicyCommand || (
|
|
8
|
+
})(PolicyCommand || (PolicyCommand = {}));
|
|
18
9
|
//# sourceMappingURL=policy-command.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-command.enum.js","sourceRoot":"","sources":["../../src/enums/policy-command.enum.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy-command.enum.js","sourceRoot":"","sources":["../../src/enums/policy-command.enum.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IAEvB,4BAAW,CAAA;IAEX,kCAAiB,CAAA;IAEjB,kCAAiB,CAAA;IAEjB,kCAAiB,CAAA;IAEjB,kCAAiB,CAAA;AACnB,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/** PostgreSQL policy combination mode. */
|
|
2
1
|
export declare enum PolicyMode {
|
|
3
|
-
/** Allows access when any permissive policy grants it. */
|
|
4
2
|
PERMISSIVE = "permissive",
|
|
5
|
-
/** Requires this policy to pass in addition to permissive policies. */
|
|
6
3
|
RESTRICTIVE = "restrictive"
|
|
7
4
|
}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PolicyMode = void 0;
|
|
4
|
-
/** PostgreSQL policy combination mode. */
|
|
5
|
-
var PolicyMode;
|
|
1
|
+
export var PolicyMode;
|
|
6
2
|
(function (PolicyMode) {
|
|
7
|
-
/** Allows access when any permissive policy grants it. */
|
|
8
3
|
PolicyMode["PERMISSIVE"] = "permissive";
|
|
9
|
-
/** Requires this policy to pass in addition to permissive policies. */
|
|
10
4
|
PolicyMode["RESTRICTIVE"] = "restrictive";
|
|
11
|
-
})(PolicyMode || (
|
|
5
|
+
})(PolicyMode || (PolicyMode = {}));
|
|
12
6
|
//# sourceMappingURL=policy-mode.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-mode.enum.js","sourceRoot":"","sources":["../../src/enums/policy-mode.enum.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy-mode.enum.js","sourceRoot":"","sources":["../../src/enums/policy-mode.enum.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IAEpB,uCAAyB,CAAA;IAEzB,yCAA2B,CAAA;AAC7B,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
/** Built-in database roles used by row-level security helpers. */
|
|
2
1
|
export declare enum RowLevelSecurityRole {
|
|
3
|
-
/** Role used for unauthenticated or public RLS access. */
|
|
4
2
|
ANONYMOUS = "anonymous",
|
|
5
|
-
/** Role used for authenticated RLS access. */
|
|
6
3
|
AUTHENTICATED = "authenticated"
|
|
7
4
|
}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RowLevelSecurityRole = void 0;
|
|
4
|
-
/** Built-in database roles used by row-level security helpers. */
|
|
5
|
-
var RowLevelSecurityRole;
|
|
1
|
+
export var RowLevelSecurityRole;
|
|
6
2
|
(function (RowLevelSecurityRole) {
|
|
7
|
-
/** Role used for unauthenticated or public RLS access. */
|
|
8
3
|
RowLevelSecurityRole["ANONYMOUS"] = "anonymous";
|
|
9
|
-
/** Role used for authenticated RLS access. */
|
|
10
4
|
RowLevelSecurityRole["AUTHENTICATED"] = "authenticated";
|
|
11
|
-
})(RowLevelSecurityRole || (
|
|
5
|
+
})(RowLevelSecurityRole || (RowLevelSecurityRole = {}));
|
|
12
6
|
//# sourceMappingURL=row-level-security-role.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-level-security-role.enum.js","sourceRoot":"","sources":["../../src/enums/row-level-security-role.enum.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"row-level-security-role.enum.js","sourceRoot":"","sources":["../../src/enums/row-level-security-role.enum.ts"],"names":[],"mappings":"AACA,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAE9B,+CAAuB,CAAA;IAEvB,uDAA+B,CAAA;AACjC,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export * from "./decorators/policy.decorator";
|
|
2
|
-
export * from "./enums/policy-command.enum";
|
|
3
|
-
export * from "./enums/policy-mode.enum";
|
|
4
|
-
export * from "./enums/row-level-security-role.enum";
|
|
5
|
-
export * from "./interfaces";
|
|
6
|
-
export * from "./row-level-security";
|
|
7
|
-
export * from "./row-level-security-driver";
|
|
8
|
-
export * from "./row-level-security-migration";
|
|
9
|
-
export * from "./row-level-security-migration-generator";
|
|
10
|
-
export * from "./row-level-security-migrator";
|
|
11
|
-
export * from "./utils";
|
|
1
|
+
export * from "./decorators/policy.decorator.js";
|
|
2
|
+
export * from "./enums/policy-command.enum.js";
|
|
3
|
+
export * from "./enums/policy-mode.enum.js";
|
|
4
|
+
export * from "./enums/row-level-security-role.enum.js";
|
|
5
|
+
export * from "./interfaces/index.js";
|
|
6
|
+
export * from "./row-level-security.js";
|
|
7
|
+
export * from "./row-level-security-driver.js";
|
|
8
|
+
export * from "./row-level-security-migration.js";
|
|
9
|
+
export * from "./row-level-security-migration-generator.js";
|
|
10
|
+
export * from "./row-level-security-migrator.js";
|
|
11
|
+
export * from "./utils/index.js";
|
package/dist/index.js
CHANGED
|
@@ -1,28 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./decorators/policy.decorator"), exports);
|
|
18
|
-
__exportStar(require("./enums/policy-command.enum"), exports);
|
|
19
|
-
__exportStar(require("./enums/policy-mode.enum"), exports);
|
|
20
|
-
__exportStar(require("./enums/row-level-security-role.enum"), exports);
|
|
21
|
-
__exportStar(require("./interfaces"), exports);
|
|
22
|
-
__exportStar(require("./row-level-security"), exports);
|
|
23
|
-
__exportStar(require("./row-level-security-driver"), exports);
|
|
24
|
-
__exportStar(require("./row-level-security-migration"), exports);
|
|
25
|
-
__exportStar(require("./row-level-security-migration-generator"), exports);
|
|
26
|
-
__exportStar(require("./row-level-security-migrator"), exports);
|
|
27
|
-
__exportStar(require("./utils"), exports);
|
|
1
|
+
export * from "./decorators/policy.decorator.js";
|
|
2
|
+
export * from "./enums/policy-command.enum.js";
|
|
3
|
+
export * from "./enums/policy-mode.enum.js";
|
|
4
|
+
export * from "./enums/row-level-security-role.enum.js";
|
|
5
|
+
export * from "./interfaces/index.js";
|
|
6
|
+
export * from "./row-level-security.js";
|
|
7
|
+
export * from "./row-level-security-driver.js";
|
|
8
|
+
export * from "./row-level-security-migration.js";
|
|
9
|
+
export * from "./row-level-security-migration-generator.js";
|
|
10
|
+
export * from "./row-level-security-migrator.js";
|
|
11
|
+
export * from "./utils/index.js";
|
|
28
12
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from "./policy-metadata.interface";
|
|
2
|
-
export * from "./policy-options.interface";
|
|
3
|
-
export * from "./policy-sql-options.interface";
|
|
4
|
-
export type { MigrationDiff } from "./row-level-security-migration-generator.interface";
|
|
1
|
+
export * from "./policy-metadata.interface.js";
|
|
2
|
+
export * from "./policy-options.interface.js";
|
|
3
|
+
export * from "./policy-sql-options.interface.js";
|
|
4
|
+
export type { MigrationDiff } from "./row-level-security-migration-generator.interface.js";
|
package/dist/interfaces/index.js
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./policy-metadata.interface"), exports);
|
|
18
|
-
__exportStar(require("./policy-options.interface"), exports);
|
|
19
|
-
__exportStar(require("./policy-sql-options.interface"), exports);
|
|
1
|
+
export * from "./policy-metadata.interface.js";
|
|
2
|
+
export * from "./policy-options.interface.js";
|
|
3
|
+
export * from "./policy-sql-options.interface.js";
|
|
20
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC"}
|
|
@@ -1,62 +1,34 @@
|
|
|
1
|
-
import { PolicyCommand } from "../enums/policy-command.enum";
|
|
2
|
-
import { PolicyMode } from "../enums/policy-mode.enum";
|
|
3
|
-
/** Normalized policy metadata stored by the {@link Policy} decorator. */
|
|
1
|
+
import { PolicyCommand } from "../enums/policy-command.enum.js";
|
|
2
|
+
import { PolicyMode } from "../enums/policy-mode.enum.js";
|
|
4
3
|
export interface PolicyMetadata {
|
|
5
|
-
/** PostgreSQL policy name. */
|
|
6
4
|
name: string;
|
|
7
|
-
/** PostgreSQL policy mode. */
|
|
8
5
|
mode: PolicyMode;
|
|
9
|
-
/** PostgreSQL command covered by the policy. */
|
|
10
6
|
command: PolicyCommand;
|
|
11
|
-
/** SQL expression used as the `USING` predicate. */
|
|
12
7
|
using?: string;
|
|
13
|
-
/** SQL expression used as the `WITH CHECK` predicate. */
|
|
14
8
|
withCheck?: string;
|
|
15
|
-
/** Database roles to which the policy applies. */
|
|
16
9
|
roles: string[];
|
|
17
|
-
/** Additional SQL emitted before creating this policy. */
|
|
18
10
|
bootstrapSql?: string[];
|
|
19
11
|
}
|
|
20
|
-
/** Entity metadata needed to derive policy names and predicates. */
|
|
21
12
|
export interface PolicyEntityMetadata {
|
|
22
|
-
/** Entity class name. */
|
|
23
13
|
entityName: string;
|
|
24
|
-
/** Database schema name. */
|
|
25
14
|
schemaName: string;
|
|
26
|
-
/** Database table name. */
|
|
27
15
|
tableName: string;
|
|
28
|
-
/** MikroORM property metadata keyed by entity property name. */
|
|
29
16
|
properties?: Record<string, PolicyEntityPropertyMetadata>;
|
|
30
17
|
}
|
|
31
|
-
/** Property metadata used to resolve policy column names and SQL context types. */
|
|
32
18
|
export interface PolicyEntityPropertyMetadata {
|
|
33
|
-
/** Entity property name. */
|
|
34
19
|
fieldName?: string;
|
|
35
|
-
/** Database column names mapped by this property. */
|
|
36
20
|
fieldNames?: string[];
|
|
37
|
-
/** MikroORM property type. */
|
|
38
21
|
type?: string;
|
|
39
|
-
/** Runtime TypeScript type name. */
|
|
40
22
|
runtimeType?: string;
|
|
41
|
-
/** Database column type names. */
|
|
42
23
|
columnTypes?: string[];
|
|
43
|
-
/** Whether the property is a primary key. */
|
|
44
24
|
primary?: boolean;
|
|
45
|
-
/** Metadata for the relation target, when the property is a relation. */
|
|
46
25
|
targetMeta?: PolicyEntityTargetMetadata;
|
|
47
26
|
}
|
|
48
|
-
/** Minimal target entity metadata used when a policy property points at a relation. */
|
|
49
27
|
export interface PolicyEntityTargetMetadata {
|
|
50
|
-
/** Target entity class name. */
|
|
51
28
|
className?: string;
|
|
52
|
-
/** Target entity name. */
|
|
53
29
|
name?: string;
|
|
54
|
-
/** Primary key property names on the target entity. */
|
|
55
30
|
primaryKeys?: string[];
|
|
56
|
-
/** Target entity properties keyed by property name. */
|
|
57
31
|
properties?: Record<string, PolicyEntityPropertyMetadata>;
|
|
58
32
|
}
|
|
59
|
-
/** Factory that derives policy metadata after MikroORM entity metadata is available. */
|
|
60
33
|
export type PolicyMetadataFactory = (entityMetadata: PolicyEntityMetadata) => PolicyMetadata;
|
|
61
|
-
/** Stored policy metadata entry, either static or entity-metadata aware. */
|
|
62
34
|
export type PolicyMetadataEntry = PolicyMetadata | PolicyMetadataFactory;
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
import { PolicyCommand } from "../enums/policy-command.enum";
|
|
2
|
-
import { PolicyMode } from "../enums/policy-mode.enum";
|
|
3
|
-
/** Options accepted by the {@link Policy} decorator. */
|
|
1
|
+
import { PolicyCommand } from "../enums/policy-command.enum.js";
|
|
2
|
+
import { PolicyMode } from "../enums/policy-mode.enum.js";
|
|
4
3
|
export interface PolicyOptions {
|
|
5
|
-
/** Explicit PostgreSQL policy name. If omitted, a stable name is generated from entity metadata. */
|
|
6
4
|
name?: string;
|
|
7
|
-
/** PostgreSQL policy mode. Defaults to {@link PolicyMode.PERMISSIVE}. */
|
|
8
5
|
mode?: PolicyMode;
|
|
9
|
-
/** PostgreSQL command covered by the policy. Defaults to {@link PolicyCommand.ALL}. */
|
|
10
6
|
command?: PolicyCommand;
|
|
11
|
-
/** Entity property used to generate the default policy predicate. */
|
|
12
7
|
property?: string;
|
|
13
|
-
/** Row-level security context key read from the `app.<key>` transaction setting. */
|
|
14
8
|
context?: string;
|
|
15
|
-
/** Explicit `USING` expression. Overrides the generated predicate when provided. Raw expressions are parenthesized in generated SQL. */
|
|
16
9
|
using?: string;
|
|
17
|
-
/** Explicit `WITH CHECK` expression. Overrides the generated predicate when provided. Raw expressions are parenthesized in generated SQL. */
|
|
18
10
|
withCheck?: string;
|
|
19
|
-
/** Database roles to which the policy applies. Empty or omitted means no role restriction. */
|
|
20
11
|
roles?: string[];
|
|
21
12
|
}
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
import { PolicyCommand } from "../enums/policy-command.enum";
|
|
2
|
-
import { PolicyMode } from "../enums/policy-mode.enum";
|
|
3
|
-
/** Low-level inputs used to generate PostgreSQL policy SQL. */
|
|
1
|
+
import { PolicyCommand } from "../enums/policy-command.enum.js";
|
|
2
|
+
import { PolicyMode } from "../enums/policy-mode.enum.js";
|
|
4
3
|
export interface PolicySqlOptions {
|
|
5
|
-
/** Database schema containing the protected table. */
|
|
6
4
|
schemaName: string;
|
|
7
|
-
/** Table name on which row-level security is enabled. */
|
|
8
5
|
tableName: string;
|
|
9
|
-
/** PostgreSQL policy name. */
|
|
10
6
|
policyName: string;
|
|
11
|
-
/** PostgreSQL policy mode. Defaults to {@link PolicyMode.PERMISSIVE}. */
|
|
12
7
|
mode?: PolicyMode;
|
|
13
|
-
/** PostgreSQL command covered by the policy. Defaults to {@link PolicyCommand.ALL}. */
|
|
14
8
|
command?: PolicyCommand;
|
|
15
|
-
/** SQL expression emitted as the policy `USING` predicate. Raw expressions are parenthesized in generated SQL. */
|
|
16
9
|
using?: string;
|
|
17
|
-
/** SQL expression emitted as the policy `WITH CHECK` predicate. Raw expressions are parenthesized in generated SQL. */
|
|
18
10
|
withCheck?: string;
|
|
19
|
-
/** Database roles to which the generated policy applies. */
|
|
20
11
|
roles?: string[];
|
|
21
12
|
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import type { PolicySqlOptions } from "./policy-sql-options.interface";
|
|
2
|
-
/** SQL diff shape passed from MikroORM to migration generators. */
|
|
1
|
+
import type { PolicySqlOptions } from "./policy-sql-options.interface.js";
|
|
3
2
|
export interface MigrationDiff {
|
|
4
|
-
/** SQL statements applied by the generated migration. */
|
|
5
3
|
up: string[];
|
|
6
|
-
/** SQL statements applied when reverting the generated migration. */
|
|
7
4
|
down: string[];
|
|
8
5
|
}
|
|
9
6
|
export interface EntityMetadataLike {
|
|
@@ -33,7 +30,7 @@ export interface EntityTargetMetadataLike {
|
|
|
33
30
|
properties?: Record<string, EntityPropertyLike>;
|
|
34
31
|
}
|
|
35
32
|
export interface MetadataStorageLike {
|
|
36
|
-
getAll(): EntityMetadataLike[] | Record<string, EntityMetadataLike>;
|
|
33
|
+
getAll(): EntityMetadataLike[] | Map<string, EntityMetadataLike> | Record<string, EntityMetadataLike>;
|
|
37
34
|
}
|
|
38
35
|
export interface DatabaseConnectionLike {
|
|
39
36
|
execute<T>(sql: string): Promise<T>;
|
|
@@ -48,7 +45,6 @@ export interface RowLevelSecurityMigrationGeneratorDriverLike {
|
|
|
48
45
|
}
|
|
49
46
|
export interface RowLevelSecurityDefinition extends PolicySqlOptions {
|
|
50
47
|
entityName: string;
|
|
51
|
-
/** Database policy names treated as equivalent when diffing existing policies. */
|
|
52
48
|
policyNameAliases?: string[];
|
|
53
49
|
bootstrapSql?: string[];
|
|
54
50
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import type { AnyEntity, Configuration, EntityData, LoggingOptions, QueryResult, Transaction } from "@mikro-orm/core";
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import type { AnyEntity, Configuration, EntityData, LoggingOptions, QueryResult, RawQueryFragment, Transaction } from "@mikro-orm/core";
|
|
2
|
+
import { MikroORM as PostgreSqlMikroORM, PostgreSqlConnection } from "@mikro-orm/postgresql";
|
|
3
|
+
import { AbstractSqlDriver, type NativeQueryBuilder } from "@mikro-orm/sql";
|
|
4
4
|
export declare class RowLevelSecurityConnection extends PostgreSqlConnection {
|
|
5
|
-
|
|
6
|
-
execute<T extends QueryResult | EntityData<AnyEntity> | EntityData<AnyEntity>[] = EntityData<AnyEntity>[]>(queryOrKnex: string | Knex.QueryBuilder | Knex.Raw, params?: unknown[], method?: "all" | "get" | "run", ctx?: Transaction, loggerContext?: LoggingOptions): Promise<T>;
|
|
5
|
+
execute<T extends QueryResult | EntityData<AnyEntity> | EntityData<AnyEntity>[] = EntityData<AnyEntity>[]>(queryOrKnex: string | NativeQueryBuilder | RawQueryFragment, params?: readonly unknown[], method?: "all" | "get" | "run", ctx?: Transaction, loggerContext?: LoggingOptions): Promise<T>;
|
|
7
6
|
private runInTransactionQueue;
|
|
8
7
|
private configureRowLevelSecurity;
|
|
9
8
|
private clearRowLevelSecurity;
|
|
10
9
|
}
|
|
11
|
-
/** MikroORM PostgreSQL driver that applies row level security per SQL query. */
|
|
12
10
|
export declare class RowLevelSecurityDriver extends AbstractSqlDriver<RowLevelSecurityConnection> {
|
|
13
|
-
/** Creates a PostgreSQL driver using the row level security connection. */
|
|
14
11
|
constructor(config: Configuration);
|
|
12
|
+
getORMClass(): typeof PostgreSqlMikroORM;
|
|
15
13
|
}
|