jinaga-server 3.3.5 → 3.3.7

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.
@@ -11,7 +11,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ConnectionFactory = void 0;
13
13
  const jinaga_1 = require("jinaga");
14
- const pg_1 = require("pg");
15
14
  const promise_1 = require("../util/promise");
16
15
  class ConnectionFactory {
17
16
  constructor(postgresPool) {
@@ -19,38 +18,24 @@ class ConnectionFactory {
19
18
  }
20
19
  withTransaction(callback) {
21
20
  return this.with((connection) => __awaiter(this, void 0, void 0, function* () {
22
- // If the insert throws a duplicate key error, then retry the select.
23
- let attempts = 2;
24
- while (true) {
25
- try {
26
- yield connection.query('BEGIN');
27
- const result = yield callback(connection);
28
- yield connection.query('COMMIT');
29
- return result;
30
- }
31
- catch (e) {
32
- jinaga_1.Trace.warn("Postgres transaction error: " + describeError(e));
33
- yield connection.query('ROLLBACK');
34
- if (e instanceof pg_1.DatabaseError && e.code === '23505') {
35
- jinaga_1.Trace.warn("Postgres duplicate key: retrying");
36
- attempts--;
37
- if (attempts === 0) {
38
- throw e;
39
- }
40
- }
41
- else {
42
- jinaga_1.Trace.error(e);
43
- throw e;
44
- }
45
- }
21
+ try {
22
+ yield connection.query('BEGIN');
23
+ const result = yield callback(connection);
24
+ yield connection.query('COMMIT');
25
+ return result;
26
+ }
27
+ catch (e) {
28
+ yield connection.query('ROLLBACK');
29
+ throw e;
46
30
  }
47
31
  }));
48
32
  }
49
33
  with(callback) {
50
34
  return __awaiter(this, void 0, void 0, function* () {
51
35
  let attempt = 0;
52
- const pause = [0, 0, 1000, 5000, 15000, 30000];
53
- while (attempt < pause.length) {
36
+ const maxAttempts = 4;
37
+ const baseDelay = 10;
38
+ while (attempt < maxAttempts) {
54
39
  try {
55
40
  const client = yield this.createClient();
56
41
  try {
@@ -67,14 +52,14 @@ class ConnectionFactory {
67
52
  }
68
53
  jinaga_1.Trace.warn("Postgres transient error: " + describeError(e));
69
54
  attempt++;
70
- if (attempt === pause.length) {
55
+ if (attempt === maxAttempts) {
56
+ jinaga_1.Trace.error("Postgres error after max attempts: " + describeError(e));
71
57
  throw e;
72
58
  }
73
59
  }
74
- if (pause[attempt] > 0) {
75
- jinaga_1.Trace.warn("Postgres retrying in " + pause[attempt] + "ms");
76
- yield (0, promise_1.delay)(pause[attempt]);
77
- }
60
+ const delayTime = baseDelay * Math.pow(2, attempt - 1);
61
+ jinaga_1.Trace.warn("Attempt number " + attempt + ". Postgres retrying in " + delayTime + "ms");
62
+ yield (0, promise_1.delay)(delayTime);
78
63
  }
79
64
  throw new Error("Number of attempts exceeded");
80
65
  });
@@ -85,7 +70,7 @@ class ConnectionFactory {
85
70
  }
86
71
  exports.ConnectionFactory = ConnectionFactory;
87
72
  function isTransientError(e) {
88
- if (e.code === 'ECONNREFUSED') {
73
+ if (e.code === 'ECONNREFUSED' || e.code === '23505') { // 23505 is the code for unique_violation
89
74
  return true;
90
75
  }
91
76
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/postgres/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/postgres/connection.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA+B;AAE/B,6CAAwC;AAIxC,MAAa,iBAAiB;IAC1B,YAAqB,YAAkB;QAAlB,iBAAY,GAAZ,YAAY,CAAM;IACvC,CAAC;IAED,eAAe,CAAI,QAAgD;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAM,UAAU,EAAC,EAAE;YAChC,IAAI;gBACA,MAAM,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACjC,OAAO,MAAM,CAAC;aACjB;YACD,OAAO,CAAC,EAAE;gBACN,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACnC,MAAM,CAAC,CAAC;aACX;QACL,CAAC,CAAA,CAAC,CAAC;IACP,CAAC;IAEK,IAAI,CAAI,QAAgD;;YAC1D,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,MAAM,WAAW,GAAG,CAAC,CAAC;YACtB,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,OAAO,OAAO,GAAG,WAAW,EAAE;gBAC1B,IAAI;oBACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;oBACzC,IAAI;wBACA,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;qBACjC;4BACO;wBACJ,MAAM,CAAC,OAAO,EAAE,CAAC;qBACpB;iBACJ;gBACD,OAAO,CAAC,EAAE;oBACN,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;wBACtB,cAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACf,MAAM,CAAC,CAAC;qBACX;oBACD,cAAK,CAAC,IAAI,CAAC,4BAA4B,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,OAAO,EAAE,CAAC;oBACV,IAAI,OAAO,KAAK,WAAW,EAAE;wBACzB,cAAK,CAAC,KAAK,CAAC,qCAAqC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtE,MAAM,CAAC,CAAC;qBACX;iBACJ;gBACD,MAAM,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAC,CAAC,CAAC,CAAC;gBACrD,cAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,OAAO,GAAG,yBAAyB,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;gBACvF,MAAM,IAAA,eAAK,EAAC,SAAS,CAAC,CAAC;aAC1B;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;KAAA;IAEO,YAAY;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;CACJ;AAvDD,8CAuDC;AAED,SAAS,gBAAgB,CAAC,CAAM;IAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,EAAE,yCAAyC;QAC5F,OAAO,IAAI,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,CAAM;IACzB,MAAM,KAAK,GAAG;QACV,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;KACrB,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
@@ -51,7 +51,7 @@ class PostgresStore {
51
51
  save(envelopes) {
52
52
  return __awaiter(this, void 0, void 0, function* () {
53
53
  if (envelopes.length > 0) {
54
- const facts = envelopes.map(e => e.fact);
54
+ const facts = envelopes.map(e => e.fact).filter((value, index, self) => self.findIndex((0, jinaga_1.factReferenceEquals)(value)) === index);
55
55
  if (facts.some(f => !f.hash || !f.type)) {
56
56
  throw new Error('Attempted to save a fact with no hash or type.');
57
57
  }
@@ -68,7 +68,17 @@ class PostgresStore {
68
68
  }
69
69
  const roles = yield storeRoles(newFacts, factTypes, (0, maps_1.copyRoleMap)(this.roleMap), connection, this.schema);
70
70
  const allFacts = yield insertFactsEdgesAndAncestors(newFacts, factTypes, existingFacts, connection, roles, this.schema);
71
- const newEnvelopes = envelopes.filter(envelope => newFacts.some((0, jinaga_1.factReferenceEquals)(envelope.fact)));
71
+ // For each new fact, find all of the signatures that were provided.
72
+ const newEnvelopes = newFacts.map(fact => {
73
+ const predicate = (0, jinaga_1.factReferenceEquals)(fact);
74
+ const signatures = envelopes
75
+ .filter(envelope => predicate(envelope.fact))
76
+ .flatMap(envelope => envelope.signatures);
77
+ return {
78
+ fact,
79
+ signatures
80
+ };
81
+ });
72
82
  if (newEnvelopes.length === 0) {
73
83
  return {
74
84
  newEnvelopes,
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-store.js","sourceRoot":"","sources":["../../src/postgres/postgres-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-store.js","sourceRoot":"","sources":["../../src/postgres/postgres-store.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ COPY jinaga.test.js .
11
11
  COPY specification.test.js .
12
12
  COPY purge.test.js .
13
13
  COPY postgres.test.js .
14
+ COPY postgres-duplicates.test.js .
14
15
  COPY orderModel.js .
15
16
 
16
- ENTRYPOINT [ "npm", "test" ]
17
+ ENTRYPOINT [ "npm", "test" ]
@@ -13,7 +13,7 @@
13
13
  "express": "^4.21.2",
14
14
  "jest": "^29.7.0",
15
15
  "jest-compact-reporter": "^1.2.9",
16
- "jinaga": "^6.5.2",
16
+ "jinaga": "^6.5.3",
17
17
  "node-forge": "^1.3.0",
18
18
  "pg": "^8.13.1"
19
19
  }
@@ -2980,9 +2980,9 @@
2980
2980
  }
2981
2981
  },
2982
2982
  "node_modules/jinaga": {
2983
- "version": "6.5.2",
2984
- "resolved": "https://registry.npmjs.org/jinaga/-/jinaga-6.5.2.tgz",
2985
- "integrity": "sha512-GPv9dk6BYGbD4zFQNuvT6vAgpOqqJyTPmD5frhqjSIE6vCCNIsMCQnxRogmB1fnihDAjz83I+5aHusiW3RB65A==",
2983
+ "version": "6.5.3",
2984
+ "resolved": "https://registry.npmjs.org/jinaga/-/jinaga-6.5.3.tgz",
2985
+ "integrity": "sha512-y3yInu8z4+I5ZwjFBeXxkJPN7hPo1jwFsjEJmiIKd7yLShsAFwYkd2WWSZMjCvqfU/LuziFjsJw5XDjWK3CzFQ==",
2986
2986
  "license": "MIT",
2987
2987
  "dependencies": {
2988
2988
  "@stablelib/base64": "^1.0.1",
@@ -17,7 +17,7 @@
17
17
  "express": "^4.21.2",
18
18
  "jest": "^29.7.0",
19
19
  "jest-compact-reporter": "^1.2.9",
20
- "jinaga": "^6.5.2",
20
+ "jinaga": "^6.5.3",
21
21
  "node-forge": "^1.3.0",
22
22
  "pg": "^8.13.1"
23
23
  }
@@ -0,0 +1,127 @@
1
+ const { Pool } = require('pg');
2
+ const { PostgresStore } = require('jinaga-server');
3
+
4
+ const host = "db";
5
+ const connectionString = `postgresql://dev:devpw@${host}:5432/integrationtest`;
6
+
7
+ const pool = new Pool({
8
+ connectionString
9
+ });
10
+
11
+ describe('PostgresStore duplicate handling', () => {
12
+ let store;
13
+
14
+ beforeAll(async () => {
15
+ store = new PostgresStore(pool, 'public');
16
+ });
17
+
18
+ afterAll(async () => {
19
+ await pool.end();
20
+ });
21
+
22
+ it('should handle duplicate facts in same batch', async () => {
23
+ // Create two identical facts
24
+ const fact = {
25
+ type: 'TestType',
26
+ hash: 'duplicate-hash-1',
27
+ fields: { value: 42 },
28
+ predecessors: {}
29
+ };
30
+
31
+ const envelopes = [
32
+ { fact, signatures: [] },
33
+ { fact, signatures: [] } // Same fact
34
+ ];
35
+
36
+ // This should not throw, as the second fact should be recognized as duplicate
37
+ const result = await store.save(envelopes);
38
+
39
+ // Should only return one envelope since the other was a duplicate
40
+ expect(result.length).toBe(1);
41
+ expect(result[0].fact.hash).toBe('duplicate-hash-1');
42
+ });
43
+
44
+ it('should handle concurrent saves of same fact', async () => {
45
+ const fact = {
46
+ type: 'TestType',
47
+ hash: 'duplicate-hash-2',
48
+ fields: { value: 42 },
49
+ predecessors: {}
50
+ };
51
+
52
+ const envelope = { fact, signatures: [] };
53
+
54
+ // Save the same fact concurrently
55
+ const results = await Promise.all([
56
+ store.save([envelope]),
57
+ store.save([envelope])
58
+ ]);
59
+
60
+ // Both saves should complete successfully
61
+ expect(results.length).toBe(2);
62
+
63
+ // One save should return the envelope (first writer wins)
64
+ // and one should return empty array (duplicate detected)
65
+ const totalEnvelopes = results[0].length + results[1].length;
66
+ expect(totalEnvelopes).toBe(1);
67
+
68
+ // Verify the fact exists
69
+ const references = [{ type: fact.type, hash: fact.hash }];
70
+ const existing = await store.whichExist(references);
71
+ expect(existing.length).toBe(1);
72
+ expect(existing[0].hash).toBe(fact.hash);
73
+ });
74
+
75
+ it('should handle multiple concurrent saves with mixed duplicates', async () => {
76
+ const facts = [
77
+ {
78
+ type: 'TestType',
79
+ hash: 'unique-hash-1',
80
+ fields: { value: 1 },
81
+ predecessors: {}
82
+ },
83
+ {
84
+ type: 'TestType',
85
+ hash: 'duplicate-hash-3',
86
+ fields: { value: 2 },
87
+ predecessors: {}
88
+ },
89
+ {
90
+ type: 'TestType',
91
+ hash: 'unique-hash-2',
92
+ fields: { value: 3 },
93
+ predecessors: {}
94
+ }
95
+ ];
96
+
97
+ const batch1 = [
98
+ { fact: facts[0], signatures: [] },
99
+ { fact: facts[1], signatures: [] }
100
+ ];
101
+
102
+ const batch2 = [
103
+ { fact: facts[1], signatures: [] }, // Duplicate of batch1[1]
104
+ { fact: facts[2], signatures: [] }
105
+ ];
106
+
107
+ // Save both batches concurrently
108
+ const results = await Promise.all([
109
+ store.save(batch1),
110
+ store.save(batch2)
111
+ ]);
112
+
113
+ // Both saves should complete successfully
114
+ expect(results.length).toBe(2);
115
+
116
+ // Verify all unique facts were saved
117
+ const references = facts.map(f => ({ type: f.type, hash: f.hash }));
118
+ const existing = await store.whichExist(references);
119
+ expect(existing.length).toBe(3); // All 3 unique facts should exist
120
+
121
+ // The duplicate fact should only appear once in the results
122
+ const totalDuplicates = results.flat().filter(e =>
123
+ e.fact.hash === 'duplicate-hash-3'
124
+ ).length;
125
+ expect(totalDuplicates).toBe(1);
126
+ });
127
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jinaga-server",
3
- "version": "3.3.5",
3
+ "version": "3.3.7",
4
4
  "description": "Data management for web and mobile applications.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,38 +10,24 @@ export class ConnectionFactory {
10
10
 
11
11
  withTransaction<T>(callback: (connection: PoolClient) => Promise<T>) {
12
12
  return this.with(async connection => {
13
- // If the insert throws a duplicate key error, then retry the select.
14
- let attempts = 2;
15
- while (true) {
16
- try {
17
- await connection.query('BEGIN');
18
- const result = await callback(connection);
19
- await connection.query('COMMIT');
20
- return result;
21
- }
22
- catch (e) {
23
- Trace.warn("Postgres transaction error: " + describeError(e));
24
- await connection.query('ROLLBACK');
25
- if (e instanceof DatabaseError && e.code === '23505') {
26
- Trace.warn("Postgres duplicate key: retrying");
27
- attempts--;
28
- if (attempts === 0) {
29
- throw e;
30
- }
31
- }
32
- else {
33
- Trace.error(e);
34
- throw e;
35
- }
36
- }
13
+ try {
14
+ await connection.query('BEGIN');
15
+ const result = await callback(connection);
16
+ await connection.query('COMMIT');
17
+ return result;
37
18
  }
38
- })
19
+ catch (e) {
20
+ await connection.query('ROLLBACK');
21
+ throw e;
22
+ }
23
+ });
39
24
  }
40
25
 
41
26
  async with<T>(callback: (connection: PoolClient) => Promise<T>) : Promise<T> {
42
27
  let attempt = 0;
43
- const pause = [0, 0, 1000, 5000, 15000, 30000];
44
- while (attempt < pause.length) {
28
+ const maxAttempts = 4;
29
+ const baseDelay = 10;
30
+ while (attempt < maxAttempts) {
45
31
  try {
46
32
  const client = await this.createClient();
47
33
  try {
@@ -58,14 +44,14 @@ export class ConnectionFactory {
58
44
  }
59
45
  Trace.warn("Postgres transient error: " + describeError(e));
60
46
  attempt++;
61
- if (attempt === pause.length) {
47
+ if (attempt === maxAttempts) {
48
+ Trace.error("Postgres error after max attempts: " + describeError(e));
62
49
  throw e;
63
50
  }
64
51
  }
65
- if (pause[attempt] > 0) {
66
- Trace.warn("Postgres retrying in " + pause[attempt] + "ms");
67
- await delay(pause[attempt]);
68
- }
52
+ const delayTime = baseDelay * Math.pow(2, attempt-1);
53
+ Trace.warn("Attempt number " + attempt + ". Postgres retrying in " + delayTime + "ms");
54
+ await delay(delayTime);
69
55
  }
70
56
  throw new Error("Number of attempts exceeded");
71
57
  }
@@ -76,7 +62,7 @@ export class ConnectionFactory {
76
62
  }
77
63
 
78
64
  function isTransientError(e: any) {
79
- if (e.code === 'ECONNREFUSED') {
65
+ if (e.code === 'ECONNREFUSED' || e.code === '23505') { // 23505 is the code for unique_violation
80
66
  return true;
81
67
  }
82
68
  return false;
@@ -135,7 +135,8 @@ export class PostgresStore implements Storage {
135
135
 
136
136
  async save(envelopes: FactEnvelope[]): Promise<FactEnvelope[]> {
137
137
  if (envelopes.length > 0) {
138
- const facts = envelopes.map(e => e.fact);
138
+ const facts = envelopes.map(e => e.fact).filter((value, index, self) =>
139
+ self.findIndex(factReferenceEquals(value)) === index);
139
140
  if (facts.some(f => !f.hash || !f.type)) {
140
141
  throw new Error('Attempted to save a fact with no hash or type.');
141
142
  }
@@ -157,8 +158,17 @@ export class PostgresStore implements Storage {
157
158
 
158
159
  const roles = await storeRoles(newFacts, factTypes, copyRoleMap(this.roleMap), connection, this.schema);
159
160
  const allFacts = await insertFactsEdgesAndAncestors(newFacts, factTypes, existingFacts, connection, roles, this.schema);
160
- const newEnvelopes = envelopes.filter(envelope => newFacts.some(
161
- factReferenceEquals(envelope.fact)));
161
+ // For each new fact, find all of the signatures that were provided.
162
+ const newEnvelopes = newFacts.map(fact => {
163
+ const predicate = factReferenceEquals(fact);
164
+ const signatures = envelopes
165
+ .filter(envelope => predicate(envelope.fact))
166
+ .flatMap(envelope => envelope.signatures);
167
+ return {
168
+ fact,
169
+ signatures
170
+ };
171
+ });
162
172
  if (newEnvelopes.length === 0) {
163
173
  return {
164
174
  newEnvelopes,