@powersync/service-sync-rules 0.26.1 → 0.28.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/BaseSqlDataQuery.d.ts +53 -12
- package/dist/BaseSqlDataQuery.js +49 -9
- package/dist/BaseSqlDataQuery.js.map +1 -1
- package/dist/BucketDescription.d.ts +1 -1
- package/dist/BucketDescription.js +1 -1
- package/dist/BucketDescription.js.map +1 -1
- package/dist/SourceTableInterface.d.ts +1 -1
- package/dist/SqlBucketDescriptor.d.ts +6 -6
- package/dist/SqlBucketDescriptor.js +24 -28
- package/dist/SqlBucketDescriptor.js.map +1 -1
- package/dist/SqlDataQuery.d.ts +14 -3
- package/dist/SqlDataQuery.js +41 -27
- package/dist/SqlDataQuery.js.map +1 -1
- package/dist/SqlParameterQuery.d.ts +82 -26
- package/dist/SqlParameterQuery.js +135 -77
- package/dist/SqlParameterQuery.js.map +1 -1
- package/dist/SqlSyncRules.d.ts +3 -5
- package/dist/SqlSyncRules.js +20 -23
- package/dist/SqlSyncRules.js.map +1 -1
- package/dist/StaticSchema.js +2 -2
- package/dist/StaticSchema.js.map +1 -1
- package/dist/StaticSqlParameterQuery.d.ts +50 -15
- package/dist/StaticSqlParameterQuery.js +74 -36
- package/dist/StaticSqlParameterQuery.js.map +1 -1
- package/dist/TablePattern.js +2 -2
- package/dist/TablePattern.js.map +1 -1
- package/dist/TableValuedFunctionSqlParameterQuery.d.ts +70 -17
- package/dist/TableValuedFunctionSqlParameterQuery.js +98 -43
- package/dist/TableValuedFunctionSqlParameterQuery.js.map +1 -1
- package/dist/events/SqlEventDescriptor.d.ts +2 -4
- package/dist/events/SqlEventDescriptor.js +8 -11
- package/dist/events/SqlEventDescriptor.js.map +1 -1
- package/dist/events/SqlEventSourceQuery.d.ts +2 -2
- package/dist/events/SqlEventSourceQuery.js +24 -17
- package/dist/events/SqlEventSourceQuery.js.map +1 -1
- package/dist/request_functions.js +3 -3
- package/dist/request_functions.js.map +1 -1
- package/dist/schema-generators/SchemaGenerator.js +2 -2
- package/dist/schema-generators/SchemaGenerator.js.map +1 -1
- package/dist/sql_filters.d.ts +12 -12
- package/dist/sql_filters.js +24 -24
- package/dist/sql_filters.js.map +1 -1
- package/dist/types.d.ts +10 -12
- package/dist/types.js +13 -13
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/SqlSyncRules.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { isScalar, LineCounter, parseDocument, Scalar, YAMLMap, YAMLSeq } from 'yaml';
|
|
2
|
+
import { isValidPriority } from './BucketDescription.js';
|
|
3
|
+
import { mergeBucketParameterQueriers } from './BucketParameterQuerier.js';
|
|
2
4
|
import { SqlRuleError, SyncRulesErrors, YamlError } from './errors.js';
|
|
3
5
|
import { SqlEventDescriptor } from './events/SqlEventDescriptor.js';
|
|
4
|
-
import { IdSequence } from './IdSequence.js';
|
|
5
6
|
import { validateSyncRulesSchema } from './json_schema.js';
|
|
6
7
|
import { SqlBucketDescriptor } from './SqlBucketDescriptor.js';
|
|
7
8
|
import { isEvaluatedParameters, isEvaluatedRow, isEvaluationError } from './types.js';
|
|
8
|
-
import { isValidPriority } from './BucketDescription.js';
|
|
9
|
-
import { mergeBucketParameterQueriers } from './BucketParameterQuerier.js';
|
|
10
9
|
const ACCEPT_POTENTIALLY_DANGEROUS_QUERIES = Symbol('ACCEPT_POTENTIALLY_DANGEROUS_QUERIES');
|
|
11
10
|
export class SqlSyncRules {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
idSequence = new IdSequence();
|
|
11
|
+
bucketDescriptors = [];
|
|
12
|
+
eventDescriptors = [];
|
|
15
13
|
content;
|
|
16
14
|
errors = [];
|
|
17
15
|
static validate(yaml, options) {
|
|
@@ -33,7 +31,6 @@ export class SqlSyncRules {
|
|
|
33
31
|
}
|
|
34
32
|
static fromYaml(yaml, options) {
|
|
35
33
|
const throwOnError = options.throwOnError ?? true;
|
|
36
|
-
const schema = options.schema;
|
|
37
34
|
const lineCounter = new LineCounter();
|
|
38
35
|
const parsed = parseDocument(yaml, {
|
|
39
36
|
schema: 'core',
|
|
@@ -91,7 +88,7 @@ export class SqlSyncRules {
|
|
|
91
88
|
};
|
|
92
89
|
const parameters = value.get('parameters', true);
|
|
93
90
|
const dataQueries = value.get('data', true);
|
|
94
|
-
const descriptor = new SqlBucketDescriptor(key
|
|
91
|
+
const descriptor = new SqlBucketDescriptor(key);
|
|
95
92
|
if (parameters instanceof Scalar) {
|
|
96
93
|
rules.withScalar(parameters, (q) => {
|
|
97
94
|
return descriptor.addParameterQuery(q, queryOptions);
|
|
@@ -116,7 +113,7 @@ export class SqlSyncRules {
|
|
|
116
113
|
return descriptor.addDataQuery(q, queryOptions);
|
|
117
114
|
});
|
|
118
115
|
}
|
|
119
|
-
rules.
|
|
116
|
+
rules.bucketDescriptors.push(descriptor);
|
|
120
117
|
}
|
|
121
118
|
const eventMap = parsed.get('event_definitions');
|
|
122
119
|
for (const event of eventMap?.items ?? []) {
|
|
@@ -130,7 +127,7 @@ export class SqlSyncRules {
|
|
|
130
127
|
rules.errors.push(new YamlError(new Error(`Event definition payloads must be an array.`)));
|
|
131
128
|
continue;
|
|
132
129
|
}
|
|
133
|
-
const eventDescriptor = new SqlEventDescriptor(key.toString()
|
|
130
|
+
const eventDescriptor = new SqlEventDescriptor(key.toString());
|
|
134
131
|
for (let item of payloads.items) {
|
|
135
132
|
if (!isScalar(item)) {
|
|
136
133
|
rules.errors.push(new YamlError(new Error(`Payload queries for events must be scalar.`)));
|
|
@@ -140,7 +137,7 @@ export class SqlSyncRules {
|
|
|
140
137
|
return eventDescriptor.addSourceQuery(q, options);
|
|
141
138
|
});
|
|
142
139
|
}
|
|
143
|
-
rules.
|
|
140
|
+
rules.eventDescriptors.push(eventDescriptor);
|
|
144
141
|
}
|
|
145
142
|
// Validate that there are no additional properties.
|
|
146
143
|
// Since these errors don't contain line numbers, do this last.
|
|
@@ -219,7 +216,7 @@ export class SqlSyncRules {
|
|
|
219
216
|
}
|
|
220
217
|
evaluateRowWithErrors(options) {
|
|
221
218
|
let rawResults = [];
|
|
222
|
-
for (let query of this.
|
|
219
|
+
for (let query of this.bucketDescriptors) {
|
|
223
220
|
rawResults.push(...query.evaluateRow(options));
|
|
224
221
|
}
|
|
225
222
|
const results = rawResults.filter(isEvaluatedRow);
|
|
@@ -238,7 +235,7 @@ export class SqlSyncRules {
|
|
|
238
235
|
}
|
|
239
236
|
evaluateParameterRowWithErrors(table, row) {
|
|
240
237
|
let rawResults = [];
|
|
241
|
-
for (let query of this.
|
|
238
|
+
for (let query of this.bucketDescriptors) {
|
|
242
239
|
rawResults.push(...query.evaluateParameterRow(table, row));
|
|
243
240
|
}
|
|
244
241
|
const results = rawResults.filter(isEvaluatedParameters);
|
|
@@ -246,21 +243,21 @@ export class SqlSyncRules {
|
|
|
246
243
|
return { results, errors };
|
|
247
244
|
}
|
|
248
245
|
getBucketParameterQuerier(parameters) {
|
|
249
|
-
const queriers = this.
|
|
246
|
+
const queriers = this.bucketDescriptors.map((query) => query.getBucketParameterQuerier(parameters));
|
|
250
247
|
return mergeBucketParameterQueriers(queriers);
|
|
251
248
|
}
|
|
252
249
|
hasDynamicBucketQueries() {
|
|
253
|
-
return this.
|
|
250
|
+
return this.bucketDescriptors.some((query) => query.hasDynamicBucketQueries());
|
|
254
251
|
}
|
|
255
252
|
getSourceTables() {
|
|
256
253
|
const sourceTables = new Map();
|
|
257
|
-
for (const bucket of this.
|
|
254
|
+
for (const bucket of this.bucketDescriptors) {
|
|
258
255
|
for (const r of bucket.getSourceTables()) {
|
|
259
256
|
const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
|
|
260
257
|
sourceTables.set(key, r);
|
|
261
258
|
}
|
|
262
259
|
}
|
|
263
|
-
for (const event of this.
|
|
260
|
+
for (const event of this.eventDescriptors) {
|
|
264
261
|
for (const r of event.getSourceTables()) {
|
|
265
262
|
const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
|
|
266
263
|
sourceTables.set(key, r);
|
|
@@ -270,7 +267,7 @@ export class SqlSyncRules {
|
|
|
270
267
|
}
|
|
271
268
|
getEventTables() {
|
|
272
269
|
const eventTables = new Map();
|
|
273
|
-
for (const event of this.
|
|
270
|
+
for (const event of this.eventDescriptors) {
|
|
274
271
|
for (const r of event.getSourceTables()) {
|
|
275
272
|
const key = `${r.connectionTag}.${r.schema}.${r.tablePattern}`;
|
|
276
273
|
eventTables.set(key, r);
|
|
@@ -279,10 +276,10 @@ export class SqlSyncRules {
|
|
|
279
276
|
return [...eventTables.values()];
|
|
280
277
|
}
|
|
281
278
|
tableTriggersEvent(table) {
|
|
282
|
-
return this.
|
|
279
|
+
return this.eventDescriptors.some((bucket) => bucket.tableTriggersEvent(table));
|
|
283
280
|
}
|
|
284
281
|
tableSyncsData(table) {
|
|
285
|
-
for (const bucket of this.
|
|
282
|
+
for (const bucket of this.bucketDescriptors) {
|
|
286
283
|
if (bucket.tableSyncsData(table)) {
|
|
287
284
|
return true;
|
|
288
285
|
}
|
|
@@ -290,7 +287,7 @@ export class SqlSyncRules {
|
|
|
290
287
|
return false;
|
|
291
288
|
}
|
|
292
289
|
tableSyncsParameters(table) {
|
|
293
|
-
for (let bucket of this.
|
|
290
|
+
for (let bucket of this.bucketDescriptors) {
|
|
294
291
|
if (bucket.tableSyncsParameters(table)) {
|
|
295
292
|
return true;
|
|
296
293
|
}
|
|
@@ -299,8 +296,8 @@ export class SqlSyncRules {
|
|
|
299
296
|
}
|
|
300
297
|
debugGetOutputTables() {
|
|
301
298
|
let result = {};
|
|
302
|
-
for (let bucket of this.
|
|
303
|
-
for (let q of bucket.
|
|
299
|
+
for (let bucket of this.bucketDescriptors) {
|
|
300
|
+
for (let q of bucket.dataQueries) {
|
|
304
301
|
result[q.table] ??= [];
|
|
305
302
|
const r = {
|
|
306
303
|
query: q.sql
|
package/dist/SqlSyncRules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlSyncRules.js","sourceRoot":"","sources":["../src/SqlSyncRules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SqlSyncRules.js","sourceRoot":"","sources":["../src/SqlSyncRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACtF,OAAO,EAAkB,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAA0B,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAoB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAOL,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EAMlB,MAAM,YAAY,CAAC;AAEpB,MAAM,oCAAoC,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAC;AAc5F,MAAM,OAAO,YAAY;IACvB,iBAAiB,GAA0B,EAAE,CAAC;IAC9C,gBAAgB,GAAyB,EAAE,CAAC;IAE5C,OAAO,CAAS;IAEhB,MAAM,GAAgB,EAAE,CAAC;IAEzB,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAyB;QACrD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;gBACjC,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,CAAC;iBAAM,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAyB;QACrD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;QAElD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE;YACjC,MAAM,EAAE,MAAM;YACd,gBAAgB,EAAE,IAAI;YACtB,WAAW;YACX,UAAU,EAAE;gBACV;oBACE,GAAG,EAAE,uCAAuC;oBAC5C,OAAO,CAAC,KAAa,EAAE,QAAiC;wBACtD,OAAO,oCAAoC,CAAC;oBAC9C,CAAC;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,CACf,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7B,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAY,CAAC;QAC9D,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC;YAEhF,IAAI,YAAY,EAAE,CAAC;gBACjB,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,IAAI,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAwC,CAAC;YAC3E,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YAEjC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,CAAC,EAAE,CAAC;gBACjD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,GAAG,uCAAuC,CAAC,CAAC,CAAC;gBAC9F,SAAS;YACX,CAAC;YAED,MAAM,oCAAoC,GACxC,KAAK,CAAC,GAAG,CAAC,sCAAsC,EAAE,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;YACzE,IAAI,mBAAmB,GAA+B,SAAS,CAAC;YAChE,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAE,CAAC;gBACnD,IAAI,OAAO,aAAa,CAAC,KAAK,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpF,KAAK,CAAC,MAAM,CAAC,IAAI,CACf,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,kEAAkE,CAAC,CACnG,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,mBAAmB,GAAG,aAAa,CAAC,KAAK,CAAC;gBAC5C,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAsB;gBACtC,GAAG,OAAO;gBACV,oCAAoC;gBACpC,QAAQ,EAAE,mBAAmB;aAC9B,CAAC;YACF,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAY,CAAC;YAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAY,CAAC;YAEvD,MAAM,UAAU,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEhD,IAAI,UAAU,YAAY,MAAM,EAAE,CAAC;gBACjC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBACjC,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;gBACzC,KAAK,IAAI,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBAClC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;wBAC3B,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;oBACvD,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,CAAC,WAAW,YAAY,OAAO,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC;gBACpF,SAAS;YACX,CAAC;YACD,KAAK,IAAI,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC5B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAY,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC1C,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAwC,CAAC;YAEhE,IAAI,KAAK,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;gBACtC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC;gBAClF,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC;YAClD,IAAI,KAAK,IAAI,QAAQ,YAAY,OAAO,EAAE,CAAC;gBACzC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC,CAAC;gBAC3F,SAAS;YACX,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/D,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAAC;oBAC1F,SAAS;gBACX,CAAC;gBACD,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC3B,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC;QAED,oDAAoD;QACpD,+DAA+D;QAC/D,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,CAAC,IAAI,CACf,GAAG,uBAAuB,CAAC,MAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;gBAChD,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAU,EAAE,OAAe;QAC3C,MAAM,KAAK,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;QACtB,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,EAAuC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEhC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAoB,EAAE;YAClD,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC;iBACZ,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,YAAY,GAAG,MAAM,CAAC,QAAS,CAAC,MAAM,CAAC;YAC3C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC7E,0CAA0C;gBAC1C,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,MAAc,CAAC;YACnB,IAAI,GAAW,CAAC;YAChB,IAAI,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,GAAG,GAAG,CAAC,QAAS,CAAC,KAAK,GAAG,YAAY,CAAC;gBAC5C,GAAG,GAAG,GAAG,CAAC,QAAS,CAAC,GAAG,GAAG,YAAY,CAAC;YACzC,CAAC;iBAAM,IAAI,OAAQ,GAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,QAAQ,EAAE,CAAC;gBACnE,MAAM,GAAG,YAAY,GAAI,GAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;gBAC7D,GAAG,GAAG,YAAY,GAAI,GAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,YAAY,CAAC;gBACtB,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAA2B;QACrC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,qBAAqB,CAAC,OAA2B;QAC/C,IAAI,UAAU,GAAuB,EAAE,CAAC;QACxC,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,CAAmB,CAAC;QACpE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAsB,CAAC;QAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAA2B,EAAE,GAAc;QAC9D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,8BAA8B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,8BAA8B,CAC5B,KAA2B,EAC3B,GAAc;QAEd,IAAI,UAAU,GAAgC,EAAE,CAAC;QACjD,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,qBAAqB,CAA0B,CAAC;QAClF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAsB,CAAC;QACzE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,yBAAyB,CAAC,UAA6B;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC;QACpG,OAAO,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,eAAe;QACb,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;QACrD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;gBACzC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBAC/D,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBAC/D,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,cAAc;QACZ,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;QAEpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBAC/D,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB,CAAC,KAA2B;QAC5C,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,cAAc,CAAC,KAA2B;QACxC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oBAAoB,CAAC,KAA2B;QAC9C,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oBAAoB;QAClB,IAAI,MAAM,GAA0B,EAAE,CAAC;QACvC,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1C,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACjC,MAAM,CAAC,CAAC,CAAC,KAAM,CAAC,KAAK,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG;oBACR,KAAK,EAAE,CAAC,CAAC,GAAG;iBACb,CAAC;gBAEF,MAAM,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
package/dist/StaticSchema.js
CHANGED
|
@@ -2,12 +2,12 @@ import { ExpressionType, expressionTypeFromPostgresType } from './ExpressionType
|
|
|
2
2
|
class SourceTableDetails {
|
|
3
3
|
connectionTag;
|
|
4
4
|
schema;
|
|
5
|
-
|
|
5
|
+
name;
|
|
6
6
|
columns;
|
|
7
7
|
constructor(connection, schema, table) {
|
|
8
8
|
this.connectionTag = connection.tag;
|
|
9
9
|
this.schema = schema.name;
|
|
10
|
-
this.
|
|
10
|
+
this.name = table.name;
|
|
11
11
|
this.columns = Object.fromEntries(table.columns.map((column) => {
|
|
12
12
|
return [column.name, mapColumn(column)];
|
|
13
13
|
}));
|
package/dist/StaticSchema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticSchema.js","sourceRoot":"","sources":["../src/StaticSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,cAAc,EAAE,8BAA8B,EAAc,MAAM,qBAAqB,CAAC;AA6CnH,MAAM,kBAAkB;IACb,aAAa,CAAS;IACtB,MAAM,CAAS;IACf,
|
|
1
|
+
{"version":3,"file":"StaticSchema.js","sourceRoot":"","sources":["../src/StaticSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,cAAc,EAAE,8BAA8B,EAAc,MAAM,qBAAqB,CAAC;AA6CnH,MAAM,kBAAkB;IACb,aAAa,CAAS;IACtB,MAAM,CAAS;IACf,IAAI,CAAS;IACL,OAAO,CAAmC;IAE3D,YAAY,UAAsC,EAAE,MAA8B,EAAE,KAA4B;QAC9G,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAC/B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IACf,MAAM,CAAuB;IAErC,YAAY,WAAyC;QACnD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;YACnC,KAAK,IAAI,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACtC,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,CAAC,WAAyB;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,SAAS,SAAS,CAAC,MAA8B;IAC/C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC,aAAa;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAA8B;IACnD,IAAI,OAAO,MAAM,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC1C,OAAO,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,OAAO,MAAM,CAAC,WAAW,IAAI,QAAQ,EAAE,CAAC;QACjD,OAAO,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzD,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QAClC,yEAAyE;QACzE,OAAO,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SelectFromStatement } from 'pgsql-ast-parser';
|
|
2
|
+
import { BucketDescription, BucketPriority } from './BucketDescription.js';
|
|
2
3
|
import { SqlRuleError } from './errors.js';
|
|
3
|
-
import { SqlTools } from './sql_filters.js';
|
|
4
4
|
import { ParameterValueClause, QueryParseOptions, RequestParameters } from './types.js';
|
|
5
|
-
|
|
5
|
+
export interface StaticSqlParameterQueryOptions {
|
|
6
|
+
sql: string;
|
|
7
|
+
parameterExtractors: Record<string, ParameterValueClause>;
|
|
8
|
+
priority: BucketPriority;
|
|
9
|
+
descriptorName: string;
|
|
10
|
+
bucketParameters: string[];
|
|
11
|
+
queryId: string;
|
|
12
|
+
filter: ParameterValueClause | undefined;
|
|
13
|
+
errors?: SqlRuleError[];
|
|
14
|
+
}
|
|
6
15
|
/**
|
|
7
16
|
* Represents a bucket parameter query without any tables, e.g.:
|
|
8
17
|
*
|
|
@@ -10,18 +19,44 @@ import { BucketDescription, BucketPriority } from './BucketDescription.js';
|
|
|
10
19
|
* SELECT token_parameters.user_id as user_id WHERE token_parameters.is_admin
|
|
11
20
|
*/
|
|
12
21
|
export declare class StaticSqlParameterQuery {
|
|
13
|
-
static fromSql(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
static fromSql(descriptorName: string, sql: string, q: SelectFromStatement, options: QueryParseOptions, queryId: string): StaticSqlParameterQuery;
|
|
23
|
+
/**
|
|
24
|
+
* Raw source sql query, for debugging purposes.
|
|
25
|
+
*/
|
|
26
|
+
readonly sql: string;
|
|
27
|
+
/**
|
|
28
|
+
* Matches the keys in `bucketParameters`.
|
|
29
|
+
*
|
|
30
|
+
* This is used to map request parameters -> bucket parameters.
|
|
31
|
+
*/
|
|
32
|
+
readonly parameterExtractors: Record<string, ParameterValueClause>;
|
|
33
|
+
readonly priority: BucketPriority;
|
|
34
|
+
/**
|
|
35
|
+
* Bucket definition name.
|
|
36
|
+
*/
|
|
37
|
+
readonly descriptorName: string;
|
|
38
|
+
/**
|
|
39
|
+
* _Output_ bucket parameters, excluding the `bucket.` prefix.
|
|
40
|
+
*
|
|
41
|
+
* Each one will be present in the `parameterExtractors` map.
|
|
42
|
+
*/
|
|
43
|
+
readonly bucketParameters: string[];
|
|
44
|
+
/**
|
|
45
|
+
* Unique identifier for this query within a bucket definition.
|
|
46
|
+
*
|
|
47
|
+
* Typically auto-generated based on query order.
|
|
48
|
+
*
|
|
49
|
+
* This is not used directly, but we keep this to match behavior of other parameter queries.
|
|
50
|
+
*/
|
|
51
|
+
readonly queryId: string;
|
|
52
|
+
/**
|
|
53
|
+
* The query filter (WHERE clause). Given request parameters, the filter will determine whether or not this query returns a row.
|
|
54
|
+
*
|
|
55
|
+
* undefined if the clause is not valid.
|
|
56
|
+
*/
|
|
57
|
+
readonly filter: ParameterValueClause | undefined;
|
|
58
|
+
readonly errors: SqlRuleError[];
|
|
59
|
+
constructor(options: StaticSqlParameterQueryOptions);
|
|
25
60
|
getStaticBucketDescriptions(parameters: RequestParameters): BucketDescription[];
|
|
26
61
|
get hasAuthenticatedBucketParameters(): boolean;
|
|
27
62
|
get usesUnauthenticatedRequestParameters(): boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { DEFAULT_BUCKET_PRIORITY } from './BucketDescription.js';
|
|
1
2
|
import { SqlRuleError } from './errors.js';
|
|
2
3
|
import { SqlTools } from './sql_filters.js';
|
|
3
4
|
import { checkUnsupportedFeatures, isClauseError, isParameterValueClause, sqliteBool } from './sql_support.js';
|
|
4
5
|
import { getBucketId, isJsonValue } from './utils.js';
|
|
5
|
-
import { defaultBucketPriority } from './BucketDescription.js';
|
|
6
6
|
/**
|
|
7
7
|
* Represents a bucket parameter query without any tables, e.g.:
|
|
8
8
|
*
|
|
@@ -10,41 +10,34 @@ import { defaultBucketPriority } from './BucketDescription.js';
|
|
|
10
10
|
* SELECT token_parameters.user_id as user_id WHERE token_parameters.is_admin
|
|
11
11
|
*/
|
|
12
12
|
export class StaticSqlParameterQuery {
|
|
13
|
-
static fromSql(
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
static fromSql(descriptorName, sql, q, options, queryId) {
|
|
14
|
+
let errors = [];
|
|
15
|
+
errors.push(...checkUnsupportedFeatures(sql, q));
|
|
16
16
|
const tools = new SqlTools({
|
|
17
17
|
table: undefined,
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
parameterTables: ['token_parameters', 'user_parameters'],
|
|
19
|
+
supportsParameterExpressions: true,
|
|
20
20
|
sql
|
|
21
21
|
});
|
|
22
22
|
const where = q.where;
|
|
23
23
|
const filter = tools.compileParameterValueExtractor(where);
|
|
24
24
|
const columns = q.columns ?? [];
|
|
25
|
-
const
|
|
25
|
+
const bucketParameters = (q.columns ?? [])
|
|
26
26
|
.map((column) => tools.getOutputName(column))
|
|
27
27
|
.filter((c) => !tools.isBucketPriorityParameter(c));
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
query.bucket_parameters = bucket_parameters;
|
|
31
|
-
query.columns = columns;
|
|
32
|
-
query.tools = tools;
|
|
33
|
-
query.priority = options?.priority;
|
|
34
|
-
if (!isClauseError(filter)) {
|
|
35
|
-
query.filter = filter;
|
|
36
|
-
}
|
|
28
|
+
let priority = options?.priority;
|
|
29
|
+
let parameterExtractors = {};
|
|
37
30
|
for (let column of columns) {
|
|
38
31
|
if (column.alias != null) {
|
|
39
32
|
tools.checkSpecificNameCase(column.alias);
|
|
40
33
|
}
|
|
41
34
|
const name = tools.getSpecificOutputName(column);
|
|
42
35
|
if (tools.isBucketPriorityParameter(name)) {
|
|
43
|
-
if (
|
|
44
|
-
|
|
36
|
+
if (priority !== undefined) {
|
|
37
|
+
errors.push(new SqlRuleError('Cannot set priority multiple times.', sql));
|
|
45
38
|
continue;
|
|
46
39
|
}
|
|
47
|
-
|
|
40
|
+
priority = tools.extractBucketPriority(column.expr);
|
|
48
41
|
continue;
|
|
49
42
|
}
|
|
50
43
|
const extractor = tools.compileParameterValueExtractor(column.expr);
|
|
@@ -52,9 +45,19 @@ export class StaticSqlParameterQuery {
|
|
|
52
45
|
// Error logged already
|
|
53
46
|
continue;
|
|
54
47
|
}
|
|
55
|
-
|
|
48
|
+
parameterExtractors[name] = extractor;
|
|
56
49
|
}
|
|
57
|
-
|
|
50
|
+
errors.push(...tools.errors);
|
|
51
|
+
const query = new StaticSqlParameterQuery({
|
|
52
|
+
sql,
|
|
53
|
+
descriptorName,
|
|
54
|
+
bucketParameters,
|
|
55
|
+
parameterExtractors,
|
|
56
|
+
priority: priority ?? DEFAULT_BUCKET_PRIORITY,
|
|
57
|
+
filter: isClauseError(filter) ? undefined : filter,
|
|
58
|
+
queryId,
|
|
59
|
+
errors
|
|
60
|
+
});
|
|
58
61
|
if (query.usesDangerousRequestParameters && !options?.accept_potentially_dangerous_queries) {
|
|
59
62
|
let err = new SqlRuleError("Potentially dangerous query based on parameters set by the client. The client can send any value for these parameters so it's not a good place to do authorization.", sql);
|
|
60
63
|
err.type = 'warning';
|
|
@@ -62,17 +65,52 @@ export class StaticSqlParameterQuery {
|
|
|
62
65
|
}
|
|
63
66
|
return query;
|
|
64
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Raw source sql query, for debugging purposes.
|
|
70
|
+
*/
|
|
65
71
|
sql;
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Matches the keys in `bucketParameters`.
|
|
74
|
+
*
|
|
75
|
+
* This is used to map request parameters -> bucket parameters.
|
|
76
|
+
*/
|
|
77
|
+
parameterExtractors;
|
|
68
78
|
priority;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
79
|
+
/**
|
|
80
|
+
* Bucket definition name.
|
|
81
|
+
*/
|
|
82
|
+
descriptorName;
|
|
83
|
+
/**
|
|
84
|
+
* _Output_ bucket parameters, excluding the `bucket.` prefix.
|
|
85
|
+
*
|
|
86
|
+
* Each one will be present in the `parameterExtractors` map.
|
|
87
|
+
*/
|
|
88
|
+
bucketParameters;
|
|
89
|
+
/**
|
|
90
|
+
* Unique identifier for this query within a bucket definition.
|
|
91
|
+
*
|
|
92
|
+
* Typically auto-generated based on query order.
|
|
93
|
+
*
|
|
94
|
+
* This is not used directly, but we keep this to match behavior of other parameter queries.
|
|
95
|
+
*/
|
|
96
|
+
queryId;
|
|
97
|
+
/**
|
|
98
|
+
* The query filter (WHERE clause). Given request parameters, the filter will determine whether or not this query returns a row.
|
|
99
|
+
*
|
|
100
|
+
* undefined if the clause is not valid.
|
|
101
|
+
*/
|
|
74
102
|
filter;
|
|
75
|
-
errors
|
|
103
|
+
errors;
|
|
104
|
+
constructor(options) {
|
|
105
|
+
this.sql = options.sql;
|
|
106
|
+
this.parameterExtractors = options.parameterExtractors;
|
|
107
|
+
this.priority = options.priority;
|
|
108
|
+
this.descriptorName = options.descriptorName;
|
|
109
|
+
this.bucketParameters = options.bucketParameters;
|
|
110
|
+
this.queryId = options.queryId;
|
|
111
|
+
this.filter = options.filter;
|
|
112
|
+
this.errors = options.errors ?? [];
|
|
113
|
+
}
|
|
76
114
|
getStaticBucketDescriptions(parameters) {
|
|
77
115
|
if (this.filter == null) {
|
|
78
116
|
// Error in filter clause
|
|
@@ -83,8 +121,8 @@ export class StaticSqlParameterQuery {
|
|
|
83
121
|
return [];
|
|
84
122
|
}
|
|
85
123
|
let result = {};
|
|
86
|
-
for (let name of this.
|
|
87
|
-
const value = this.
|
|
124
|
+
for (let name of this.bucketParameters) {
|
|
125
|
+
const value = this.parameterExtractors[name].lookupParameterValue(parameters);
|
|
88
126
|
if (isJsonValue(value)) {
|
|
89
127
|
result[`bucket.${name}`] = value;
|
|
90
128
|
}
|
|
@@ -96,24 +134,24 @@ export class StaticSqlParameterQuery {
|
|
|
96
134
|
}
|
|
97
135
|
return [
|
|
98
136
|
{
|
|
99
|
-
bucket: getBucketId(this.
|
|
100
|
-
priority: this.priority
|
|
137
|
+
bucket: getBucketId(this.descriptorName, this.bucketParameters, result),
|
|
138
|
+
priority: this.priority
|
|
101
139
|
}
|
|
102
140
|
];
|
|
103
141
|
}
|
|
104
142
|
get hasAuthenticatedBucketParameters() {
|
|
105
143
|
// select where request.jwt() ->> 'role' == 'authorized'
|
|
106
144
|
// we do not count this as a sufficient check
|
|
107
|
-
// const authenticatedFilter = this.filter
|
|
145
|
+
// const authenticatedFilter = this.filter.usesAuthenticatedRequestParameters;
|
|
108
146
|
// select request.user_id() as user_id
|
|
109
|
-
const authenticatedExtractor = Object.values(this.
|
|
147
|
+
const authenticatedExtractor = Object.values(this.parameterExtractors).find((clause) => isParameterValueClause(clause) && clause.usesAuthenticatedRequestParameters) != null;
|
|
110
148
|
return authenticatedExtractor;
|
|
111
149
|
}
|
|
112
150
|
get usesUnauthenticatedRequestParameters() {
|
|
113
151
|
// select where request.parameters() ->> 'include_comments'
|
|
114
152
|
const unauthenticatedFilter = this.filter?.usesUnauthenticatedRequestParameters;
|
|
115
153
|
// select request.parameters() ->> 'project_id'
|
|
116
|
-
const unauthenticatedExtractor = Object.values(this.
|
|
154
|
+
const unauthenticatedExtractor = Object.values(this.parameterExtractors).find((clause) => isParameterValueClause(clause) && clause.usesUnauthenticatedRequestParameters) != null;
|
|
117
155
|
return unauthenticatedFilter || unauthenticatedExtractor;
|
|
118
156
|
}
|
|
119
157
|
get usesDangerousRequestParameters() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticSqlParameterQuery.js","sourceRoot":"","sources":["../src/StaticSqlParameterQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE/G,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"StaticSqlParameterQuery.js","sourceRoot":"","sources":["../src/StaticSqlParameterQuery.ts"],"names":[],"mappings":"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"}
|
package/dist/TablePattern.js
CHANGED
|
@@ -41,10 +41,10 @@ export class TablePattern {
|
|
|
41
41
|
return false;
|
|
42
42
|
}
|
|
43
43
|
if (this.isWildcard) {
|
|
44
|
-
return table.
|
|
44
|
+
return table.name.startsWith(this.tablePrefix);
|
|
45
45
|
}
|
|
46
46
|
else {
|
|
47
|
-
return this.tablePattern == table.
|
|
47
|
+
return this.tablePattern == table.name;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
suffix(table) {
|
package/dist/TablePattern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TablePattern.js","sourceRoot":"","sources":["../src/TablePattern.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,YAAY;IACP,aAAa,CAAS;IAEtB,MAAM,CAAS;IACf,YAAY,CAAS;IAErC,YAAY,MAAc,EAAE,YAAoB;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,IAAI;QACN,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,KAA2B;QACjC,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"TablePattern.js","sourceRoot":"","sources":["../src/TablePattern.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,YAAY;IACP,aAAa,CAAS;IAEtB,MAAM,CAAS;IACf,YAAY,CAAS;IAErC,YAAY,MAAc,EAAE,YAAoB;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,IAAI;QACN,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,KAA2B;QACjC,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
import { FromCall,
|
|
1
|
+
import { FromCall, SelectFromStatement } from 'pgsql-ast-parser';
|
|
2
2
|
import { SqlRuleError } from './errors.js';
|
|
3
|
-
import { SqlTools } from './sql_filters.js';
|
|
4
3
|
import { TableValuedFunction } from './TableValuedFunctions.js';
|
|
5
4
|
import { ParameterValueClause, QueryParseOptions, RequestParameters } from './types.js';
|
|
6
5
|
import { BucketDescription, BucketPriority } from './BucketDescription.js';
|
|
6
|
+
export interface TableValuedFunctionSqlParameterQueryOptions {
|
|
7
|
+
sql: string;
|
|
8
|
+
parameterExtractors: Record<string, ParameterValueClause>;
|
|
9
|
+
priority: BucketPriority;
|
|
10
|
+
descriptorName: string;
|
|
11
|
+
bucketParameters: string[];
|
|
12
|
+
queryId: string;
|
|
13
|
+
filter: ParameterValueClause | undefined;
|
|
14
|
+
callClause: ParameterValueClause | undefined;
|
|
15
|
+
function: TableValuedFunction;
|
|
16
|
+
callTableName: string;
|
|
17
|
+
errors: SqlRuleError[];
|
|
18
|
+
}
|
|
7
19
|
/**
|
|
8
20
|
* Represents a parameter query using a table-valued function.
|
|
9
21
|
*
|
|
@@ -14,21 +26,62 @@ import { BucketDescription, BucketPriority } from './BucketDescription.js';
|
|
|
14
26
|
* This can currently not be combined with parameter table queries or multiple table-valued functions.
|
|
15
27
|
*/
|
|
16
28
|
export declare class TableValuedFunctionSqlParameterQuery {
|
|
17
|
-
static fromSql(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
static fromSql(descriptorName: string, sql: string, call: FromCall, q: SelectFromStatement, options: QueryParseOptions, queryId: string): TableValuedFunctionSqlParameterQuery;
|
|
30
|
+
/**
|
|
31
|
+
* Raw source sql query, for debugging purposes.
|
|
32
|
+
*/
|
|
33
|
+
readonly sql: string;
|
|
34
|
+
/**
|
|
35
|
+
* Matches the keys in `bucketParameters`.
|
|
36
|
+
*
|
|
37
|
+
* This is used to map (request parameters + individual function call result row) -> bucket parameters.
|
|
38
|
+
*/
|
|
39
|
+
readonly parameterExtractors: Record<string, ParameterValueClause>;
|
|
40
|
+
readonly priority: BucketPriority;
|
|
41
|
+
/**
|
|
42
|
+
* Bucket definition name.
|
|
43
|
+
*/
|
|
44
|
+
readonly descriptorName: string;
|
|
45
|
+
/**
|
|
46
|
+
* _Output_ bucket parameters, excluding the `bucket.` prefix.
|
|
47
|
+
*
|
|
48
|
+
* Each one will be present in the `parameterExtractors` map.
|
|
49
|
+
*/
|
|
50
|
+
readonly bucketParameters: string[];
|
|
51
|
+
/**
|
|
52
|
+
* Unique identifier for this query within a bucket definition.
|
|
53
|
+
*
|
|
54
|
+
* Typically auto-generated based on query order.
|
|
55
|
+
*
|
|
56
|
+
* This is not used directly, but we keep this to match behavior of other parameter queries.
|
|
57
|
+
*/
|
|
58
|
+
readonly queryId: string;
|
|
59
|
+
/**
|
|
60
|
+
* The WHERE clause. This is applied on (request parameters + individual function call result row).
|
|
61
|
+
*
|
|
62
|
+
* This is used to determine whether or not this query returns a row.
|
|
63
|
+
*
|
|
64
|
+
* undefined if the clause is not valid.
|
|
65
|
+
*/
|
|
66
|
+
readonly filter: ParameterValueClause | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* This is the argument to the table-valued function. It is evaluated on the request parameters.
|
|
69
|
+
*
|
|
70
|
+
* Only a single argument is supported currently.
|
|
71
|
+
*/
|
|
72
|
+
readonly callClause: ParameterValueClause | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* The table-valued function that will be called, with the output of `callClause`.
|
|
75
|
+
*/
|
|
76
|
+
readonly function: TableValuedFunction;
|
|
77
|
+
/**
|
|
78
|
+
* The name or alias of the "table" with the function call results.
|
|
79
|
+
*
|
|
80
|
+
* Only used internally.
|
|
81
|
+
*/
|
|
82
|
+
readonly callTableName: string;
|
|
83
|
+
readonly errors: SqlRuleError[];
|
|
84
|
+
constructor(options: TableValuedFunctionSqlParameterQueryOptions);
|
|
32
85
|
getStaticBucketDescriptions(parameters: RequestParameters): BucketDescription[];
|
|
33
86
|
private getIndividualBucketDescription;
|
|
34
87
|
get hasAuthenticatedBucketParameters(): boolean;
|