prostgles-server 2.0.173 → 2.0.176
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/.vscode/settings.json +3 -0
- package/dist/AuthHandler.d.ts +13 -12
- package/dist/AuthHandler.d.ts.map +1 -1
- package/dist/AuthHandler.js +5 -2
- package/dist/AuthHandler.js.map +1 -1
- package/dist/DBSchemaBuilder.d.ts +11 -0
- package/dist/DBSchemaBuilder.d.ts.map +1 -0
- package/dist/DBSchemaBuilder.js +56 -0
- package/dist/DBSchemaBuilder.js.map +1 -0
- package/dist/DboBuilder.d.ts +23 -22
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +36 -61
- package/dist/DboBuilder.js.map +1 -1
- package/dist/FileManager.d.ts +2 -2
- package/dist/FileManager.d.ts.map +1 -1
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/Filtering.js.map +1 -1
- package/dist/Prostgles.d.ts +25 -257
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +12 -376
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager.d.ts +6 -5
- package/dist/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager.js.map +1 -1
- package/dist/PublishParser.d.ts +262 -0
- package/dist/PublishParser.d.ts.map +1 -0
- package/dist/PublishParser.js +391 -0
- package/dist/PublishParser.js.map +1 -0
- package/dist/QueryBuilder.d.ts +20 -4
- package/dist/QueryBuilder.d.ts.map +1 -1
- package/dist/QueryBuilder.js.map +1 -1
- package/dist/TableConfig.d.ts +6 -3
- package/dist/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig.js +28 -1
- package/dist/TableConfig.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/lib/AuthHandler.ts +25 -19
- package/lib/DBSchemaBuilder.ts +91 -0
- package/lib/DboBuilder.ts +84 -98
- package/lib/FileManager.ts +2 -2
- package/lib/Filtering.ts +3 -3
- package/lib/Prostgles.ts +33 -704
- package/lib/PubSubManager.ts +6 -5
- package/lib/PublishParser.ts +723 -0
- package/lib/QueryBuilder.ts +6 -5
- package/lib/TableConfig.ts +36 -5
- package/lib/index.ts +4 -4
- package/package.json +2 -2
- package/tests/client/PID.txt +1 -1
- package/tests/client/index.js +2 -2
- package/tests/client/index.ts +2 -2
- package/tests/client/package-lock.json +15 -15
- package/tests/client/package.json +1 -1
- package/tests/client_only_queries.js +24 -1
- package/tests/client_only_queries.ts +23 -1
- package/tests/isomorphic_queries.js +3 -0
- package/tests/isomorphic_queries.ts +5 -2
- package/tests/server/DBoGenerated.d.ts +428 -286
- package/tests/server/index.js +1 -14
- package/tests/server/index.ts +5 -19
- package/tests/server/package-lock.json +3 -3
package/dist/Prostgles.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.isSuperUser = exports.
|
|
7
|
+
exports.isSuperUser = exports.Prostgles = exports.JOIN_TYPES = exports.TABLE_METHODS = void 0;
|
|
8
8
|
const promise = require("bluebird");
|
|
9
9
|
const pgPromise = require("pg-promise");
|
|
10
10
|
const FileManager_1 = require("./FileManager");
|
|
@@ -17,8 +17,9 @@ const utils_1 = require("./utils");
|
|
|
17
17
|
const DboBuilder_1 = require("./DboBuilder");
|
|
18
18
|
const PubSubManager_1 = require("./PubSubManager");
|
|
19
19
|
const prostgles_types_1 = require("prostgles-types");
|
|
20
|
+
const PublishParser_1 = require("./PublishParser");
|
|
20
21
|
const DBEventsManager_1 = require("./DBEventsManager");
|
|
21
|
-
|
|
22
|
+
exports.TABLE_METHODS = ["update", "find", "findOne", "insert", "delete", "upsert"];
|
|
22
23
|
function getDbConnection(dbConnection, options, debugQueries = false, onNotice) {
|
|
23
24
|
let pgp = pgPromise({
|
|
24
25
|
promiseLib: promise,
|
|
@@ -104,25 +105,23 @@ class Prostgles {
|
|
|
104
105
|
// let needType = this.publishRawSQL && typeof this.publishRawSQL === "function";
|
|
105
106
|
// let DATA_TYPES = !needType? [] : await this.db.any("SELECT oid, typname FROM pg_type");
|
|
106
107
|
// let USER_TABLES = !needType? [] : await this.db.any("SELECT relid, relname FROM pg_catalog.pg_statio_user_tables");
|
|
107
|
-
|
|
108
|
+
const { dbo, db, pgp, publishParser } = this;
|
|
109
|
+
let fullSchema;
|
|
108
110
|
let publishValidationError;
|
|
109
111
|
let rawSQL = false;
|
|
110
|
-
const { dbo, db, pgp, publishParser } = this;
|
|
111
112
|
try {
|
|
112
113
|
if (!publishParser)
|
|
113
114
|
throw "publishParser undefined";
|
|
114
|
-
|
|
115
|
+
fullSchema = await publishParser.getSchemaFromPublish(socket);
|
|
115
116
|
}
|
|
116
117
|
catch (e) {
|
|
117
118
|
publishValidationError = "Server Error: PUBLISH VALIDATION ERROR";
|
|
118
119
|
console.error(`\nProstgles PUBLISH VALIDATION ERROR (after socket connected):\n ->`, e);
|
|
119
120
|
}
|
|
120
121
|
socket.prostgles = socket.prostgles || {};
|
|
121
|
-
socket.prostgles.schema = schema;
|
|
122
|
+
socket.prostgles.schema = fullSchema?.schema;
|
|
122
123
|
/* RUN Raw sql from client IF PUBLISHED
|
|
123
124
|
*/
|
|
124
|
-
let fullSchema = [];
|
|
125
|
-
let allTablesViews = this.dboBuilder.tablesOrViews ?? [];
|
|
126
125
|
if (this.opts.publishRawSQL && typeof this.opts.publishRawSQL === "function") {
|
|
127
126
|
const canRunSQL = async () => {
|
|
128
127
|
const publishParams = await this.publishParser?.getPublishParams({ socket });
|
|
@@ -142,14 +141,14 @@ class Prostgles {
|
|
|
142
141
|
});
|
|
143
142
|
if (db) {
|
|
144
143
|
// let allTablesViews = await db.any(STEP2_GET_ALL_TABLES_AND_COLUMNS);
|
|
145
|
-
fullSchema = allTablesViews;
|
|
144
|
+
// fullSchema = allTablesViews;
|
|
146
145
|
rawSQL = true;
|
|
147
146
|
}
|
|
148
147
|
else
|
|
149
148
|
console.error("db missing");
|
|
150
149
|
}
|
|
151
150
|
}
|
|
152
|
-
|
|
151
|
+
const { schema, tables } = fullSchema ?? { schema: {}, tables: [] };
|
|
153
152
|
let joinTables2 = [];
|
|
154
153
|
if (this.opts.joins) {
|
|
155
154
|
// joinTables = Array.from(new Set(flat(this.dboBuilder.getJoins().map(j => j.tables)).filter(t => schema[t])));
|
|
@@ -165,7 +164,7 @@ class Prostgles {
|
|
|
165
164
|
const clientSchema = {
|
|
166
165
|
schema,
|
|
167
166
|
methods: (0, prostgles_types_1.getKeys)(methods),
|
|
168
|
-
|
|
167
|
+
tableSchema: tables,
|
|
169
168
|
rawSQL,
|
|
170
169
|
joinTables: joinTables2,
|
|
171
170
|
auth,
|
|
@@ -354,7 +353,7 @@ class Prostgles {
|
|
|
354
353
|
/* 3.9 Check auth config */
|
|
355
354
|
this.authHandler = new AuthHandler_1.default(this);
|
|
356
355
|
await this.authHandler.init();
|
|
357
|
-
this.publishParser = new PublishParser(this.opts.publish, this.opts.publishMethods, this.opts.publishRawSQL, this.dbo, this.db, this);
|
|
356
|
+
this.publishParser = new PublishParser_1.PublishParser(this.opts.publish, this.opts.publishMethods, this.opts.publishRawSQL, this.dbo, this.db, this);
|
|
358
357
|
this.dboBuilder.publishParser = this.publishParser;
|
|
359
358
|
/* 4. Set publish and auth listeners */
|
|
360
359
|
await this.setSocketEvents();
|
|
@@ -431,7 +430,7 @@ class Prostgles {
|
|
|
431
430
|
this.checkDb();
|
|
432
431
|
if (!this.dbo)
|
|
433
432
|
throw "dbo missing";
|
|
434
|
-
let publishParser = new PublishParser(this.opts.publish, this.opts.publishMethods, this.opts.publishRawSQL, this.dbo, this.db, this);
|
|
433
|
+
let publishParser = new PublishParser_1.PublishParser(this.opts.publish, this.opts.publishMethods, this.opts.publishRawSQL, this.dbo, this.db, this);
|
|
435
434
|
this.publishParser = publishParser;
|
|
436
435
|
if (!this.opts.io)
|
|
437
436
|
return;
|
|
@@ -534,80 +533,6 @@ function makeSocketError(cb, err) {
|
|
|
534
533
|
err.toString(), e = { err_msg, err };
|
|
535
534
|
cb(e);
|
|
536
535
|
}
|
|
537
|
-
const RULE_TO_METHODS = [
|
|
538
|
-
{
|
|
539
|
-
rule: "getColumns",
|
|
540
|
-
sqlRule: "select",
|
|
541
|
-
methods: prostgles_types_1.RULE_METHODS.getColumns,
|
|
542
|
-
no_limits: true,
|
|
543
|
-
allowed_params: [],
|
|
544
|
-
table_only: false,
|
|
545
|
-
hint: ` expecting false | true | undefined`
|
|
546
|
-
},
|
|
547
|
-
{
|
|
548
|
-
rule: "getInfo",
|
|
549
|
-
sqlRule: "select",
|
|
550
|
-
methods: prostgles_types_1.RULE_METHODS.getInfo,
|
|
551
|
-
no_limits: true,
|
|
552
|
-
allowed_params: [],
|
|
553
|
-
table_only: false,
|
|
554
|
-
hint: ` expecting false | true | undefined`
|
|
555
|
-
},
|
|
556
|
-
{
|
|
557
|
-
rule: "insert",
|
|
558
|
-
sqlRule: "insert",
|
|
559
|
-
methods: prostgles_types_1.RULE_METHODS.insert,
|
|
560
|
-
no_limits: { fields: "*" },
|
|
561
|
-
table_only: true,
|
|
562
|
-
allowed_params: ["fields", "forcedData", "returningFields", "validate", "preValidate"],
|
|
563
|
-
hint: ` expecting "*" | true | { fields: string | string[] | {} }`
|
|
564
|
-
},
|
|
565
|
-
{
|
|
566
|
-
rule: "update",
|
|
567
|
-
sqlRule: "update",
|
|
568
|
-
methods: prostgles_types_1.RULE_METHODS.update,
|
|
569
|
-
no_limits: { fields: "*", filterFields: "*", returningFields: "*" },
|
|
570
|
-
table_only: true,
|
|
571
|
-
allowed_params: ["fields", "filterFields", "forcedFilter", "forcedData", "returningFields", "validate", "dynamicFields"],
|
|
572
|
-
hint: ` expecting "*" | true | { fields: string | string[] | {} }`
|
|
573
|
-
},
|
|
574
|
-
{
|
|
575
|
-
rule: "select",
|
|
576
|
-
sqlRule: "select",
|
|
577
|
-
methods: prostgles_types_1.RULE_METHODS.select,
|
|
578
|
-
no_limits: { fields: "*", filterFields: "*" },
|
|
579
|
-
table_only: false,
|
|
580
|
-
allowed_params: ["fields", "filterFields", "forcedFilter", "validate", "maxLimit"],
|
|
581
|
-
hint: ` expecting "*" | true | { fields: ( string | string[] | {} ) }`
|
|
582
|
-
},
|
|
583
|
-
{
|
|
584
|
-
rule: "delete",
|
|
585
|
-
sqlRule: "delete",
|
|
586
|
-
methods: prostgles_types_1.RULE_METHODS.delete,
|
|
587
|
-
no_limits: { filterFields: "*" },
|
|
588
|
-
table_only: true,
|
|
589
|
-
allowed_params: ["filterFields", "forcedFilter", "returningFields", "validate"],
|
|
590
|
-
hint: ` expecting "*" | true | { filterFields: ( string | string[] | {} ) } \n Will use "select", "update", "delete" and "insert" rules`
|
|
591
|
-
},
|
|
592
|
-
{
|
|
593
|
-
rule: "sync",
|
|
594
|
-
sqlRule: "select",
|
|
595
|
-
methods: prostgles_types_1.RULE_METHODS.sync,
|
|
596
|
-
no_limits: null,
|
|
597
|
-
table_only: true,
|
|
598
|
-
allowed_params: ["id_fields", "synced_field", "sync_type", "allow_delete", "throttle", "batch_size"],
|
|
599
|
-
hint: ` expecting "*" | true | { id_fields: string[], synced_field: string }`
|
|
600
|
-
},
|
|
601
|
-
{
|
|
602
|
-
rule: "subscribe",
|
|
603
|
-
sqlRule: "select",
|
|
604
|
-
methods: prostgles_types_1.RULE_METHODS.subscribe,
|
|
605
|
-
no_limits: { throttle: 0 },
|
|
606
|
-
table_only: true,
|
|
607
|
-
allowed_params: ["throttle"],
|
|
608
|
-
hint: ` expecting "*" | true | { throttle: number } \n Will use "select" rules`
|
|
609
|
-
}
|
|
610
|
-
];
|
|
611
536
|
// const ALL_PUBLISH_METHODS = ["update", "upsert", "delete", "insert", "find", "findOne", "subscribe", "unsubscribe", "sync", "unsync", "remove"];
|
|
612
537
|
// const ALL_PUBLISH_METHODS = RULE_TO_METHODS.map(r => r.methods).flat();
|
|
613
538
|
// export function flat(arr){
|
|
@@ -617,295 +542,6 @@ const RULE_TO_METHODS = [
|
|
|
617
542
|
// }, []);
|
|
618
543
|
// return res;
|
|
619
544
|
// }
|
|
620
|
-
class PublishParser {
|
|
621
|
-
constructor(publish, publishMethods, publishRawSQL, dbo, db, prostgles) {
|
|
622
|
-
this.publish = publish;
|
|
623
|
-
this.publishMethods = publishMethods;
|
|
624
|
-
this.publishRawSQL = publishRawSQL;
|
|
625
|
-
this.dbo = dbo;
|
|
626
|
-
this.db = db;
|
|
627
|
-
this.prostgles = prostgles;
|
|
628
|
-
if (!this.dbo || !this.publish)
|
|
629
|
-
throw "INTERNAL ERROR: dbo and/or publish missing";
|
|
630
|
-
}
|
|
631
|
-
async getPublishParams(localParams, clientInfo) {
|
|
632
|
-
return {
|
|
633
|
-
...(clientInfo || await this.prostgles.authHandler?.getClientInfo(localParams)),
|
|
634
|
-
dbo: this.dbo,
|
|
635
|
-
db: this.db,
|
|
636
|
-
socket: localParams.socket
|
|
637
|
-
};
|
|
638
|
-
}
|
|
639
|
-
async getMethods(socket) {
|
|
640
|
-
let methods = {};
|
|
641
|
-
const publishParams = await this.getPublishParams({ socket });
|
|
642
|
-
const _methods = await applyParamsIfFunc(this.publishMethods, publishParams);
|
|
643
|
-
if (_methods && Object.keys(_methods).length) {
|
|
644
|
-
(0, prostgles_types_1.getKeys)(_methods).map(key => {
|
|
645
|
-
if (_methods[key] && (typeof _methods[key] === "function" || typeof _methods[key].then === "function")) {
|
|
646
|
-
//@ts-ignore
|
|
647
|
-
methods[key] = _methods[key];
|
|
648
|
-
}
|
|
649
|
-
else {
|
|
650
|
-
throw `invalid publishMethods item -> ${key} \n Expecting a function or promise`;
|
|
651
|
-
}
|
|
652
|
-
});
|
|
653
|
-
}
|
|
654
|
-
return methods;
|
|
655
|
-
}
|
|
656
|
-
/**
|
|
657
|
-
* Parses the first level of publish. (If false then nothing if * then all tables and views)
|
|
658
|
-
* @param socket
|
|
659
|
-
* @param user
|
|
660
|
-
*/
|
|
661
|
-
async getPublish(localParams, clientInfo) {
|
|
662
|
-
const publishParams = await this.getPublishParams(localParams, clientInfo);
|
|
663
|
-
let _publish = await applyParamsIfFunc(this.publish, publishParams);
|
|
664
|
-
if (_publish === "*") {
|
|
665
|
-
let publish = {};
|
|
666
|
-
this.prostgles.dboBuilder.tablesOrViews?.map(tov => {
|
|
667
|
-
publish[tov.name] = "*";
|
|
668
|
-
});
|
|
669
|
-
return publish;
|
|
670
|
-
}
|
|
671
|
-
return _publish;
|
|
672
|
-
}
|
|
673
|
-
async getValidatedRequestRuleWusr({ tableName, command, localParams }) {
|
|
674
|
-
const clientInfo = await this.prostgles.authHandler.getClientInfo(localParams);
|
|
675
|
-
return await this.getValidatedRequestRule({ tableName, command, localParams }, clientInfo);
|
|
676
|
-
}
|
|
677
|
-
async getValidatedRequestRule({ tableName, command, localParams }, clientInfo) {
|
|
678
|
-
if (!this.dbo)
|
|
679
|
-
throw "INTERNAL ERROR: dbo is missing";
|
|
680
|
-
if (!command || !tableName)
|
|
681
|
-
throw "command OR tableName are missing";
|
|
682
|
-
let rtm = RULE_TO_METHODS.find(rtms => rtms.methods.includes(command));
|
|
683
|
-
if (!rtm) {
|
|
684
|
-
throw "Invalid command: " + command;
|
|
685
|
-
}
|
|
686
|
-
/* Must be local request -> allow everything */
|
|
687
|
-
if (!localParams || (!localParams.socket && !localParams.httpReq)) {
|
|
688
|
-
return RULE_TO_METHODS.reduce((a, v) => ({
|
|
689
|
-
...a,
|
|
690
|
-
[v.rule]: v.no_limits
|
|
691
|
-
}), {});
|
|
692
|
-
}
|
|
693
|
-
/* Must be from socket. Must have a publish */
|
|
694
|
-
if (!this.publish)
|
|
695
|
-
throw "publish is missing";
|
|
696
|
-
/* Get any publish errors for socket */
|
|
697
|
-
const schm = localParams?.socket?.prostgles?.schema?.[tableName]?.[command];
|
|
698
|
-
if (schm && schm.err)
|
|
699
|
-
throw schm.err;
|
|
700
|
-
let table_rule = await this.getTableRules({ tableName, localParams }, clientInfo);
|
|
701
|
-
if (!table_rule)
|
|
702
|
-
throw "Invalid or disallowed table: " + tableName;
|
|
703
|
-
if (command === "upsert") {
|
|
704
|
-
if (!table_rule.update || !table_rule.insert) {
|
|
705
|
-
throw `Invalid or disallowed command: upsert`;
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
if (rtm && table_rule && table_rule[rtm.rule]) {
|
|
709
|
-
return table_rule;
|
|
710
|
-
}
|
|
711
|
-
else
|
|
712
|
-
throw `Invalid or disallowed command: ${tableName}.${command}`;
|
|
713
|
-
}
|
|
714
|
-
async getTableRules({ tableName, localParams }, clientInfo) {
|
|
715
|
-
try {
|
|
716
|
-
if (!localParams || !tableName)
|
|
717
|
-
throw "publish OR socket OR dbo OR tableName are missing";
|
|
718
|
-
let _publish = await this.getPublish(localParams, clientInfo);
|
|
719
|
-
let table_rules = _publish[tableName]; // applyParamsIfFunc(_publish[tableName], localParams, this.dbo, this.db, user);
|
|
720
|
-
/* Get view or table specific rules */
|
|
721
|
-
const tHandler = this.dbo[tableName];
|
|
722
|
-
const is_view = tHandler.is_view, MY_RULES = RULE_TO_METHODS.filter(r => !is_view || !r.table_only);
|
|
723
|
-
// if(tableName === "various") console.warn(1033, MY_RULES)
|
|
724
|
-
if (table_rules) {
|
|
725
|
-
/* All methods allowed. Add no limits for table rules */
|
|
726
|
-
if ([true, "*"].includes(table_rules)) {
|
|
727
|
-
table_rules = {};
|
|
728
|
-
MY_RULES.map(r => {
|
|
729
|
-
/** Check PG User privileges */
|
|
730
|
-
if (tHandler.tableOrViewInfo.privileges[r.sqlRule]) {
|
|
731
|
-
// @ts-ignore
|
|
732
|
-
table_rules[r.rule] = { ...r.no_limits };
|
|
733
|
-
}
|
|
734
|
-
});
|
|
735
|
-
// if(tableName === "various") console.warn(1042, table_rules)
|
|
736
|
-
}
|
|
737
|
-
/* Add missing implied rules */
|
|
738
|
-
MY_RULES.map(r => {
|
|
739
|
-
if (["getInfo", "getColumns"].includes(r.rule) && ![null, false, 0].includes(table_rules[r.rule])) {
|
|
740
|
-
// @ts-ignore
|
|
741
|
-
table_rules[r.rule] = r.no_limits;
|
|
742
|
-
return;
|
|
743
|
-
}
|
|
744
|
-
/* Add nested properties for fully allowed rules */
|
|
745
|
-
// @ts-ignore
|
|
746
|
-
if ([true, "*"].includes(table_rules[r.rule]) && r.no_limits) {
|
|
747
|
-
// @ts-ignore
|
|
748
|
-
table_rules[r.rule] = Object.assign({}, r.no_limits);
|
|
749
|
-
}
|
|
750
|
-
// @ts-ignore
|
|
751
|
-
if (table_rules[r.rule]) {
|
|
752
|
-
/* Add implied methods if not falsy */
|
|
753
|
-
// @ts-ignore
|
|
754
|
-
r.methods.forEach(method => {
|
|
755
|
-
// @ts-ignore
|
|
756
|
-
if (table_rules[method] === undefined) {
|
|
757
|
-
const publishedTable = table_rules;
|
|
758
|
-
if (method === "updateBatch" && !publishedTable.update) {
|
|
759
|
-
}
|
|
760
|
-
else if (method === "upsert" && (!publishedTable.update || !publishedTable.insert)) {
|
|
761
|
-
// return;
|
|
762
|
-
}
|
|
763
|
-
else {
|
|
764
|
-
// @ts-ignore
|
|
765
|
-
table_rules[method] = {};
|
|
766
|
-
}
|
|
767
|
-
}
|
|
768
|
-
});
|
|
769
|
-
}
|
|
770
|
-
// if(tableName === "v_various") console.warn(table_rules, r)
|
|
771
|
-
});
|
|
772
|
-
/*
|
|
773
|
-
Add defaults
|
|
774
|
-
Check for invalid params
|
|
775
|
-
*/
|
|
776
|
-
if (table_rules && (0, prostgles_types_1.getKeys)(table_rules).length && table_rules !== "*") {
|
|
777
|
-
const ruleKeys = (0, prostgles_types_1.getKeys)(table_rules);
|
|
778
|
-
// @ts-ignore
|
|
779
|
-
ruleKeys.filter(m => table_rules[m])
|
|
780
|
-
.find(method => {
|
|
781
|
-
let rm = MY_RULES.find(r => r.rule === method || r.methods.includes(method));
|
|
782
|
-
if (!rm) {
|
|
783
|
-
throw `Invalid rule in publish.${tableName} -> ${method} \nExpecting any of: ${MY_RULES.flatMap(r => [r.rule, ...r.methods]).join(", ")}`;
|
|
784
|
-
}
|
|
785
|
-
/** Check user privileges */
|
|
786
|
-
if (!tHandler.tableOrViewInfo.privileges[rm.sqlRule]) {
|
|
787
|
-
// @ts-ignore
|
|
788
|
-
delete table_rules[method];
|
|
789
|
-
return;
|
|
790
|
-
}
|
|
791
|
-
/* Check RULES for invalid params */
|
|
792
|
-
/* Methods do not have params -> They use them from rules */
|
|
793
|
-
if (method === rm.rule) {
|
|
794
|
-
// @ts-ignore
|
|
795
|
-
let method_params = (0, prostgles_types_1.getKeys)(table_rules[method]);
|
|
796
|
-
let iparam = method_params.find(p => !rm?.allowed_params.includes(p));
|
|
797
|
-
if (iparam) {
|
|
798
|
-
throw `Invalid setting in publish.${tableName}.${method} -> ${iparam}. \n Expecting any of: ${rm.allowed_params.join(", ")}`;
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
/* Add default params (if missing) */
|
|
802
|
-
// @ts-ignore
|
|
803
|
-
if (method === "sync") {
|
|
804
|
-
// @ts-ignore
|
|
805
|
-
if ([true, "*"].includes(table_rules[method])) {
|
|
806
|
-
throw "Invalid sync rule. Expecting { id_fields: string[], synced_field: string } ";
|
|
807
|
-
}
|
|
808
|
-
if (typeof (0, utils_1.get)(table_rules, [method, "throttle"]) !== "number") {
|
|
809
|
-
// @ts-ignore
|
|
810
|
-
table_rules[method].throttle = 100;
|
|
811
|
-
}
|
|
812
|
-
if (typeof (0, utils_1.get)(table_rules, [method, "batch_size"]) !== "number") {
|
|
813
|
-
// @ts-ignore
|
|
814
|
-
table_rules[method].batch_size = PubSubManager_1.DEFAULT_SYNC_BATCH_SIZE;
|
|
815
|
-
}
|
|
816
|
-
}
|
|
817
|
-
/* Enable subscribe if not explicitly disabled */
|
|
818
|
-
// @ts-ignore
|
|
819
|
-
if (method === "select" && !ruleKeys.includes("subscribe")) {
|
|
820
|
-
const sr = MY_RULES.find(r => r.rule === "subscribe");
|
|
821
|
-
if (sr) {
|
|
822
|
-
// @ts-ignore
|
|
823
|
-
table_rules[sr.rule] = { ...sr.no_limits };
|
|
824
|
-
// @ts-ignore
|
|
825
|
-
table_rules.subscribeOne = { ...sr.no_limits };
|
|
826
|
-
}
|
|
827
|
-
}
|
|
828
|
-
});
|
|
829
|
-
}
|
|
830
|
-
}
|
|
831
|
-
return table_rules;
|
|
832
|
-
}
|
|
833
|
-
catch (e) {
|
|
834
|
-
throw e;
|
|
835
|
-
}
|
|
836
|
-
}
|
|
837
|
-
/* Prepares schema for client. Only allowed views and commands will be present */
|
|
838
|
-
async getSchemaFromPublish(socket) {
|
|
839
|
-
let schema = {};
|
|
840
|
-
try {
|
|
841
|
-
/* Publish tables and views based on socket */
|
|
842
|
-
const clientInfo = await this.prostgles.authHandler?.getClientInfo({ socket });
|
|
843
|
-
let _publish = await this.getPublish(socket, clientInfo);
|
|
844
|
-
if (_publish && Object.keys(_publish).length) {
|
|
845
|
-
let txKey = "tx";
|
|
846
|
-
if (!this.prostgles.opts.transactions)
|
|
847
|
-
txKey = "";
|
|
848
|
-
if (typeof this.prostgles.opts.transactions === "string")
|
|
849
|
-
txKey = this.prostgles.opts.transactions;
|
|
850
|
-
const tableNames = Object.keys(_publish).filter(k => !txKey || txKey !== k);
|
|
851
|
-
await Promise.all(tableNames
|
|
852
|
-
.map(async (tableName) => {
|
|
853
|
-
if (!this.dbo[tableName]) {
|
|
854
|
-
throw `Table ${tableName} does not exist
|
|
855
|
-
Expecting one of: ${this.prostgles.dboBuilder.tablesOrViews?.map(tov => tov.name).join(", ")}
|
|
856
|
-
DBO tables: ${Object.keys(this.dbo).filter(k => this.dbo[k].find).join(", ")}
|
|
857
|
-
`;
|
|
858
|
-
}
|
|
859
|
-
const table_rules = await this.getTableRules({ localParams: { socket }, tableName }, clientInfo);
|
|
860
|
-
// if(tableName === "insert_rule") throw {table_rules}
|
|
861
|
-
if (table_rules && Object.keys(table_rules).length) {
|
|
862
|
-
schema[tableName] = {};
|
|
863
|
-
let methods = [];
|
|
864
|
-
if (typeof table_rules === "object") {
|
|
865
|
-
methods = (0, prostgles_types_1.getKeys)(table_rules);
|
|
866
|
-
}
|
|
867
|
-
await Promise.all(methods.filter(m => m !== "select").map(async (method) => {
|
|
868
|
-
if (method === "sync" && table_rules[method]) {
|
|
869
|
-
/* Pass sync info */
|
|
870
|
-
schema[tableName][method] = table_rules[method];
|
|
871
|
-
}
|
|
872
|
-
else if (table_rules[method]) {
|
|
873
|
-
schema[tableName][method] = {};
|
|
874
|
-
/* Test for issues with the publish rules */
|
|
875
|
-
if (TABLE_METHODS.includes(method)) {
|
|
876
|
-
let err = null;
|
|
877
|
-
try {
|
|
878
|
-
let valid_table_command_rules = await this.getValidatedRequestRule({ tableName, command: method, localParams: { socket } }, clientInfo);
|
|
879
|
-
await this.dbo[tableName][method]({}, {}, {}, valid_table_command_rules, { socket, has_rules: true, testRule: true });
|
|
880
|
-
}
|
|
881
|
-
catch (e) {
|
|
882
|
-
err = "INTERNAL PUBLISH ERROR";
|
|
883
|
-
schema[tableName][method] = { err };
|
|
884
|
-
throw `publish.${tableName}.${method}: \n -> ${e}`;
|
|
885
|
-
}
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
}));
|
|
889
|
-
}
|
|
890
|
-
return true;
|
|
891
|
-
}));
|
|
892
|
-
}
|
|
893
|
-
}
|
|
894
|
-
catch (e) {
|
|
895
|
-
console.error("Prostgles \nERRORS IN PUBLISH: ", JSON.stringify(e));
|
|
896
|
-
throw e;
|
|
897
|
-
}
|
|
898
|
-
return schema;
|
|
899
|
-
}
|
|
900
|
-
}
|
|
901
|
-
exports.PublishParser = PublishParser;
|
|
902
|
-
function applyParamsIfFunc(maybeFunc, ...params) {
|
|
903
|
-
if ((maybeFunc !== null && maybeFunc !== undefined) &&
|
|
904
|
-
(typeof maybeFunc === "function" || typeof maybeFunc.then === "function")) {
|
|
905
|
-
return maybeFunc(...params);
|
|
906
|
-
}
|
|
907
|
-
return maybeFunc;
|
|
908
|
-
}
|
|
909
545
|
async function isSuperUser(db) {
|
|
910
546
|
return db.oneOrNone("select usesuper from pg_user where usename = CURRENT_USER;").then(r => r.usesuper);
|
|
911
547
|
}
|
package/dist/Prostgles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Prostgles.js","sourceRoot":"","sources":["../lib/Prostgles.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Prostgles.js","sourceRoot":"","sources":["../lib/Prostgles.ts"],"names":[],"mappings":"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"}
|
package/dist/PubSubManager.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { PostgresNotifListenManager } from "./PostgresNotifListenManager";
|
|
3
|
-
import { TableOrViewInfo, TableInfo,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { TableOrViewInfo, TableInfo, DBHandlerServer, DboBuilder, PRGLIOSocket } from "./DboBuilder";
|
|
4
|
+
import { DB } from "./Prostgles";
|
|
5
|
+
import { SelectParams, FieldFilter, WAL, AnyObject } from "prostgles-types";
|
|
6
6
|
import { ClientExpressData } from "./SyncReplication";
|
|
7
|
+
import { TableRule } from "./PublishParser";
|
|
7
8
|
export declare const asValue: (v: any) => string;
|
|
8
9
|
export declare const DEFAULT_SYNC_BATCH_SIZE = 50;
|
|
9
10
|
export declare const log: (...args: any[]) => void;
|
|
@@ -63,7 +64,7 @@ declare type AddSubscriptionParams = SubscriptionParams & {
|
|
|
63
64
|
export declare type PubSubManagerOptions = {
|
|
64
65
|
dboBuilder: DboBuilder;
|
|
65
66
|
db: DB;
|
|
66
|
-
dbo:
|
|
67
|
+
dbo: DBHandlerServer;
|
|
67
68
|
wsChannelNamePrefix?: string;
|
|
68
69
|
pgChannelName?: string;
|
|
69
70
|
onSchemaChange?: (event: {
|
|
@@ -75,7 +76,7 @@ export declare class PubSubManager {
|
|
|
75
76
|
static DELIMITER: string;
|
|
76
77
|
dboBuilder: DboBuilder;
|
|
77
78
|
db: DB;
|
|
78
|
-
dbo:
|
|
79
|
+
dbo: DBHandlerServer;
|
|
79
80
|
_triggers?: Record<string, string[]>;
|
|
80
81
|
sockets: any;
|
|
81
82
|
subs: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubSubManager.d.ts","sourceRoot":"","sources":["../lib/PubSubManager.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"PubSubManager.d.ts","sourceRoot":"","sources":["../lib/PubSubManager.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAgB,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnH,OAAO,EAAE,EAAE,EAAe,MAAM,aAAa,CAAC;AAM9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAU,GAAG,EAAW,SAAS,EAAW,MAAM,iBAAiB,CAAC;AAEtG,OAAO,EAAE,iBAAiB,EAAY,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,eAAO,MAAM,OAAO,MAAO,GAAG,WAA6B,CAAC;AAC5D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,GAAG,YAAa,GAAG,EAAE,SAIjC,CAAA;AAED,oBAAY,aAAa,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;AAE1D,oBAAY,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,MAAM,EAAE,WAAW,CAAA;KACpB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAA;AAED,aAAK,aAAa,GAAG;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,SAAS,CAAC;IACtB,WAAW,EAAE,SAAS,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,MAAM,EAAE,WAAW,CAAA;KACpB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,aAAK,kBAAkB,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CAEpB,CAAA;AACD,aAAK,qBAAqB,GAAG,kBAAkB,GAAG;IAChD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,oBAAY,oBAAoB,GAAG;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,EAAE,CAAC;IACP,GAAG,EAAE,eAAe,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACtE,CAAA;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,SAAS,SAAiB;IAEjC,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,EAAE,CAAC;IACP,GAAG,EAAE,eAAe,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG;YAAE,CAAC,EAAE,EAAE,MAAM,GAAG;gBAAE,IAAI,EAAE,kBAAkB,EAAE,CAAA;aAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IACzE,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,CAAa;IAEnF,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;IAExD,OAAO;IAkBP,UAAU;;;MAGT;IACD,aAAa;;0BAEO,MAAM;MAIzB;IAED,OAAO,CAAC,KAAK,CAAC,CAAS;IAEvB,mBAAmB,SAAa;IAChC,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAoB1C,OAAc,MAAM,YAAmB,oBAAoB,wCAG1D;IAED,SAAS,UAAS;IAClB,OAAO,aAWN;IAED,WAAW,gBAMV;IAED,WAAW,UAAS;IACpB,IAAI,QAAa,QAAQ,aAAa,GAAG,SAAS,CAAC,CAgoBlD;IAED,YAAY;;;;;MAKX;IAED,MAAM,CAAC,kCAAkC,SAA2D;IACpG,eAAe,yBAwHd;IAED,OAAO;IAKP,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAIpE,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAM9C,aAAa,SAAgB;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,mBAoH/C;IAGD,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE,GAAG;IA8C9C,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM;IAO9C,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ;IAIxG;;;OAGG;IACG,OAAO,CAAC,UAAU,EAAE,aAAa;IAiHvC,cAAc,cAAe,MAAM,KAAG,MAAM,CAAsE;IAI5G,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE,cAAc,CAAC;IA6H5E,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAG;IAepF,kBAAkB,QAAO;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAmBnE;IAED,oBAAoB,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,MAAM;IAwDjE,mBAAmB,eAAsB,MAAM,sBAgB9C;IAQD,iBAAiB,wBAQhB;IAGD,aAAa,EAAE,GAAG,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAa;IAChD,UAAU,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;KAAE;CA4DpE;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAEnH;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,GAAE,OAAO,EAAO,GAAG,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAcxH"}
|