@volontariapp/domain-storage 0.7.0-snap-e10ff55 → 0.7.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/CHANGELOG.md +2 -0
- package/dist/repositories/postgres-file.repository.d.ts +1 -0
- package/dist/repositories/postgres-file.repository.d.ts.map +1 -1
- package/dist/repositories/postgres-file.repository.js +12 -3
- package/dist/repositories/postgres-file.repository.js.map +1 -1
- package/dist/test/mocks/outbox-write-failure.mock.d.ts.map +1 -1
- package/dist/test/mocks/outbox-write-failure.mock.js +1 -0
- package/dist/test/mocks/outbox-write-failure.mock.js.map +1 -1
- package/package.json +3 -4
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
- Add `PostgresFileRepository` (sub-path `@volontariapp/domain-storage/repositories`) with `createPending`, `confirmUpload`, `switchToAsync`, `resetToAwaitingUpload`, `completeScan` and `rejectScan`. Each transition is a single conditional `UPDATE ... RETURNING`; the `storage.scan_file` job (`jobs_outbox`) and the `storage.file_scanned` / `storage.file_rejected` events (`event_queue`, only for an `ATTACHED` file) are written in the same transaction.
|
|
8
8
|
|
|
9
|
+
WARNING, do not wire `completeScan` / `rejectScan` into `ms-storage` or `worker-storage` yet: `StorageStream` does not exist in `@volontariapp/shared` (ticket 1.14), so the `storage.file_scanned` / `storage.file_rejected` events are written with an empty `targetServices` (`FILE_SCAN_RESULT_TARGET_SERVICES`). The outbox pusher skips such a row without an error and the consumer then marks it `COMPLETED`: the event would be silently lost and the post media would stay `PENDING`. Fill the constant once `StorageStream` exists. The `storage.scan_file` job is not affected.
|
|
10
|
+
|
|
9
11
|
## 0.6.0
|
|
10
12
|
|
|
11
13
|
### Minor Changes
|
|
@@ -13,6 +13,7 @@ export declare class PostgresFileRepository {
|
|
|
13
13
|
completeScan(input: CompleteScanInput): Promise<ScanTransitionResult | null>;
|
|
14
14
|
rejectScan(input: RejectScanInput): Promise<ScanTransitionResult | null>;
|
|
15
15
|
private finishScan;
|
|
16
|
+
private runInTransaction;
|
|
16
17
|
private writeScanJob;
|
|
17
18
|
private logTransition;
|
|
18
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-file.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/postgres-file.repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAIzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMpD,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAGpC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAuB7C,qBAAa,sBAAsB;IAGrB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwD;gBAElD,UAAU,EAAE,UAAU;IAG7C,aAAa,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,CAAC;IAkBhE,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAsC7E,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB/C,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBvD,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAkB5E,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;YAiBhE,UAAU;
|
|
1
|
+
{"version":3,"file":"postgres-file.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/postgres-file.repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAIzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAMpD,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAGpC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAuB7C,qBAAa,sBAAsB;IAGrB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwD;gBAElD,UAAU,EAAE,UAAU;IAG7C,aAAa,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,CAAC;IAkBhE,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAsC7E,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB/C,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBvD,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAkB5E,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;YAiBhE,UAAU;YAmCV,gBAAgB;YAahB,YAAY;IAQ1B,OAAO,CAAC,aAAa;CAOtB"}
|
|
@@ -24,7 +24,7 @@ export class PostgresFileRepository {
|
|
|
24
24
|
return saved;
|
|
25
25
|
}
|
|
26
26
|
async confirmUpload(input) {
|
|
27
|
-
const result = await this.
|
|
27
|
+
const result = await this.runInTransaction('confirmUpload', input.fileId, async (manager) => {
|
|
28
28
|
const [rows] = await manager.query(`UPDATE files
|
|
29
29
|
SET scan_status = $1, confirmed_at = now(), actual_size = $2,
|
|
30
30
|
scan_attempts = scan_attempts + 1, updated_at = now()
|
|
@@ -50,7 +50,7 @@ export class PostgresFileRepository {
|
|
|
50
50
|
return result;
|
|
51
51
|
}
|
|
52
52
|
async switchToAsync(fileId) {
|
|
53
|
-
const switched = await this.
|
|
53
|
+
const switched = await this.runInTransaction('switchToAsync', fileId, async (manager) => {
|
|
54
54
|
const [rows] = await manager.query(`UPDATE files
|
|
55
55
|
SET validation_mode = $1, updated_at = now()
|
|
56
56
|
WHERE id = $2 AND scan_status = $3 AND validation_mode = $4
|
|
@@ -92,7 +92,7 @@ export class PostgresFileRepository {
|
|
|
92
92
|
}, 'rejectScan');
|
|
93
93
|
}
|
|
94
94
|
async finishScan(update, fileId, writeEvent, transition) {
|
|
95
|
-
const result = await this.
|
|
95
|
+
const result = await this.runInTransaction(transition, fileId, async (manager) => {
|
|
96
96
|
const idParam = update.params.length + 1;
|
|
97
97
|
const [rows] = await manager.query(`UPDATE files
|
|
98
98
|
SET ${update.assignments}, updated_at = now()
|
|
@@ -112,6 +112,15 @@ export class PostgresFileRepository {
|
|
|
112
112
|
this.logTransition(transition, fileId, result !== null);
|
|
113
113
|
return result;
|
|
114
114
|
}
|
|
115
|
+
async runInTransaction(transition, fileId, work) {
|
|
116
|
+
try {
|
|
117
|
+
return await this.dataSource.transaction(work);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
this.logger.error(`${transition} failed and was rolled back for file ${fileId}`, error);
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
115
124
|
async writeScanJob(manager, fileId, ownerId) {
|
|
116
125
|
await manager.insert(JobsOutboxModel, buildScanFileJob(fileId, ownerId));
|
|
117
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres-file.repository.js","sourceRoot":"","sources":["../../src/repositories/postgres-file.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAYnC,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAuB7C,MAAM,OAAO,sBAAsB;IAGJ;IAFZ,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;IAE/E,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAGvD,KAAK,CAAC,aAAa,CAAC,KAA6B;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAE5D,MAAM,UAAU,CAAC,MAAM,CAAC;YACtB,GAAG,KAAK;YACR,MAAM,EAAE,UAAU,CAAC,OAAO;YAC1B,UAAU,EAAE,UAAU,CAAC,eAAe;SACvC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,8BAA8B,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;QACvF,OAAO,KAAK,CAAC;IACf,CAAC;IAOD,KAAK,CAAC,aAAa,CAAC,KAAyB;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"postgres-file.repository.js","sourceRoot":"","sources":["../../src/repositories/postgres-file.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox-write-failure.mock.d.ts","sourceRoot":"","sources":["../../../src/test/mocks/outbox-write-failure.mock.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;AAOjD,eAAO,MAAM,uBAAuB,UAAiB,WAAW,KAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"outbox-write-failure.mock.d.ts","sourceRoot":"","sources":["../../../src/test/mocks/outbox-write-failure.mock.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;AAOjD,eAAO,MAAM,uBAAuB,UAAiB,WAAW,KAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAgB7F,CAAC"}
|
|
@@ -3,6 +3,7 @@ export const mockOutboxInsertFailure = async (table) => {
|
|
|
3
3
|
await testDataSource.query(`CREATE OR REPLACE FUNCTION fail_outbox_insert() RETURNS trigger AS $$
|
|
4
4
|
BEGIN RAISE EXCEPTION 'simulated outbox failure'; END;
|
|
5
5
|
$$ LANGUAGE plpgsql`);
|
|
6
|
+
await testDataSource.query(`DROP TRIGGER IF EXISTS fail_outbox_insert ON ${table}`);
|
|
6
7
|
await testDataSource.query(`CREATE TRIGGER fail_outbox_insert BEFORE INSERT ON ${table}
|
|
7
8
|
FOR EACH ROW EXECUTE FUNCTION fail_outbox_insert()`);
|
|
8
9
|
return async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox-write-failure.mock.js","sourceRoot":"","sources":["../../../src/test/mocks/outbox-write-failure.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,KAAkB,EAAgC,EAAE;IAChG,MAAM,cAAc,CAAC,KAAK,CACxB;;yBAEqB,CACtB,CAAC;IACF,MAAM,cAAc,CAAC,KAAK,CACxB,sDAAsD,KAAK;wDACP,CACrD,CAAC;IAEF,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,cAAc,CAAC,KAAK,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,cAAc,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"outbox-write-failure.mock.js","sourceRoot":"","sources":["../../../src/test/mocks/outbox-write-failure.mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,KAAkB,EAAgC,EAAE;IAChG,MAAM,cAAc,CAAC,KAAK,CACxB;;yBAEqB,CACtB,CAAC;IACF,MAAM,cAAc,CAAC,KAAK,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;IACpF,MAAM,cAAc,CAAC,KAAK,CACxB,sDAAsD,KAAK;wDACP,CACrD,CAAC;IAEF,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,cAAc,CAAC,KAAK,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,cAAc,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volontariapp/domain-storage",
|
|
3
|
-
"version": "0.7.0
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"provenance": true
|
|
@@ -47,11 +47,10 @@
|
|
|
47
47
|
"migration:run": "TYPEORM_MIGRATION_RUN=true yarn typeorm migration:run -d src/test/data-source.ts"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@volontariapp/database": "3.4.
|
|
50
|
+
"@volontariapp/database": "3.4.24",
|
|
51
51
|
"@volontariapp/errors": "0.6.2",
|
|
52
52
|
"@volontariapp/logger": "0.2.7",
|
|
53
|
-
"@volontariapp/messaging": "2.
|
|
54
|
-
"@volontariapp/outbox": "0.9.60"
|
|
53
|
+
"@volontariapp/messaging": "2.19.0"
|
|
55
54
|
},
|
|
56
55
|
"peerDependencies": {
|
|
57
56
|
"reflect-metadata": "^0.2.2",
|