@researchdatabox/sails-hook-redbox-storage-mongo 5.0.4-beta.12498 → 5.0.4

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/README.md CHANGED
@@ -24,47 +24,6 @@ This package provides the MongoDB-backed storage service, models, and config reg
24
24
  - The storage models use the Sails datastore named `redboxStorage`
25
25
  - Datastore connection details still live in the host portal’s Sails config
26
26
 
27
- ## Record revision migration
28
-
29
- This hook registers the restart-safe
30
- `@researchdatabox/sails-hook-redbox-storage-mongo:20260823T000000-backfill-record-revisions`
31
- migration. It installs the initial server-owned revision on active records and
32
- the revision plus `deleted` lifecycle state on legacy tombstones. It does not
33
- touch record metadata, workflow, authorization, `lastSaveDate`, or search
34
- documents.
35
-
36
- Run an upgrade with exactly one lifting portal instance, let migrations finish,
37
- and only then start the remaining instances. The repository migration runner
38
- has no distributed migration lock. Back up the database first; do not use
39
- `REDBOX_SKIP_MIGRATIONS=true` for a strict-concurrency rollout.
40
-
41
- ## Storage concurrency capability
42
-
43
- Strict record types require a storage adapter to expose `getCapabilities()` and
44
- return the supported `recordConcurrency` version token from
45
- `@researchdatabox/redbox-core`. An absent method, absent field, unknown version,
46
- or a non-Mongo dialect without native atomic operations is unsupported and
47
- fails closed.
48
-
49
- The capability covers these adapter methods:
50
-
51
- - `create(..., options?)`: strips client revision and initializes a server revision;
52
- - `updateMeta(..., options?)`: atomic active compare-and-set plus increment;
53
- - `removeActiveRecord(..., options?)`: atomic conditional removal returning the removed state;
54
- - `updateTombstone(..., options?)`: atomic restore/purge claim plus increment;
55
- - `removeTombstone(..., options?)`: atomic conditional restore finalization/purge.
56
-
57
- Every existing signature keeps its optional concurrency options last for source
58
- compatibility. A supplied `expectedRevision` must always be honored. A
59
- certified no-match returns `not-applied` with a bounded
60
- `nonApplicationReason`; a thrown or unrecognized fact after dispatch returns
61
- `unknown`. Adapters must never fall back to an OID-only Waterline success path
62
- after advertising strict capability.
63
-
64
- Hook-provided adapters must verify these guarantees against their real
65
- datastore/dialect before declaring capability. The bundled Mongo adapter does
66
- so in `test/integration/MongoStorageConcurrency.integration.test.ts`.
67
-
68
27
  ## Pagination regression tests
69
28
 
70
29
  Record and deleted-record lists append `_id` to the requested sort so equal
@@ -12,7 +12,6 @@ export declare const storage: {
12
12
  'metaMetadata.lastSaveDate'?: undefined;
13
13
  redboxOid?: undefined;
14
14
  };
15
- unique?: undefined;
16
15
  } | {
17
16
  key: {
18
17
  harvestId: number;
@@ -24,7 +23,6 @@ export declare const storage: {
24
23
  'metaMetadata.lastSaveDate'?: undefined;
25
24
  redboxOid?: undefined;
26
25
  };
27
- unique?: undefined;
28
26
  } | {
29
27
  key: {
30
28
  dateCreated: number;
@@ -36,7 +34,6 @@ export declare const storage: {
36
34
  'metaMetadata.lastSaveDate'?: undefined;
37
35
  redboxOid?: undefined;
38
36
  };
39
- unique?: undefined;
40
37
  } | {
41
38
  key: {
42
39
  lastSaveDate: number;
@@ -48,7 +45,6 @@ export declare const storage: {
48
45
  'metaMetadata.lastSaveDate'?: undefined;
49
46
  redboxOid?: undefined;
50
47
  };
51
- unique?: undefined;
52
48
  } | {
53
49
  key: {
54
50
  'metaMetadata.brandId': number;
@@ -60,7 +56,6 @@ export declare const storage: {
60
56
  'metaMetadata.lastSaveDate'?: undefined;
61
57
  redboxOid?: undefined;
62
58
  };
63
- unique?: undefined;
64
59
  } | {
65
60
  key: {
66
61
  'metaMetadata.type': number;
@@ -72,7 +67,6 @@ export declare const storage: {
72
67
  'metaMetadata.lastSaveDate'?: undefined;
73
68
  redboxOid?: undefined;
74
69
  };
75
- unique?: undefined;
76
70
  } | {
77
71
  key: {
78
72
  'metaMetadata.createdOn': number;
@@ -84,7 +78,6 @@ export declare const storage: {
84
78
  'metaMetadata.lastSaveDate'?: undefined;
85
79
  redboxOid?: undefined;
86
80
  };
87
- unique?: undefined;
88
81
  } | {
89
82
  key: {
90
83
  'metaMetadata.lastSaveDate': number;
@@ -96,7 +89,6 @@ export declare const storage: {
96
89
  'metaMetadata.createdOn'?: undefined;
97
90
  redboxOid?: undefined;
98
91
  };
99
- unique?: undefined;
100
92
  } | {
101
93
  key: {
102
94
  redboxOid: number;
@@ -108,50 +100,6 @@ export declare const storage: {
108
100
  'metaMetadata.createdOn'?: undefined;
109
101
  'metaMetadata.lastSaveDate'?: undefined;
110
102
  };
111
- unique: boolean;
112
103
  })[];
113
- deletedRecordIndices: ({
114
- key: {
115
- redboxOid: number;
116
- lifecycleState?: undefined;
117
- 'lifecycleOperation.requestId'?: undefined;
118
- 'deletedRecordMetadata.metaMetadata.brandId'?: undefined;
119
- brandId?: undefined;
120
- };
121
- unique: boolean;
122
- } | {
123
- key: {
124
- lifecycleState: number;
125
- 'lifecycleOperation.requestId': number;
126
- redboxOid?: undefined;
127
- 'deletedRecordMetadata.metaMetadata.brandId'?: undefined;
128
- brandId?: undefined;
129
- };
130
- unique?: undefined;
131
- } | {
132
- key: {
133
- 'deletedRecordMetadata.metaMetadata.brandId': number;
134
- redboxOid: number;
135
- lifecycleState?: undefined;
136
- 'lifecycleOperation.requestId'?: undefined;
137
- brandId?: undefined;
138
- };
139
- unique?: undefined;
140
- } | {
141
- key: {
142
- brandId: number;
143
- redboxOid: number;
144
- lifecycleState?: undefined;
145
- 'lifecycleOperation.requestId'?: undefined;
146
- 'deletedRecordMetadata.metaMetadata.brandId'?: undefined;
147
- };
148
- unique?: undefined;
149
- })[];
150
- recordIdentityIndices: {
151
- key: {
152
- redboxOid: number;
153
- };
154
- unique: boolean;
155
- }[];
156
104
  };
157
105
  };
@@ -17,24 +17,9 @@ exports.storage = {
17
17
  { key: { 'metaMetadata.createdOn': -1 } },
18
18
  { key: { 'metaMetadata.lastSaveDate': 1 } },
19
19
  { key: { 'metaMetadata.lastSaveDate': -1 } },
20
- // Active create/restore classification relies on duplicate-key facts;
21
- // keep the native Mongo index explicit as well as the Waterline model
22
- // constraint. One single-field index serves both scan directions.
23
- { key: { redboxOid: 1 }, unique: true },
20
+ { key: { redboxOid: 1 } },
21
+ { key: { redboxOid: -1 } },
24
22
  ],
25
- // Every tombstone lookup starts from the OID, so it leads the compound
26
- // keys; the brand is a filter on the single document the OID selects. The
27
- // lifecycle key supports scanning for interrupted staged operations.
28
- deletedRecordIndices: [
29
- { key: { redboxOid: 1 }, unique: true },
30
- { key: { lifecycleState: 1, 'lifecycleOperation.requestId': 1 } },
31
- { key: { 'deletedRecordMetadata.metaMetadata.brandId': 1, redboxOid: 1 } },
32
- { key: { brandId: 1, redboxOid: 1 } },
33
- ],
34
- // A committed incarnation is intentionally never purged. The only safe
35
- // exception is an unused create reservation released after a certified
36
- // non-write and authoritative empty-state checks.
37
- recordIdentityIndices: [{ key: { redboxOid: 1 }, unique: true }],
38
23
  },
39
24
  };
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLE9BQU8sR0FBRztJQUNyQixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRTtZQUNQLEVBQUUsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pCLEVBQUUsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QixFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QixFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzdCLEVBQUUsR0FBRyxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsRUFBRSxHQUFHLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxFQUFFLEdBQUcsRUFBRSxFQUFFLHdCQUF3QixFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hDLEVBQUUsR0FBRyxFQUFFLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxFQUFFLEdBQUcsRUFBRSxFQUFFLDJCQUEyQixFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzNDLEVBQUUsR0FBRyxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QyxzRUFBc0U7WUFDdEUsc0VBQXNFO1lBQ3RFLGtFQUFrRTtZQUNsRSxFQUFFLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1NBQ3hDO1FBQ0QsdUVBQXVFO1FBQ3ZFLDBFQUEwRTtRQUMxRSxxRUFBcUU7UUFDckUsb0JBQW9CLEVBQUU7WUFDcEIsRUFBRSxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUN2QyxFQUFFLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUUsOEJBQThCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakUsRUFBRSxHQUFHLEVBQUUsRUFBRSw0Q0FBNEMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUU7U0FDdEM7UUFDRCx1RUFBdUU7UUFDdkUsdUVBQXVFO1FBQ3ZFLGtEQUFrRDtRQUNsRCxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztLQUNqRTtDQUNGLENBQUMifQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLE9BQU8sR0FBRztJQUNyQixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRTtZQUNQLEVBQUUsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pCLEVBQUUsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QixFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QixFQUFFLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzdCLEVBQUUsR0FBRyxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsRUFBRSxHQUFHLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxFQUFFLEdBQUcsRUFBRSxFQUFFLHdCQUF3QixFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hDLEVBQUUsR0FBRyxFQUFFLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxFQUFFLEdBQUcsRUFBRSxFQUFFLDJCQUEyQixFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzNDLEVBQUUsR0FBRyxFQUFFLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QyxFQUFFLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QixFQUFFLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1NBQzNCO0tBQ0Y7Q0FDRixDQUFDIn0=
package/dist/index.d.ts CHANGED
@@ -3,7 +3,6 @@ import { storage } from './config/storage';
3
3
  import { record } from './config/record';
4
4
  import { MongoModels } from './models';
5
5
  import { ServiceExports } from './services';
6
- import { registerRedboxMigrations } from './migrations';
7
6
  type RedboxStorageMongoHook = ((_sails: unknown) => SailsHook) & {
8
7
  registerRedboxModels: () => typeof MongoModels;
9
8
  registerRedboxServices: () => typeof ServiceExports;
@@ -11,7 +10,6 @@ type RedboxStorageMongoHook = ((_sails: unknown) => SailsHook) & {
11
10
  storage: typeof storage;
12
11
  record: typeof record;
13
12
  };
14
- registerRedboxMigrations: typeof registerRedboxMigrations;
15
13
  ServiceExports: typeof ServiceExports;
16
14
  };
17
15
  declare const hook: RedboxStorageMongoHook;
package/dist/index.js CHANGED
@@ -3,7 +3,6 @@ const storage_1 = require("./config/storage");
3
3
  const record_1 = require("./config/record");
4
4
  const models_1 = require("./models");
5
5
  const services_1 = require("./services");
6
- const migrations_1 = require("./migrations");
7
6
  const hook = ((_sails) => ({
8
7
  initialize(cb) {
9
8
  cb();
@@ -28,6 +27,5 @@ hook.registerRedboxConfig = function registerRedboxConfig() {
28
27
  };
29
28
  };
30
29
  hook.ServiceExports = services_1.ServiceExports;
31
- hook.registerRedboxMigrations = migrations_1.registerRedboxMigrations;
32
30
  module.exports = hook;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLDhDQUEyQztBQUMzQyw0Q0FBeUM7QUFDekMscUNBQXVDO0FBQ3ZDLHlDQUE0QztBQUM1Qyw2Q0FBd0Q7QUFVeEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsQyxVQUFVLENBQUMsRUFBeUI7UUFDbEMsRUFBRSxFQUFFLENBQUM7SUFDUCxDQUFDO0lBQ0QsTUFBTSxFQUFFO1FBQ04sTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsRUFBRTtLQUNWO0lBQ0QsU0FBUyxLQUFJLENBQUM7SUFDZCxRQUFRLEVBQUUsRUFBRTtDQUNiLENBQUMsQ0FBMkIsQ0FBQztBQUU5QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxvQkFBb0I7SUFDdkQsT0FBTyxvQkFBVyxDQUFDO0FBQ3JCLENBQUMsQ0FBQztBQUVGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLHNCQUFzQjtJQUMzRCxPQUFPLHlCQUFjLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsb0JBQW9CO0lBQ3ZELE9BQU87UUFDTCxPQUFPLEVBQVAsaUJBQU87UUFDUCxNQUFNLEVBQU4sZUFBTTtLQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixJQUFJLENBQUMsY0FBYyxHQUFHLHlCQUFjLENBQUM7QUFDckMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHFDQUF3QixDQUFDO0FBRXpELGlCQUFTLElBQUksQ0FBQyJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLDhDQUEyQztBQUMzQyw0Q0FBeUM7QUFDekMscUNBQXVDO0FBQ3ZDLHlDQUE0QztBQVM1QyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLFVBQVUsQ0FBQyxFQUF5QjtRQUNsQyxFQUFFLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFDRCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUsRUFBRTtRQUNWLEtBQUssRUFBRSxFQUFFO0tBQ1Y7SUFDRCxTQUFTLEtBQUksQ0FBQztJQUNkLFFBQVEsRUFBRSxFQUFFO0NBQ2IsQ0FBQyxDQUEyQixDQUFDO0FBRTlCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLG9CQUFvQjtJQUN2RCxPQUFPLG9CQUFXLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBRUYsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFNBQVMsc0JBQXNCO0lBQzNELE9BQU8seUJBQWMsQ0FBQztBQUN4QixDQUFDLENBQUM7QUFFRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxvQkFBb0I7SUFDdkQsT0FBTztRQUNMLE9BQU8sRUFBUCxpQkFBTztRQUNQLE1BQU0sRUFBTixlQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLElBQUksQ0FBQyxjQUFjLEdBQUcseUJBQWMsQ0FBQztBQUVyQyxpQkFBUyxJQUFJLENBQUMifQ==
@@ -1,14 +1,6 @@
1
1
  import 'reflect-metadata';
2
- import { type DeletedRecordLifecycleOperation, type DeletedRecordLifecycleState } from '@researchdatabox/redbox-core';
3
2
  export declare class DeletedRecordClass {
4
3
  redboxOid?: string;
5
- /** Sole authority for the current tombstone lifecycle revision. */
6
- revision: number;
7
- /** Assigned only by native lifecycle storage from the durable OID owner. */
8
- incarnationId?: string;
9
- brandId?: string;
10
- lifecycleState: DeletedRecordLifecycleState;
11
- lifecycleOperation?: DeletedRecordLifecycleOperation;
12
4
  deletedRecordMetadata?: Record<string, unknown>;
13
5
  dateDeleted: string;
14
6
  }
@@ -12,40 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DeletedRecordWLDef = exports.DeletedRecordClass = void 0;
13
13
  require("reflect-metadata");
14
14
  const redbox_core_1 = require("@researchdatabox/redbox-core");
15
- /**
16
- * Ordinary Waterline creates cannot choose a tombstone revision. The storage
17
- * lifecycle path installs lineage-bearing tombstones through its native
18
- * primitive after deriving the revision from authoritative active state.
19
- */
20
- const normalizeTombstoneLifecycle = (record, proceed) => {
21
- record.revision = redbox_core_1.INITIAL_RECORD_REVISION;
22
- delete record.incarnationId;
23
- if (!(0, redbox_core_1.isDeletedRecordLifecycleState)(record.lifecycleState)) {
24
- record.lifecycleState = 'deleted';
25
- }
26
- if (record.deletedRecordMetadata && typeof record.deletedRecordMetadata === 'object') {
27
- delete record.deletedRecordMetadata.revision;
28
- }
29
- proceed();
30
- };
31
- /** Tombstone revisions only advance through the atomic tombstone primitives. */
32
- const stripTombstoneRevision = (record, proceed) => {
33
- delete record.revision;
34
- delete record.incarnationId;
35
- if (record.deletedRecordMetadata && typeof record.deletedRecordMetadata === 'object') {
36
- delete record.deletedRecordMetadata.revision;
37
- }
38
- proceed();
39
- };
40
15
  let DeletedRecordClass = class DeletedRecordClass {
41
16
  redboxOid;
42
- /** Sole authority for the current tombstone lifecycle revision. */
43
- revision = redbox_core_1.INITIAL_RECORD_REVISION;
44
- /** Assigned only by native lifecycle storage from the durable OID owner. */
45
- incarnationId;
46
- brandId;
47
- lifecycleState = 'deleted';
48
- lifecycleOperation;
49
17
  deletedRecordMetadata;
50
18
  dateDeleted;
51
19
  };
@@ -54,26 +22,6 @@ __decorate([
54
22
  (0, redbox_core_1.Attr)({ type: 'string', unique: true }),
55
23
  __metadata("design:type", String)
56
24
  ], DeletedRecordClass.prototype, "redboxOid", void 0);
57
- __decorate([
58
- (0, redbox_core_1.Attr)({ type: 'number', defaultsTo: redbox_core_1.INITIAL_RECORD_REVISION, custom: redbox_core_1.isRecordRevision }),
59
- __metadata("design:type", Number)
60
- ], DeletedRecordClass.prototype, "revision", void 0);
61
- __decorate([
62
- (0, redbox_core_1.Attr)({ type: 'string', custom: redbox_core_1.isCanonicalSaveRequestId }),
63
- __metadata("design:type", String)
64
- ], DeletedRecordClass.prototype, "incarnationId", void 0);
65
- __decorate([
66
- (0, redbox_core_1.Attr)({ type: 'string' }),
67
- __metadata("design:type", String)
68
- ], DeletedRecordClass.prototype, "brandId", void 0);
69
- __decorate([
70
- (0, redbox_core_1.Attr)({ type: 'string', defaultsTo: 'deleted', isIn: redbox_core_1.DELETED_RECORD_LIFECYCLE_STATES }),
71
- __metadata("design:type", String)
72
- ], DeletedRecordClass.prototype, "lifecycleState", void 0);
73
- __decorate([
74
- (0, redbox_core_1.Attr)({ type: 'json', custom: redbox_core_1.isDeletedRecordLifecycleOperation }),
75
- __metadata("design:type", Object)
76
- ], DeletedRecordClass.prototype, "lifecycleOperation", void 0);
77
25
  __decorate([
78
26
  (0, redbox_core_1.Attr)({ type: 'json' }),
79
27
  __metadata("design:type", Object)
@@ -83,9 +31,7 @@ __decorate([
83
31
  __metadata("design:type", String)
84
32
  ], DeletedRecordClass.prototype, "dateDeleted", void 0);
85
33
  exports.DeletedRecordClass = DeletedRecordClass = __decorate([
86
- (0, redbox_core_1.BeforeCreate)(normalizeTombstoneLifecycle),
87
- (0, redbox_core_1.BeforeUpdate)(stripTombstoneRevision),
88
34
  (0, redbox_core_1.Entity)('deletedrecord', { datastore: 'redboxStorage' })
89
35
  ], DeletedRecordClass);
90
36
  exports.DeletedRecordWLDef = (0, redbox_core_1.toWaterlineModelDef)(DeletedRecordClass);
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVsZXRlZFJlY29yZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvRGVsZXRlZFJlY29yZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw0QkFBMEI7QUFDMUIsOERBY3NDO0FBRXRDOzs7O0dBSUc7QUFDSCxNQUFNLDJCQUEyQixHQUFHLENBQUMsTUFBK0IsRUFBRSxPQUE4QixFQUFFLEVBQUU7SUFDdEcsTUFBTSxDQUFDLFFBQVEsR0FBRyxxQ0FBdUIsQ0FBQztJQUMxQyxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDNUIsSUFBSSxDQUFDLElBQUEsMkNBQTZCLEVBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLHFCQUFxQixJQUFJLE9BQU8sTUFBTSxDQUFDLHFCQUFxQixLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3JGLE9BQVEsTUFBTSxDQUFDLHFCQUFpRCxDQUFDLFFBQVEsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUM7QUFFRixnRkFBZ0Y7QUFDaEYsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE1BQStCLEVBQUUsT0FBOEIsRUFBRSxFQUFFO0lBQ2pHLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUN2QixPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDNUIsSUFBSSxNQUFNLENBQUMscUJBQXFCLElBQUksT0FBTyxNQUFNLENBQUMscUJBQXFCLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckYsT0FBUSxNQUFNLENBQUMscUJBQWlELENBQUMsUUFBUSxDQUFDO0lBQzVFLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQUtLLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQWtCO0lBRXRCLFNBQVMsQ0FBVTtJQUUxQixtRUFBbUU7SUFFNUQsUUFBUSxHQUFXLHFDQUF1QixDQUFDO0lBRWxELDRFQUE0RTtJQUVyRSxhQUFhLENBQVU7SUFHdkIsT0FBTyxDQUFVO0lBR2pCLGNBQWMsR0FBZ0MsU0FBUyxDQUFDO0lBR3hELGtCQUFrQixDQUFtQztJQUdyRCxxQkFBcUIsQ0FBMkI7SUFHaEQsV0FBVyxDQUFVO0NBQzdCLENBQUE7QUExQlksZ0RBQWtCO0FBRXRCO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7O3FEQUNiO0FBSW5CO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUscUNBQXVCLEVBQUUsTUFBTSxFQUFFLDhCQUFnQixFQUFFLENBQUM7O29EQUN0QztBQUkzQztJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLHNDQUF3QixFQUFFLENBQUM7O3lEQUM3QjtBQUd2QjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQzs7bURBQ0Q7QUFHakI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLDZDQUErQixFQUFFLENBQUM7OzBEQUN4QjtBQUd4RDtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLCtDQUFpQyxFQUFFLENBQUM7OzhEQUNOO0FBR3JEO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDOztpRUFDZ0M7QUFHaEQ7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQzs7dURBQ2xCOzZCQXpCakIsa0JBQWtCO0lBSDlCLElBQUEsMEJBQVksRUFBQywyQkFBMkIsQ0FBQztJQUN6QyxJQUFBLDBCQUFZLEVBQUMsc0JBQXNCLENBQUM7SUFDcEMsSUFBQSxvQkFBTSxFQUFDLGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQztHQUMzQyxrQkFBa0IsQ0EwQjlCO0FBRVksUUFBQSxrQkFBa0IsR0FBRyxJQUFBLGlDQUFtQixFQUFDLGtCQUFrQixDQUFDLENBQUMifQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVsZXRlZFJlY29yZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvRGVsZXRlZFJlY29yZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw0QkFBMEI7QUFDMUIsOERBQWlGO0FBRzFFLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQWtCO0lBRXRCLFNBQVMsQ0FBVTtJQUduQixxQkFBcUIsQ0FBMkI7SUFHaEQsV0FBVyxDQUFVO0NBQzdCLENBQUE7QUFUWSxnREFBa0I7QUFFdEI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzs7cURBQ2I7QUFHbkI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7O2lFQUNnQztBQUdoRDtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDOzt1REFDbEI7NkJBUmpCLGtCQUFrQjtJQUQ5QixJQUFBLG9CQUFNLEVBQUMsZUFBZSxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO0dBQzNDLGtCQUFrQixDQVM5QjtBQUVZLFFBQUEsa0JBQWtCLEdBQUcsSUFBQSxpQ0FBbUIsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDIn0=
@@ -3,15 +3,12 @@ export type JsonMap = Record<string, unknown>;
3
3
  export declare class RecordClass {
4
4
  redboxOid?: string;
5
5
  harvestId?: string;
6
- /** Server-owned. Clients must retain the opaque tag rather than assume 0. */
7
- revision: number;
8
- /** Assigned only by the native conditional-create storage boundary. */
9
- incarnationId?: string;
10
- lifecycleOperationId?: string;
11
6
  metaMetadata?: JsonMap;
12
7
  metadata?: JsonMap;
13
8
  workflow?: JsonMap;
14
9
  authorization?: JsonMap;
10
+ figshareSyncIntent?: JsonMap;
11
+ recordVersion?: number;
15
12
  dateCreated: string;
16
13
  lastSaveDate: string;
17
14
  }
@@ -12,41 +12,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.RecordWLDef = exports.RecordClass = void 0;
13
13
  require("reflect-metadata");
14
14
  const redbox_core_1 = require("@researchdatabox/redbox-core");
15
- /**
16
- * Ordinary Waterline creates always start a new record lineage. Lifecycle
17
- * restoration uses a server-owned native storage path so it can continue a
18
- * tombstone lineage without exposing a caller-controlled way to select the
19
- * initial revision.
20
- */
21
- const normalizeServerRevision = (record, proceed) => {
22
- record.revision = redbox_core_1.INITIAL_RECORD_REVISION;
23
- delete record.incarnationId;
24
- delete record.lifecycleOperationId;
25
- proceed();
26
- };
27
- /**
28
- * Only the atomic compare-and-set path may advance a revision, and it bypasses
29
- * Waterline to do so. Any other update therefore leaves the stored revision
30
- * untouched instead of writing a caller-supplied value.
31
- */
32
- const stripServerRevision = (record, proceed) => {
33
- delete record.revision;
34
- delete record.incarnationId;
35
- delete record.lifecycleOperationId;
36
- proceed();
37
- };
38
15
  let RecordClass = class RecordClass {
39
16
  redboxOid;
40
17
  harvestId;
41
- /** Server-owned. Clients must retain the opaque tag rather than assume 0. */
42
- revision = redbox_core_1.INITIAL_RECORD_REVISION;
43
- /** Assigned only by the native conditional-create storage boundary. */
44
- incarnationId;
45
- lifecycleOperationId;
46
18
  metaMetadata;
47
19
  metadata;
48
20
  workflow;
49
21
  authorization;
22
+ figshareSyncIntent;
23
+ recordVersion;
50
24
  dateCreated;
51
25
  lastSaveDate;
52
26
  };
@@ -59,18 +33,6 @@ __decorate([
59
33
  (0, redbox_core_1.Attr)({ type: 'string' }),
60
34
  __metadata("design:type", String)
61
35
  ], RecordClass.prototype, "harvestId", void 0);
62
- __decorate([
63
- (0, redbox_core_1.Attr)({ type: 'number', defaultsTo: redbox_core_1.INITIAL_RECORD_REVISION, custom: redbox_core_1.isRecordRevision }),
64
- __metadata("design:type", Number)
65
- ], RecordClass.prototype, "revision", void 0);
66
- __decorate([
67
- (0, redbox_core_1.Attr)({ type: 'string', custom: redbox_core_1.isCanonicalSaveRequestId }),
68
- __metadata("design:type", String)
69
- ], RecordClass.prototype, "incarnationId", void 0);
70
- __decorate([
71
- (0, redbox_core_1.Attr)({ type: 'string', custom: redbox_core_1.isCanonicalSaveRequestId }),
72
- __metadata("design:type", String)
73
- ], RecordClass.prototype, "lifecycleOperationId", void 0);
74
36
  __decorate([
75
37
  (0, redbox_core_1.Attr)({ type: 'json' }),
76
38
  __metadata("design:type", Object)
@@ -87,6 +49,14 @@ __decorate([
87
49
  (0, redbox_core_1.Attr)({ type: 'json' }),
88
50
  __metadata("design:type", Object)
89
51
  ], RecordClass.prototype, "authorization", void 0);
52
+ __decorate([
53
+ (0, redbox_core_1.Attr)({ type: 'json' }),
54
+ __metadata("design:type", Object)
55
+ ], RecordClass.prototype, "figshareSyncIntent", void 0);
56
+ __decorate([
57
+ (0, redbox_core_1.Attr)({ type: 'number', defaultsTo: 0 }),
58
+ __metadata("design:type", Number)
59
+ ], RecordClass.prototype, "recordVersion", void 0);
90
60
  __decorate([
91
61
  (0, redbox_core_1.Attr)({ type: 'string', autoCreatedAt: true }),
92
62
  __metadata("design:type", String)
@@ -96,11 +66,9 @@ __decorate([
96
66
  __metadata("design:type", String)
97
67
  ], RecordClass.prototype, "lastSaveDate", void 0);
98
68
  exports.RecordClass = RecordClass = __decorate([
99
- (0, redbox_core_1.BeforeCreate)(normalizeServerRevision),
100
- (0, redbox_core_1.BeforeUpdate)(stripServerRevision),
101
69
  (0, redbox_core_1.Entity)('record', {
102
70
  datastore: 'redboxStorage',
103
71
  })
104
72
  ], RecordClass);
105
73
  exports.RecordWLDef = (0, redbox_core_1.toWaterlineModelDef)(RecordClass);
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVscy9SZWNvcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNEJBQTBCO0FBQzFCLDhEQVNzQztBQUl0Qzs7Ozs7R0FLRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxNQUErQixFQUFFLE9BQThCLEVBQUUsRUFBRTtJQUNsRyxNQUFNLENBQUMsUUFBUSxHQUFHLHFDQUF1QixDQUFDO0lBQzFDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBK0IsRUFBRSxPQUE4QixFQUFFLEVBQUU7SUFDOUYsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQU9LLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFFZixTQUFTLENBQVU7SUFHbkIsU0FBUyxDQUFVO0lBRTFCLDZFQUE2RTtJQUV0RSxRQUFRLEdBQVcscUNBQXVCLENBQUM7SUFFbEQsdUVBQXVFO0lBRWhFLGFBQWEsQ0FBVTtJQUd2QixvQkFBb0IsQ0FBVTtJQUc5QixZQUFZLENBQVc7SUFHdkIsUUFBUSxDQUFXO0lBR25CLFFBQVEsQ0FBVztJQUduQixhQUFhLENBQVc7SUFHeEIsV0FBVyxDQUFVO0lBR3JCLFlBQVksQ0FBVTtDQUM5QixDQUFBO0FBbkNZLGtDQUFXO0FBRWY7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzs7OENBQ2I7QUFHbkI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7OzhDQUNDO0FBSW5CO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUscUNBQXVCLEVBQUUsTUFBTSxFQUFFLDhCQUFnQixFQUFFLENBQUM7OzZDQUN0QztBQUkzQztJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLHNDQUF3QixFQUFFLENBQUM7O2tEQUM3QjtBQUd2QjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLHNDQUF3QixFQUFFLENBQUM7O3lEQUN0QjtBQUc5QjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs7aURBQ087QUFHdkI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7OzZDQUNHO0FBR25CO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDOzs2Q0FDRztBQUduQjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs7a0RBQ1E7QUFHeEI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQzs7Z0RBQ2xCO0FBR3JCO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7O2lEQUNqQjtzQkFsQ2xCLFdBQVc7SUFMdkIsSUFBQSwwQkFBWSxFQUFDLHVCQUF1QixDQUFDO0lBQ3JDLElBQUEsMEJBQVksRUFBQyxtQkFBbUIsQ0FBQztJQUNqQyxJQUFBLG9CQUFNLEVBQUMsUUFBUSxFQUFFO1FBQ2hCLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUM7R0FDVyxXQUFXLENBbUN2QjtBQUVZLFFBQUEsV0FBVyxHQUFHLElBQUEsaUNBQW1CLEVBQUMsV0FBVyxDQUFDLENBQUMifQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVscy9SZWNvcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNEJBQTBCO0FBQzFCLDhEQUFpRjtBQU8xRSxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQUFXO0lBRWYsU0FBUyxDQUFVO0lBR25CLFNBQVMsQ0FBVTtJQUduQixZQUFZLENBQVc7SUFHdkIsUUFBUSxDQUFXO0lBR25CLFFBQVEsQ0FBVztJQUduQixhQUFhLENBQVc7SUFHeEIsa0JBQWtCLENBQVc7SUFHN0IsYUFBYSxDQUFVO0lBR3ZCLFdBQVcsQ0FBVTtJQUdyQixZQUFZLENBQVU7Q0FDOUIsQ0FBQTtBQTlCWSxrQ0FBVztBQUVmO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7OzhDQUNiO0FBR25CO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzs4Q0FDQztBQUduQjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs7aURBQ087QUFHdkI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7OzZDQUNHO0FBR25CO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDOzs2Q0FDRztBQUduQjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs7a0RBQ1E7QUFHeEI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7O3VEQUNhO0FBRzdCO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7O2tEQUNWO0FBR3ZCO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7O2dEQUNsQjtBQUdyQjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDOztpREFDakI7c0JBN0JsQixXQUFXO0lBSHZCLElBQUEsb0JBQU0sRUFBQyxRQUFRLEVBQUU7UUFDaEIsU0FBUyxFQUFFLGVBQWU7S0FDM0IsQ0FBQztHQUNXLFdBQVcsQ0E4QnZCO0FBRVksUUFBQSxXQUFXLEdBQUcsSUFBQSxpQ0FBbUIsRUFBQyxXQUFXLENBQUMsQ0FBQyJ9
@@ -1,11 +1,10 @@
1
1
  import 'reflect-metadata';
2
2
  export declare class RecordAuditClass {
3
3
  redboxOid?: string;
4
+ occurredAt?: string;
4
5
  user?: Record<string, unknown>;
5
6
  record?: Record<string, unknown>;
6
7
  dateCreated: string;
7
8
  action?: string;
8
- executionSummary?: Record<string, unknown>;
9
- concurrency?: Record<string, unknown>;
10
9
  }
11
10
  export declare const RecordAuditWLDef: import("@researchdatabox/redbox-core").WaterlineModelDefinition;
@@ -14,18 +14,21 @@ require("reflect-metadata");
14
14
  const redbox_core_1 = require("@researchdatabox/redbox-core");
15
15
  let RecordAuditClass = class RecordAuditClass {
16
16
  redboxOid;
17
+ occurredAt;
17
18
  user;
18
19
  record;
19
20
  dateCreated;
20
21
  action;
21
- executionSummary;
22
- concurrency;
23
22
  };
24
23
  exports.RecordAuditClass = RecordAuditClass;
25
24
  __decorate([
26
25
  (0, redbox_core_1.Attr)({ type: 'string' }),
27
26
  __metadata("design:type", String)
28
27
  ], RecordAuditClass.prototype, "redboxOid", void 0);
28
+ __decorate([
29
+ (0, redbox_core_1.Attr)({ type: 'string' }),
30
+ __metadata("design:type", String)
31
+ ], RecordAuditClass.prototype, "occurredAt", void 0);
29
32
  __decorate([
30
33
  (0, redbox_core_1.Attr)({ type: 'json' }),
31
34
  __metadata("design:type", Object)
@@ -42,16 +45,8 @@ __decorate([
42
45
  (0, redbox_core_1.Attr)({ type: 'string' }),
43
46
  __metadata("design:type", String)
44
47
  ], RecordAuditClass.prototype, "action", void 0);
45
- __decorate([
46
- (0, redbox_core_1.Attr)({ type: 'json' }),
47
- __metadata("design:type", Object)
48
- ], RecordAuditClass.prototype, "executionSummary", void 0);
49
- __decorate([
50
- (0, redbox_core_1.Attr)({ type: 'json' }),
51
- __metadata("design:type", Object)
52
- ], RecordAuditClass.prototype, "concurrency", void 0);
53
48
  exports.RecordAuditClass = RecordAuditClass = __decorate([
54
49
  (0, redbox_core_1.Entity)('recordaudit', { datastore: 'redboxStorage' })
55
50
  ], RecordAuditClass);
56
51
  exports.RecordAuditWLDef = (0, redbox_core_1.toWaterlineModelDef)(RecordAuditClass);
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb3JkQXVkaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWxzL1JlY29yZEF1ZGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDRCQUEwQjtBQUMxQiw4REFBaUY7QUFHMUUsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFFcEIsU0FBUyxDQUFVO0lBR25CLElBQUksQ0FBMkI7SUFHL0IsTUFBTSxDQUEyQjtJQUdqQyxXQUFXLENBQVU7SUFHckIsTUFBTSxDQUFVO0lBR2hCLGdCQUFnQixDQUEyQjtJQUczQyxXQUFXLENBQTJCO0NBQzlDLENBQUE7QUFyQlksNENBQWdCO0FBRXBCO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzttREFDQztBQUduQjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs7OENBQ2U7QUFHL0I7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7O2dEQUNpQjtBQUdqQztJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDOztxREFDbEI7QUFHckI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7O2dEQUNGO0FBR2hCO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDOzswREFDMkI7QUFHM0M7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7O3FEQUNzQjsyQkFwQmxDLGdCQUFnQjtJQUQ1QixJQUFBLG9CQUFNLEVBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO0dBQ3pDLGdCQUFnQixDQXFCNUI7QUFFWSxRQUFBLGdCQUFnQixHQUFHLElBQUEsaUNBQW1CLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQyJ9
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVjb3JkQXVkaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWxzL1JlY29yZEF1ZGl0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDRCQUEwQjtBQUMxQiw4REFBaUY7QUFHMUUsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFFcEIsU0FBUyxDQUFVO0lBR25CLFVBQVUsQ0FBVTtJQUdwQixJQUFJLENBQTJCO0lBRy9CLE1BQU0sQ0FBMkI7SUFHakMsV0FBVyxDQUFVO0lBR3JCLE1BQU0sQ0FBVTtDQUN4QixDQUFBO0FBbEJZLDRDQUFnQjtBQUVwQjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQzs7bURBQ0M7QUFHbkI7SUFETixJQUFBLGtCQUFJLEVBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7O29EQUNFO0FBR3BCO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDOzs4Q0FDZTtBQUcvQjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzs7Z0RBQ2lCO0FBR2pDO0lBRE4sSUFBQSxrQkFBSSxFQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7O3FEQUNsQjtBQUdyQjtJQUROLElBQUEsa0JBQUksRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQzs7Z0RBQ0Y7MkJBakJaLGdCQUFnQjtJQUQ1QixJQUFBLG9CQUFNLEVBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO0dBQ3pDLGdCQUFnQixDQWtCNUI7QUFFWSxRQUFBLGdCQUFnQixHQUFHLElBQUEsaUNBQW1CLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQyJ9
@@ -2,13 +2,9 @@ export * from './Record';
2
2
  export * from './DeletedRecord';
3
3
  export * from './RecordAudit';
4
4
  export * from './IntegrationAudit';
5
- export * from './RecordSchemaArtifact';
6
- export * from './RecordSchemaReference';
7
5
  export declare const MongoModels: {
8
6
  Record: import("@researchdatabox/redbox-core").WaterlineModelDefinition;
9
7
  DeletedRecord: import("@researchdatabox/redbox-core").WaterlineModelDefinition;
10
8
  RecordAudit: import("@researchdatabox/redbox-core").WaterlineModelDefinition;
11
9
  IntegrationAudit: import("@researchdatabox/redbox-core").WaterlineModelDefinition;
12
- RecordSchemaArtifact: import("@researchdatabox/redbox-core").WaterlineModelDefinition;
13
- RecordSchemaReference: import("@researchdatabox/redbox-core").WaterlineModelDefinition;
14
10
  };
@@ -19,20 +19,14 @@ const Record_1 = require("./Record");
19
19
  const DeletedRecord_1 = require("./DeletedRecord");
20
20
  const RecordAudit_1 = require("./RecordAudit");
21
21
  const IntegrationAudit_1 = require("./IntegrationAudit");
22
- const RecordSchemaArtifact_1 = require("./RecordSchemaArtifact");
23
- const RecordSchemaReference_1 = require("./RecordSchemaReference");
24
22
  __exportStar(require("./Record"), exports);
25
23
  __exportStar(require("./DeletedRecord"), exports);
26
24
  __exportStar(require("./RecordAudit"), exports);
27
25
  __exportStar(require("./IntegrationAudit"), exports);
28
- __exportStar(require("./RecordSchemaArtifact"), exports);
29
- __exportStar(require("./RecordSchemaReference"), exports);
30
26
  exports.MongoModels = {
31
27
  Record: Record_1.RecordWLDef,
32
28
  DeletedRecord: DeletedRecord_1.DeletedRecordWLDef,
33
29
  RecordAudit: RecordAudit_1.RecordAuditWLDef,
34
30
  IntegrationAudit: IntegrationAudit_1.IntegrationAuditWLDef,
35
- RecordSchemaArtifact: RecordSchemaArtifact_1.RecordSchemaArtifactWLDef,
36
- RecordSchemaReference: RecordSchemaReference_1.RecordSchemaReferenceWLDef,
37
31
  };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBQXVDO0FBQ3ZDLG1EQUFxRDtBQUNyRCwrQ0FBaUQ7QUFDakQseURBQTJEO0FBQzNELGlFQUFtRTtBQUNuRSxtRUFBcUU7QUFFckUsMkNBQXlCO0FBQ3pCLGtEQUFnQztBQUNoQyxnREFBOEI7QUFDOUIscURBQW1DO0FBQ25DLHlEQUF1QztBQUN2QywwREFBd0M7QUFFM0IsUUFBQSxXQUFXLEdBQUc7SUFDekIsTUFBTSxFQUFFLG9CQUFXO0lBQ25CLGFBQWEsRUFBRSxrQ0FBa0I7SUFDakMsV0FBVyxFQUFFLDhCQUFnQjtJQUM3QixnQkFBZ0IsRUFBRSx3Q0FBcUI7SUFDdkMsb0JBQW9CLEVBQUUsZ0RBQXlCO0lBQy9DLHFCQUFxQixFQUFFLGtEQUEwQjtDQUNsRCxDQUFDIn0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBQXVDO0FBQ3ZDLG1EQUFxRDtBQUNyRCwrQ0FBaUQ7QUFDakQseURBQTJEO0FBRTNELDJDQUF5QjtBQUN6QixrREFBZ0M7QUFDaEMsZ0RBQThCO0FBQzlCLHFEQUFtQztBQUV0QixRQUFBLFdBQVcsR0FBRztJQUN6QixNQUFNLEVBQUUsb0JBQVc7SUFDbkIsYUFBYSxFQUFFLGtDQUFrQjtJQUNqQyxXQUFXLEVBQUUsOEJBQWdCO0lBQzdCLGdCQUFnQixFQUFFLHdDQUFxQjtDQUN4QyxDQUFDIn0=