jinaga-server 2.1.8 → 2.2.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.
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sqlFromSteps = void 0;
4
4
  const jinaga_1 = require("jinaga");
5
5
  const maps_1 = require("./maps");
6
- function sqlFromSteps(start, steps, factTypes, roleMap) {
6
+ function sqlFromSteps(start, steps, factTypes, roleMap, schema) {
7
7
  const builder = new QueryBuilder(factTypes, roleMap);
8
- return builder.buildQuery(start, steps);
8
+ return builder.buildQuery(start, steps, schema);
9
9
  }
10
10
  exports.sqlFromSteps = sqlFromSteps;
11
11
  ;
@@ -23,7 +23,7 @@ class QueryBuilder {
23
23
  this.roleIds = [];
24
24
  this.factTypeNames = [];
25
25
  }
26
- buildQuery(start, steps) {
26
+ buildQuery(start, steps, schema) {
27
27
  if (steps.length === 0) {
28
28
  return null;
29
29
  }
@@ -50,9 +50,9 @@ class QueryBuilder {
50
50
  .filter(j => j.table === 'fact')
51
51
  .map(j => j.factAlias);
52
52
  const hashes = factAliases.map(a => `f${a}.hash as hash${a}`).join(', ');
53
- const joins = this.buildJoins(this.queryParts.joins, 'f1.fact_id');
54
- const whereClause = this.buildWhereClause(this.queryParts.existentialClauses);
55
- const sql = `SELECT ${hashes} FROM public.fact f1${joins} WHERE f1.fact_type_id = $1 AND f1.hash = $2${whereClause}`;
53
+ const joins = this.buildJoins(schema, this.queryParts.joins, 'f1.fact_id');
54
+ const whereClause = this.buildWhereClause(schema, this.queryParts.existentialClauses);
55
+ const sql = `SELECT ${hashes} FROM ${schema}.fact f1${joins} WHERE f1.fact_type_id = $1 AND f1.hash = $2${whereClause}`;
56
56
  return {
57
57
  empty: false,
58
58
  sql,
@@ -61,7 +61,7 @@ class QueryBuilder {
61
61
  factTypeNames: this.factTypeNames
62
62
  };
63
63
  }
64
- buildJoins(joins, priorFactId) {
64
+ buildJoins(schema, joins, priorFactId) {
65
65
  ;
66
66
  const initialJoins = {
67
67
  priorFactId,
@@ -70,7 +70,7 @@ class QueryBuilder {
70
70
  const clauses = joins.reduce((joins, join) => {
71
71
  if (join.table === 'edge') {
72
72
  if (join.direction === 'successor') {
73
- const clause = ` JOIN public.edge e${join.edgeAlias} ` +
73
+ const clause = ` JOIN ${schema}.edge e${join.edgeAlias} ` +
74
74
  `ON e${join.edgeAlias}.predecessor_fact_id = ${joins.priorFactId} ` +
75
75
  `AND e${join.edgeAlias}.role_id = $${join.roleParameter}`;
76
76
  return {
@@ -79,7 +79,7 @@ class QueryBuilder {
79
79
  };
80
80
  }
81
81
  else {
82
- const clause = ` JOIN public.edge e${join.edgeAlias} ` +
82
+ const clause = ` JOIN ${schema}.edge e${join.edgeAlias} ` +
83
83
  `ON e${join.edgeAlias}.successor_fact_id = ${joins.priorFactId} ` +
84
84
  `AND e${join.edgeAlias}.role_id = $${join.roleParameter}`;
85
85
  return {
@@ -89,7 +89,7 @@ class QueryBuilder {
89
89
  }
90
90
  }
91
91
  else {
92
- const clause = ` JOIN public.fact f${join.factAlias} ON f${join.factAlias}.fact_id = ${joins.priorFactId}`;
92
+ const clause = ` JOIN ${schema}.fact f${join.factAlias} ON f${join.factAlias}.fact_id = ${joins.priorFactId}`;
93
93
  return {
94
94
  priorFactId: joins.priorFactId,
95
95
  clauses: [...joins.clauses, clause]
@@ -98,7 +98,7 @@ class QueryBuilder {
98
98
  }, initialJoins).clauses;
99
99
  return clauses.join('');
100
100
  }
101
- buildWhereClause(existentialClauses) {
101
+ buildWhereClause(schema, existentialClauses) {
102
102
  if (existentialClauses.length === 0) {
103
103
  return '';
104
104
  }
@@ -111,12 +111,12 @@ class QueryBuilder {
111
111
  const firstTailFactId = first.direction === 'predecessor'
112
112
  ? `e${first.edgeAlias}.successor_fact_id`
113
113
  : `e${first.edgeAlias}.predecessor_fact_id`;
114
- const joins = this.buildJoins(rest, firstHeadFactId);
114
+ const joins = this.buildJoins(schema, rest, firstHeadFactId);
115
115
  const priorFactId = clause.priorEdgeJoin.direction === 'predecessor'
116
116
  ? `e${clause.priorEdgeJoin.edgeAlias}.predecessor_fact_id`
117
117
  : `e${clause.priorEdgeJoin.edgeAlias}.successor_fact_id`;
118
- const whereClause = this.buildWhereClause(clause.query.existentialClauses);
119
- return ` AND ${quantifierSql} (SELECT 1 FROM public.edge e${first.edgeAlias}${joins} ` +
118
+ const whereClause = this.buildWhereClause(schema, clause.query.existentialClauses);
119
+ return ` AND ${quantifierSql} (SELECT 1 FROM ${schema}.edge e${first.edgeAlias}${joins} ` +
120
120
  `WHERE ${firstTailFactId} = ${priorFactId} ` +
121
121
  `AND e${first.edgeAlias}.role_id = $${first.roleParameter}${whereClause})`;
122
122
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/postgres/sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/postgres/sql.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinaga-server",
3
- "version": "2.1.8",
3
+ "version": "2.2.0",
4
4
  "description": "Application-agnostic back end for web applications",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "express": "^4.18.1",
46
- "jinaga": "^5.1.4",
46
+ "jinaga": "^5.2.0",
47
47
  "node-forge": "^1.3.1",
48
48
  "passport": "^0.6.0",
49
49
  "pg": "^8.7.1"
@@ -37,7 +37,9 @@ import { PostgresStore } from "./postgres/postgres-store";
37
37
 
38
38
  export type JinagaServerConfig = {
39
39
  pgStore?: string | Pool,
40
+ pgStoreSchema?: string,
40
41
  pgKeystore?: string | Pool,
42
+ pgKeystoreSchema?: string,
41
43
  httpEndpoint?: string,
42
44
  model?: Model,
43
45
  authorization?: (a: AuthorizationRules) => AuthorizationRules,
@@ -92,7 +94,7 @@ export class JinagaServer {
92
94
  function createStore(config: JinagaServerConfig, pools: { [uri: string]: Pool }): Storage {
93
95
  if (config.pgStore) {
94
96
  const pool = getPool(config.pgStore, pools);
95
- const store = new PostgresStore(pool);
97
+ const store = new PostgresStore(pool, validateSchema(config.pgStoreSchema));
96
98
  return store;
97
99
  }
98
100
  else {
@@ -119,7 +121,7 @@ function createKeystore(config: JinagaServerConfig, pools: { [uri: string]: Pool
119
121
  const uriOrPool = config.pgKeystore;
120
122
  if (uriOrPool) {
121
123
  const pool = getPool(uriOrPool, pools);
122
- const keystore = new PostgresKeystore(pool);
124
+ const keystore = new PostgresKeystore(pool, validateSchema(config.pgKeystoreSchema));
123
125
  return keystore;
124
126
  }
125
127
  else {
@@ -222,4 +224,18 @@ async function withSession(store: Storage, keystore: Keystore | null, authorizat
222
224
  const factManager = new FactManager(authentication, fork, observableSource, store, network);
223
225
  const j = new Jinaga(factManager, syncStatusNotifier);
224
226
  await callback(j);
225
- }
227
+ }
228
+
229
+ function validateSchema(schema: string | undefined): string {
230
+ if (!schema) {
231
+ return "public";
232
+ }
233
+
234
+ // Verify that the schema is a valid Postgres schema name.
235
+ // https://www.postgresql.org/docs/9.1/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
236
+ if (!/^[a-z_][a-z0-9_$]*$/.test(schema)) {
237
+ throw new Error(`Invalid schema name: ${schema}. Schema names must start with a letter or underscore, and contain only letters, numbers, and underscores.`);
238
+ }
239
+
240
+ return schema;
241
+ }
@@ -14,7 +14,7 @@ export class PostgresKeystore implements Keystore {
14
14
  private connectionFactory: ConnectionFactory;
15
15
  private cache: Map<string, KeyPair> = new Map();
16
16
 
17
- constructor (pool: Pool) {
17
+ constructor (pool: Pool, private schema: string) {
18
18
  this.connectionFactory = new ConnectionFactory(pool);
19
19
  }
20
20
 
@@ -77,7 +77,7 @@ export class PostgresKeystore implements Keystore {
77
77
  }
78
78
 
79
79
  private async selectKeyPair(connection: PoolClient, userIdentity: UserIdentity): Promise<KeyPair> {
80
- const { rows } = await connection.query('SELECT public_key, private_key FROM public.user WHERE provider = $1 AND user_identifier = $2',
80
+ const { rows } = await connection.query(`SELECT public_key, private_key FROM ${this.schema}.user WHERE provider = $1 AND user_identifier = $2`,
81
81
  [userIdentity.provider, userIdentity.id]);
82
82
  if (rows.length > 1) {
83
83
  throw new Error('Duplicate entries found in the keystore');
@@ -104,7 +104,7 @@ export class PostgresKeystore implements Keystore {
104
104
  }
105
105
 
106
106
  private async selectOrInsertKeyPair(connection: PoolClient, userIdentity: UserIdentity): Promise<KeyPair> {
107
- const { rows } = await connection.query('SELECT public_key, private_key FROM public.user WHERE provider = $1 AND user_identifier = $2',
107
+ const { rows } = await connection.query(`SELECT public_key, private_key FROM ${this.schema}.user WHERE provider = $1 AND user_identifier = $2`,
108
108
  [userIdentity.provider, userIdentity.id]);
109
109
  if (rows.length > 1) {
110
110
  throw new Error('Duplicate entries found in the keystore');
@@ -124,7 +124,7 @@ export class PostgresKeystore implements Keystore {
124
124
  const keypair = pki.rsa.generateKeyPair({ bits: 2048 });
125
125
  const privatePem = pki.privateKeyToPem(keypair.privateKey);
126
126
  const publicPem = pki.publicKeyToPem(keypair.publicKey);
127
- await connection.query('INSERT INTO public.user (provider, user_identifier, private_key, public_key) VALUES ($1, $2, $3, $4)',
127
+ await connection.query(`INSERT INTO ${this.schema}.user (provider, user_identifier, private_key, public_key) VALUES ($1, $2, $3, $4)`,
128
128
  [userIdentity.provider, userIdentity.id, privatePem, publicPem]);
129
129
  return { publicPem, privatePem };
130
130
  }