@cratis/chronicle 3.1.1 → 4.0.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.
Files changed (194) hide show
  1. package/EventStore.ts +1 -1
  2. package/compliance/ComplianceContracts.ts +59 -0
  3. package/compliance/IPIIManager.ts +12 -0
  4. package/compliance/PIIManager.spec.ts +50 -0
  5. package/compliance/PIIManager.ts +9 -0
  6. package/compliance/PIINotSupportedOnEventSourceId.ts +21 -0
  7. package/compliance/index.ts +2 -0
  8. package/compliance/pii.spec.ts +37 -0
  9. package/compliance/pii.ts +16 -1
  10. package/compliance/subject.spec.ts +45 -0
  11. package/compliance/subject.ts +64 -0
  12. package/dist/EventStore.js +1 -1
  13. package/dist/EventStore.js.map +1 -1
  14. package/dist/compliance/ComplianceContracts.d.ts +31 -0
  15. package/dist/compliance/ComplianceContracts.d.ts.map +1 -1
  16. package/dist/compliance/ComplianceContracts.js +52 -0
  17. package/dist/compliance/ComplianceContracts.js.map +1 -1
  18. package/dist/compliance/IPIIManager.d.ts +11 -0
  19. package/dist/compliance/IPIIManager.d.ts.map +1 -1
  20. package/dist/compliance/PIIManager.d.ts +2 -0
  21. package/dist/compliance/PIIManager.d.ts.map +1 -1
  22. package/dist/compliance/PIIManager.js +8 -0
  23. package/dist/compliance/PIIManager.js.map +1 -1
  24. package/dist/compliance/PIINotSupportedOnEventSourceId.d.ts +11 -0
  25. package/dist/compliance/PIINotSupportedOnEventSourceId.d.ts.map +1 -0
  26. package/dist/compliance/PIINotSupportedOnEventSourceId.js +19 -0
  27. package/dist/compliance/PIINotSupportedOnEventSourceId.js.map +1 -0
  28. package/dist/compliance/index.d.ts +2 -0
  29. package/dist/compliance/index.d.ts.map +1 -1
  30. package/dist/compliance/index.js +2 -0
  31. package/dist/compliance/index.js.map +1 -1
  32. package/dist/compliance/pii.d.ts.map +1 -1
  33. package/dist/compliance/pii.js +13 -1
  34. package/dist/compliance/pii.js.map +1 -1
  35. package/dist/compliance/subject.d.ts +39 -0
  36. package/dist/compliance/subject.d.ts.map +1 -0
  37. package/dist/compliance/subject.js +58 -0
  38. package/dist/compliance/subject.js.map +1 -0
  39. package/dist/eventSequences/AppendOptions.d.ts +8 -0
  40. package/dist/eventSequences/AppendOptions.d.ts.map +1 -1
  41. package/dist/eventSequences/EventForEventSourceId.d.ts +7 -0
  42. package/dist/eventSequences/EventForEventSourceId.d.ts.map +1 -1
  43. package/dist/eventSequences/EventSequence.d.ts.map +1 -1
  44. package/dist/eventSequences/EventSequence.js +17 -6
  45. package/dist/eventSequences/EventSequence.js.map +1 -1
  46. package/dist/events/EventContext.d.ts +3 -0
  47. package/dist/events/EventContext.d.ts.map +1 -1
  48. package/dist/events/Tag.d.ts +10 -0
  49. package/dist/events/Tag.d.ts.map +1 -0
  50. package/dist/events/Tag.js +16 -0
  51. package/dist/events/Tag.js.map +1 -0
  52. package/dist/events/filterEventsByTagDecorator.d.ts +35 -0
  53. package/dist/events/filterEventsByTagDecorator.d.ts.map +1 -0
  54. package/dist/events/filterEventsByTagDecorator.js +48 -0
  55. package/dist/events/filterEventsByTagDecorator.js.map +1 -0
  56. package/dist/events/index.d.ts +4 -0
  57. package/dist/events/index.d.ts.map +1 -1
  58. package/dist/events/index.js +4 -0
  59. package/dist/events/index.js.map +1 -1
  60. package/dist/events/mergeTags.d.ts +12 -0
  61. package/dist/events/mergeTags.d.ts.map +1 -0
  62. package/dist/events/mergeTags.js +26 -0
  63. package/dist/events/mergeTags.js.map +1 -0
  64. package/dist/events/tagDecorator.d.ts +38 -0
  65. package/dist/events/tagDecorator.d.ts.map +1 -0
  66. package/dist/events/tagDecorator.js +54 -0
  67. package/dist/events/tagDecorator.js.map +1 -0
  68. package/dist/observation/ObserverRunningState.d.ts +9 -15
  69. package/dist/observation/ObserverRunningState.d.ts.map +1 -1
  70. package/dist/observation/ObserverRunningState.js +8 -14
  71. package/dist/observation/ObserverRunningState.js.map +1 -1
  72. package/dist/observation/index.d.ts +1 -0
  73. package/dist/observation/index.d.ts.map +1 -1
  74. package/dist/observation/index.js +1 -0
  75. package/dist/observation/index.js.map +1 -1
  76. package/dist/observation/toObserverRunningState.d.ts +9 -0
  77. package/dist/observation/toObserverRunningState.d.ts.map +1 -0
  78. package/dist/observation/toObserverRunningState.js +26 -0
  79. package/dist/observation/toObserverRunningState.js.map +1 -0
  80. package/dist/projections/IProjections.d.ts +71 -1
  81. package/dist/projections/IProjections.d.ts.map +1 -1
  82. package/dist/projections/ProjectionQueryResult.d.ts +8 -0
  83. package/dist/projections/ProjectionQueryResult.d.ts.map +1 -0
  84. package/dist/projections/ProjectionQueryResult.js +4 -0
  85. package/dist/projections/ProjectionQueryResult.js.map +1 -0
  86. package/dist/projections/ProjectionState.d.ts +18 -0
  87. package/dist/projections/ProjectionState.d.ts.map +1 -0
  88. package/dist/projections/ProjectionState.js +4 -0
  89. package/dist/projections/ProjectionState.js.map +1 -0
  90. package/dist/projections/Projections.d.ts +46 -1
  91. package/dist/projections/Projections.d.ts.map +1 -1
  92. package/dist/projections/Projections.js +153 -6
  93. package/dist/projections/Projections.js.map +1 -1
  94. package/dist/projections/UnableToQueryProjection.d.ts +12 -0
  95. package/dist/projections/UnableToQueryProjection.d.ts.map +1 -0
  96. package/dist/projections/UnableToQueryProjection.js +17 -0
  97. package/dist/projections/UnableToQueryProjection.js.map +1 -0
  98. package/dist/projections/index.d.ts +3 -0
  99. package/dist/projections/index.d.ts.map +1 -1
  100. package/dist/projections/index.js +1 -0
  101. package/dist/projections/index.js.map +1 -1
  102. package/dist/projections/modelBound/eventSequence.d.ts +22 -0
  103. package/dist/projections/modelBound/eventSequence.d.ts.map +1 -0
  104. package/dist/projections/modelBound/eventSequence.js +34 -0
  105. package/dist/projections/modelBound/eventSequence.js.map +1 -0
  106. package/dist/projections/modelBound/fromAll.d.ts +26 -0
  107. package/dist/projections/modelBound/fromAll.d.ts.map +1 -0
  108. package/dist/projections/modelBound/fromAll.js +31 -0
  109. package/dist/projections/modelBound/fromAll.js.map +1 -0
  110. package/dist/projections/modelBound/index.d.ts +4 -0
  111. package/dist/projections/modelBound/index.d.ts.map +1 -1
  112. package/dist/projections/modelBound/index.js +3 -0
  113. package/dist/projections/modelBound/index.js.map +1 -1
  114. package/dist/projections/modelBound/noAutoMap.d.ts +26 -0
  115. package/dist/projections/modelBound/noAutoMap.d.ts.map +1 -0
  116. package/dist/projections/modelBound/noAutoMap.js +44 -0
  117. package/dist/projections/modelBound/noAutoMap.js.map +1 -0
  118. package/dist/reactors/Reactors.d.ts.map +1 -1
  119. package/dist/reactors/Reactors.js +7 -3
  120. package/dist/reactors/Reactors.js.map +1 -1
  121. package/dist/readModels/MaterializedReadModels.d.ts +0 -1
  122. package/dist/readModels/MaterializedReadModels.d.ts.map +1 -1
  123. package/dist/readModels/MaterializedReadModels.js +2 -8
  124. package/dist/readModels/MaterializedReadModels.js.map +1 -1
  125. package/dist/readModels/ReadModelSubjectResolver.d.ts +22 -0
  126. package/dist/readModels/ReadModelSubjectResolver.d.ts.map +1 -0
  127. package/dist/readModels/ReadModelSubjectResolver.js +38 -0
  128. package/dist/readModels/ReadModelSubjectResolver.js.map +1 -0
  129. package/dist/readModels/ReadModels.d.ts.map +1 -1
  130. package/dist/readModels/ReadModels.js +7 -7
  131. package/dist/readModels/ReadModels.js.map +1 -1
  132. package/dist/readModels/index.d.ts +1 -0
  133. package/dist/readModels/index.d.ts.map +1 -1
  134. package/dist/readModels/index.js +1 -0
  135. package/dist/readModels/index.js.map +1 -1
  136. package/dist/reducers/Reducers.d.ts.map +1 -1
  137. package/dist/reducers/Reducers.js +21 -3
  138. package/dist/reducers/Reducers.js.map +1 -1
  139. package/dist/schemas/JsonSchema.d.ts +14 -0
  140. package/dist/schemas/JsonSchema.d.ts.map +1 -1
  141. package/dist/schemas/JsonSchemaGenerator.d.ts +61 -5
  142. package/dist/schemas/JsonSchemaGenerator.d.ts.map +1 -1
  143. package/dist/schemas/JsonSchemaGenerator.js +130 -26
  144. package/dist/schemas/JsonSchemaGenerator.js.map +1 -1
  145. package/dist/schemas/index.d.ts +1 -1
  146. package/dist/schemas/index.d.ts.map +1 -1
  147. package/dist/seeding/EventSeeding.d.ts.map +1 -1
  148. package/dist/seeding/EventSeeding.js +3 -1
  149. package/dist/seeding/EventSeeding.js.map +1 -1
  150. package/dist/tsconfig.tsbuildinfo +1 -1
  151. package/eventSequences/AppendOptions.ts +9 -0
  152. package/eventSequences/EventForEventSourceId.ts +9 -0
  153. package/eventSequences/EventSequence.ts +20 -6
  154. package/events/EventContext.ts +4 -0
  155. package/events/Tag.ts +14 -0
  156. package/events/filterEventsByTagDecorator.ts +51 -0
  157. package/events/index.ts +4 -0
  158. package/events/mergeTags.spec.ts +50 -0
  159. package/events/mergeTags.ts +27 -0
  160. package/events/tagDecorator.spec.ts +115 -0
  161. package/events/tagDecorator.ts +59 -0
  162. package/observation/ObserverRunningState.ts +9 -18
  163. package/observation/index.ts +1 -0
  164. package/observation/toObserverRunningState.ts +27 -0
  165. package/package.json +8 -8
  166. package/projections/IProjections.ts +81 -1
  167. package/projections/ProjectionQueryResult.ts +10 -0
  168. package/projections/ProjectionState.ts +25 -0
  169. package/projections/Projections.childrenAndNested.spec.ts +1 -1
  170. package/projections/Projections.modelBoundCompleteness.spec.ts +224 -0
  171. package/projections/Projections.operationalSurface.spec.ts +257 -0
  172. package/projections/Projections.spec.ts +1 -1
  173. package/projections/Projections.ts +180 -5
  174. package/projections/UnableToQueryProjection.ts +17 -0
  175. package/projections/index.ts +3 -0
  176. package/projections/modelBound/eventSequence.ts +38 -0
  177. package/projections/modelBound/fromAll.ts +42 -0
  178. package/projections/modelBound/index.ts +4 -0
  179. package/projections/modelBound/noAutoMap.ts +47 -0
  180. package/reactors/Reactors.ts +7 -3
  181. package/readModels/MaterializedReadModels.spec.ts +98 -0
  182. package/readModels/MaterializedReadModels.ts +2 -8
  183. package/readModels/ReadModelSubjectResolver.spec.ts +84 -0
  184. package/readModels/ReadModelSubjectResolver.ts +44 -0
  185. package/readModels/ReadModels.spec.ts +118 -0
  186. package/readModels/ReadModels.ts +7 -7
  187. package/readModels/index.ts +1 -0
  188. package/reducers/Reducers.spec.ts +80 -0
  189. package/reducers/Reducers.ts +22 -3
  190. package/schemas/JsonSchema.ts +16 -0
  191. package/schemas/JsonSchemaGenerator.spec.ts +195 -0
  192. package/schemas/JsonSchemaGenerator.ts +145 -27
  193. package/schemas/index.ts +1 -1
  194. package/seeding/EventSeeding.ts +3 -1
package/EventStore.ts CHANGED
@@ -90,7 +90,7 @@ export class EventStore implements IEventStore {
90
90
  const artifacts = DefaultClientArtifactsProvider.default;
91
91
  this.eventTypes = new EventTypes(name.value, _connection, artifacts);
92
92
  this.constraints = new Constraints(name.value, _connection, artifacts);
93
- this.projections = new Projections(name.value, _connection, artifacts, defaultSinkTypeId);
93
+ this.projections = new Projections(name.value, namespace.value, _connection, artifacts, defaultSinkTypeId);
94
94
  this.reactors = new Reactors(artifacts, _connection, name.value, namespace.value, lifecycle, this.eventLog);
95
95
  this.reducers = new Reducers(artifacts, _connection, name.value, namespace.value, lifecycle, defaultSinkTypeId);
96
96
  this.readModels = new ReadModels(name.value, namespace.value, _connection, artifacts, defaultSinkTypeId);
@@ -33,6 +33,16 @@ export interface DeleteEncryptionKeyRequest {
33
33
  Identifier: string;
34
34
  }
35
35
 
36
+ /**
37
+ * Request to authorize a new encryption key for a PII encryption key identifier whose key was
38
+ * previously erased, so a later lawful lifecycle can protect their data again.
39
+ */
40
+ export interface AllowNewEncryptionKeyRequest {
41
+ EventStore: string;
42
+ Namespace: string;
43
+ Identifier: string;
44
+ }
45
+
36
46
  /**
37
47
  * An empty protobuf message.
38
48
  */
@@ -49,6 +59,7 @@ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<
49
59
  export interface ComplianceClient<CallOptionsExt = {}> {
50
60
  release(request: DeepPartial<ReleaseRequest>, options?: CallOptions & CallOptionsExt): Promise<ReleaseResponse>;
51
61
  deleteEncryptionKey(request: DeepPartial<DeleteEncryptionKeyRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
62
+ allowNewEncryptionKey(request: DeepPartial<AllowNewEncryptionKeyRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
52
63
  }
53
64
 
54
65
  export const ReleaseRequest = {
@@ -181,6 +192,46 @@ export const DeleteEncryptionKeyRequest = {
181
192
  }
182
193
  };
183
194
 
195
+ export const AllowNewEncryptionKeyRequest = {
196
+ encode(message: AllowNewEncryptionKeyRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
197
+ if (message.EventStore !== '') {
198
+ writer.uint32(10).string(message.EventStore);
199
+ }
200
+ if (message.Namespace !== '') {
201
+ writer.uint32(18).string(message.Namespace);
202
+ }
203
+ if (message.Identifier !== '') {
204
+ writer.uint32(26).string(message.Identifier);
205
+ }
206
+ return writer;
207
+ },
208
+
209
+ decode(input: BinaryReader | Uint8Array, length?: number): AllowNewEncryptionKeyRequest {
210
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
211
+ const end = length === undefined ? reader.len : reader.pos + length;
212
+ const message: AllowNewEncryptionKeyRequest = { EventStore: '', Namespace: '', Identifier: '' };
213
+ while (reader.pos < end) {
214
+ const tag = reader.uint32();
215
+ switch (tag >>> 3) {
216
+ case 1: message.EventStore = reader.string(); continue;
217
+ case 2: message.Namespace = reader.string(); continue;
218
+ case 3: message.Identifier = reader.string(); continue;
219
+ }
220
+ if ((tag & 7) === 4 || tag === 0) break;
221
+ reader.skip(tag & 7);
222
+ }
223
+ return message;
224
+ },
225
+
226
+ fromPartial(object: DeepPartial<AllowNewEncryptionKeyRequest>): AllowNewEncryptionKeyRequest {
227
+ return {
228
+ EventStore: object.EventStore ?? '',
229
+ Namespace: object.Namespace ?? '',
230
+ Identifier: object.Identifier ?? ''
231
+ };
232
+ }
233
+ };
234
+
184
235
  export const Empty = {
185
236
  encode(_: Empty, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
186
237
  return writer;
@@ -224,6 +275,14 @@ export const ComplianceDefinition = {
224
275
  responseType: Empty,
225
276
  responseStream: false as const,
226
277
  options: {}
278
+ },
279
+ allowNewEncryptionKey: {
280
+ name: 'AllowNewEncryptionKey',
281
+ requestType: AllowNewEncryptionKeyRequest,
282
+ requestStream: false as const,
283
+ responseType: Empty,
284
+ responseStream: false as const,
285
+ options: {}
227
286
  }
228
287
  }
229
288
  } as const;
@@ -14,4 +14,16 @@ export interface IPIIManager {
14
14
  * this operation cannot be undone.
15
15
  */
16
16
  deleteEncryptionKey(identifier: string): Promise<void>;
17
+
18
+ /**
19
+ * Authorizes a new encryption key for a PII encryption key identifier whose key was previously
20
+ * erased, so a later lawful lifecycle can protect their data again.
21
+ * @param identifier - The identifier of the encryption key to authorize a new key for.
22
+ * @remarks
23
+ * Erasing an identifier removes the key that exists now; it does not ban the identifier
24
+ * forever. This creates no key - it lets the next PII value written for the identifier
25
+ * provision a fresh, independent one, which can decrypt nothing written before the erasure.
26
+ * The erased key itself never comes back, whatever else happens.
27
+ */
28
+ allowNewEncryptionKeyFor(identifier: string): Promise<void>;
17
29
  }
@@ -0,0 +1,50 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import { describe, expect, it, vi } from 'vitest';
5
+ import { ChronicleConnection } from '../connection';
6
+ import { PIIManager } from './PIIManager';
7
+
8
+ function createPIIManager() {
9
+ const deleteEncryptionKeyMock = vi.fn().mockResolvedValue(undefined);
10
+ const allowNewEncryptionKeyMock = vi.fn().mockResolvedValue(undefined);
11
+ const connection = {
12
+ compliance: {
13
+ deleteEncryptionKey: deleteEncryptionKeyMock,
14
+ allowNewEncryptionKey: allowNewEncryptionKeyMock
15
+ }
16
+ } as unknown as ChronicleConnection;
17
+
18
+ const manager = new PIIManager('test-store', 'test-namespace', connection);
19
+ return { manager, deleteEncryptionKeyMock, allowNewEncryptionKeyMock };
20
+ }
21
+
22
+ describe('PIIManager', () => {
23
+ describe('when deleting an encryption key', () => {
24
+ it('should call the compliance service with the event store, namespace, and identifier', async () => {
25
+ const { manager, deleteEncryptionKeyMock } = createPIIManager();
26
+
27
+ await manager.deleteEncryptionKey('some-subject');
28
+
29
+ expect(deleteEncryptionKeyMock).toHaveBeenCalledWith({
30
+ EventStore: 'test-store',
31
+ Namespace: 'test-namespace',
32
+ Identifier: 'some-subject'
33
+ });
34
+ });
35
+ });
36
+
37
+ describe('when allowing a new encryption key', () => {
38
+ it('should call the compliance service with the event store, namespace, and identifier', async () => {
39
+ const { manager, allowNewEncryptionKeyMock } = createPIIManager();
40
+
41
+ await manager.allowNewEncryptionKeyFor('some-subject');
42
+
43
+ expect(allowNewEncryptionKeyMock).toHaveBeenCalledWith({
44
+ EventStore: 'test-store',
45
+ Namespace: 'test-namespace',
46
+ Identifier: 'some-subject'
47
+ });
48
+ });
49
+ });
50
+ });
@@ -28,4 +28,13 @@ export class PIIManager implements IPIIManager {
28
28
  Identifier: identifier
29
29
  });
30
30
  }
31
+
32
+ /** @inheritdoc */
33
+ async allowNewEncryptionKeyFor(identifier: string): Promise<void> {
34
+ await this._connection.compliance.allowNewEncryptionKey({
35
+ EventStore: this._eventStore,
36
+ Namespace: this._namespace,
37
+ Identifier: identifier
38
+ });
39
+ }
31
40
  }
@@ -0,0 +1,21 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ /**
5
+ * Error thrown when the {@link pii} decorator is applied to the `eventSourceId` property.
6
+ */
7
+ export class PIINotSupportedOnEventSourceId extends Error {
8
+ /**
9
+ * Initializes a new instance of the {@link PIINotSupportedOnEventSourceId} class.
10
+ * @param typeName - The name of the type the decorator was applied to.
11
+ */
12
+ constructor(typeName: string) {
13
+ super(
14
+ `The @pii() decorator cannot be applied to 'eventSourceId' on '${typeName}' because it is the event ` +
15
+ 'source identifier. Event source identifiers cannot be encrypted as they are required for event ' +
16
+ 'correlation. If the identifier itself is sensitive, use a non-sensitive surrogate value as the event ' +
17
+ 'source identifier and store the sensitive value in a separate property marked with @pii().'
18
+ );
19
+ this.name = 'PIINotSupportedOnEventSourceId';
20
+ }
21
+ }
@@ -4,6 +4,8 @@
4
4
  export { ComplianceMetadataType } from './ComplianceMetadataType';
5
5
  export type { ComplianceMetadata } from './ComplianceMetadata';
6
6
  export { pii, getPIIMetadata, hasPIIMetadata, getTypePIIMetadata, isPII } from './pii';
7
+ export { subject, hasSubjectMetadata, getSubjectPropertyName } from './subject';
8
+ export { PIINotSupportedOnEventSourceId } from './PIINotSupportedOnEventSourceId';
7
9
  export { ComplianceMetadataResolver } from './ComplianceMetadataResolver';
8
10
  export type { IPIIManager } from './IPIIManager';
9
11
  export { PIIManager } from './PIIManager';
@@ -0,0 +1,37 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import 'reflect-metadata';
5
+ import { describe, expect, it } from 'vitest';
6
+ import { pii } from './pii';
7
+ import { PIINotSupportedOnEventSourceId } from './PIINotSupportedOnEventSourceId';
8
+
9
+ // Decorators are applied as plain function calls (rather than `@decorator` syntax) so these
10
+ // fixtures don't depend on the test runner's decorator-syntax support.
11
+
12
+ describe('pii', () => {
13
+ describe('when applied to the eventSourceId property', () => {
14
+ class SomeEvent {
15
+ eventSourceId = '';
16
+ }
17
+
18
+ it('should throw PIINotSupportedOnEventSourceId', () => {
19
+ expect(() => pii()(SomeEvent.prototype, 'eventSourceId')).toThrow(PIINotSupportedOnEventSourceId);
20
+ });
21
+
22
+ it('should describe why the property cannot be encrypted', () => {
23
+ expect(() => pii()(SomeEvent.prototype, 'eventSourceId')).toThrow(/event source identifier/);
24
+ });
25
+ });
26
+
27
+ describe('when applied to any other property', () => {
28
+ class SomeEvent {
29
+ eventSourceId = '';
30
+ name = '';
31
+ }
32
+
33
+ it('should not throw', () => {
34
+ expect(() => pii()(SomeEvent.prototype, 'name')).not.toThrow();
35
+ });
36
+ });
37
+ });
package/compliance/pii.ts CHANGED
@@ -4,8 +4,12 @@
4
4
  import 'reflect-metadata';
5
5
  import type { ComplianceMetadata } from './ComplianceMetadata';
6
6
  import { ComplianceMetadataType } from './ComplianceMetadataType';
7
+ import { PIINotSupportedOnEventSourceId } from './PIINotSupportedOnEventSourceId';
7
8
  import { TypeIntrospector } from '../types';
8
9
 
10
+ /** The property name this client uses everywhere for the event source identifier. */
11
+ const EVENT_SOURCE_ID_PROPERTY = 'eventSourceId';
12
+
9
13
  /** Metadata key for PII decorator on properties. */
10
14
  const PII_PROPERTY_METADATA_KEY = 'chronicle:compliance:pii:property';
11
15
 
@@ -66,7 +70,18 @@ export function pii(details?: string): PropertyDecorator & ClassDecorator {
66
70
  // Property decorator usage
67
71
  if (propertyKey !== undefined) {
68
72
  const key = propertyKey.toString();
69
- TypeIntrospector.trackProperty((target as { constructor: Function }).constructor, key);
73
+ const declaringType = (target as { constructor: Function }).constructor;
74
+
75
+ // Encrypting the event source identifier would make its own decryption key
76
+ // unfindable - the identifier is required, in the clear, to correlate events and
77
+ // look up the key that protects everything else. Mirrors C#'s
78
+ // PIINotSupportedOnEventSourceId guard, which throws for the same reason when
79
+ // [PII] is applied to an EventSourceId/EventSourceId<T> type.
80
+ if (key === EVENT_SOURCE_ID_PROPERTY) {
81
+ throw new PIINotSupportedOnEventSourceId(declaringType.name);
82
+ }
83
+
84
+ TypeIntrospector.trackProperty(declaringType, key);
70
85
  const metadata: ComplianceMetadata = {
71
86
  metadataType: ComplianceMetadataType.PII,
72
87
  details: details ?? ''
@@ -0,0 +1,45 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import 'reflect-metadata';
5
+ import { describe, expect, it } from 'vitest';
6
+ import { getSubjectPropertyName, hasSubjectMetadata, subject } from './subject';
7
+
8
+ // Decorators are applied as plain function calls (rather than `@decorator` syntax) so these
9
+ // fixtures don't depend on the test runner's decorator-syntax support.
10
+
11
+ describe('subject', () => {
12
+ describe('when applied to a property', () => {
13
+ class SomeReadModel {
14
+ personId = '';
15
+ name = '';
16
+ }
17
+ subject()(SomeReadModel.prototype, 'personId');
18
+
19
+ it('should mark the decorated property with subject metadata', () => {
20
+ expect(hasSubjectMetadata(SomeReadModel.prototype, 'personId')).toBe(true);
21
+ });
22
+
23
+ it('should leave other properties without subject metadata', () => {
24
+ expect(hasSubjectMetadata(SomeReadModel.prototype, 'name')).toBe(false);
25
+ });
26
+
27
+ it('should record the decorated property name on the declaring type', () => {
28
+ expect(getSubjectPropertyName(SomeReadModel)).toBe('personId');
29
+ });
30
+ });
31
+
32
+ describe('when no property is decorated', () => {
33
+ class PlainReadModel {
34
+ id = '';
35
+ }
36
+
37
+ it('should not record a subject property on the declaring type', () => {
38
+ expect(getSubjectPropertyName(PlainReadModel)).toBeUndefined();
39
+ });
40
+
41
+ it('should report no subject metadata for its properties', () => {
42
+ expect(hasSubjectMetadata(PlainReadModel.prototype, 'id')).toBe(false);
43
+ });
44
+ });
45
+ });
@@ -0,0 +1,64 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+
4
+ import 'reflect-metadata';
5
+ import { TypeIntrospector } from '../types';
6
+
7
+ /** Metadata key for the subject decorator on a property. */
8
+ const SUBJECT_PROPERTY_METADATA_KEY = 'chronicle:compliance:subject:property';
9
+
10
+ /** Metadata key for the name of the subject property recorded on the declaring type. */
11
+ const SUBJECT_TYPE_METADATA_KEY = 'chronicle:compliance:subject:type';
12
+
13
+ /**
14
+ * Decorator that marks a property as the compliance subject - the natural person whose Personal
15
+ * Identifiable Information (PII) a read model or event carries. The subject selects which
16
+ * encryption key protects that PII, and which key a manual release operation must use.
17
+ *
18
+ * Mirrors the .NET client's `SubjectAttribute`. When no property is decorated, resolvers fall
19
+ * back to the `id` property by convention, so read models that predate this decorator keep
20
+ * working unchanged.
21
+ *
22
+ * @returns A property decorator.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * @readModel()
27
+ * class Employee {
28
+ * @subject()
29
+ * personId: string = '';
30
+ *
31
+ * @pii('Employee social security number')
32
+ * ssn: string = '';
33
+ * }
34
+ * ```
35
+ */
36
+ export function subject(): PropertyDecorator {
37
+ return (target: object, propertyKey: string | symbol) => {
38
+ const key = propertyKey.toString();
39
+ const declaringType = (target as { constructor: Function }).constructor;
40
+
41
+ TypeIntrospector.trackProperty(declaringType, key);
42
+ Reflect.defineMetadata(SUBJECT_PROPERTY_METADATA_KEY, true, target, key);
43
+ Reflect.defineMetadata(SUBJECT_TYPE_METADATA_KEY, key, declaringType);
44
+ };
45
+ }
46
+
47
+ /**
48
+ * Checks whether a property has been decorated with @subject.
49
+ * @param target - The class prototype.
50
+ * @param propertyKey - The property name.
51
+ * @returns True if the property has the @subject decorator; false otherwise.
52
+ */
53
+ export function hasSubjectMetadata(target: object, propertyKey: string): boolean {
54
+ return Reflect.hasMetadata(SUBJECT_PROPERTY_METADATA_KEY, target, propertyKey);
55
+ }
56
+
57
+ /**
58
+ * Gets the name of the property decorated with @subject on a type, if any.
59
+ * @param type - The type constructor to inspect.
60
+ * @returns The decorated property name, or undefined when no property is decorated.
61
+ */
62
+ export function getSubjectPropertyName(type: Function): string | undefined {
63
+ return Reflect.getMetadata(SUBJECT_TYPE_METADATA_KEY, type);
64
+ }
@@ -62,7 +62,7 @@ export class EventStore {
62
62
  const artifacts = DefaultClientArtifactsProvider.default;
63
63
  this.eventTypes = new EventTypes(name.value, _connection, artifacts);
64
64
  this.constraints = new Constraints(name.value, _connection, artifacts);
65
- this.projections = new Projections(name.value, _connection, artifacts, defaultSinkTypeId);
65
+ this.projections = new Projections(name.value, namespace.value, _connection, artifacts, defaultSinkTypeId);
66
66
  this.reactors = new Reactors(artifacts, _connection, name.value, namespace.value, lifecycle, this.eventLog);
67
67
  this.reducers = new Reducers(artifacts, _connection, name.value, namespace.value, lifecycle, defaultSinkTypeId);
68
68
  this.readModels = new ReadModels(name.value, namespace.value, _connection, artifacts, defaultSinkTypeId);
@@ -1 +1 @@
1
- {"version":3,"file":"EventStore.js","sourceRoot":"","sources":["../EventStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventStore.js","sourceRoot":"","sources":["../EventStore.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAInE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAE5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGlE;;;GAGG;AACH,MAAM,OAAO,UAAU;IAyBN;IACA;IACQ;IA1BJ,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAClD,SAAS,EAAE,8BAA8B;KAC5C,CAAC,CAAC;IAEM,QAAQ,CAAY;IACpB,UAAU,CAAc;IACxB,WAAW,CAAe;IAC1B,WAAW,CAAe;IAC1B,QAAQ,CAAY;IACpB,QAAQ,CAAY;IACpB,UAAU,CAAc;IACxB,iBAAiB,CAAqB;IACtC,IAAI,CAAQ;IACZ,QAAQ,CAAY;IACpB,aAAa,CAA2B;IACxC,OAAO,CAAgB;IACvB,gBAAgB,CAAoB;IACpC,UAAU,CAAmB;IAC7B,GAAG,CAAc;IACjB,gBAAgB,CAAoB;IAE5B,UAAU,GAAgC,IAAI,GAAG,EAAE,CAAC;IAErE,YACa,IAAoB,EACpB,SAAkC,EAC1B,WAAgC,EACjD,SAA8B,EAC9B,iBAAyB;QAJhB,SAAI,GAAJ,IAAI,CAAgB;QACpB,cAAS,GAAT,SAAS,CAAyB;QAC1B,gBAAW,GAAX,WAAW,CAAqB;QAIjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/F,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnE,MAAM,SAAS,GAAG,8BAA8B,CAAC,OAAO,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC3G,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5G,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAChH,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACzG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAClF,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC3F,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC3F,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE;YACzD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;SAClC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE;YACnD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;SAClC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE;YACjD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;SAClC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB;IAClB,gBAAgB,CAAC,EAAmB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,aAAa;QACf,OAAO,eAAe,CAAC,eAAe,CAAC,sCAAsC,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YACxF,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACtI,MAAM,MAAM,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjI,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,OAAO,MAAM,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,eAAe,CAAC,KAAc,CAAC,CAAC;gBACrC,MAAM,KAAK,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACP,IAAI,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -26,6 +26,15 @@ export interface DeleteEncryptionKeyRequest {
26
26
  Namespace: string;
27
27
  Identifier: string;
28
28
  }
29
+ /**
30
+ * Request to authorize a new encryption key for a PII encryption key identifier whose key was
31
+ * previously erased, so a later lawful lifecycle can protect their data again.
32
+ */
33
+ export interface AllowNewEncryptionKeyRequest {
34
+ EventStore: string;
35
+ Namespace: string;
36
+ Identifier: string;
37
+ }
29
38
  /**
30
39
  * An empty protobuf message.
31
40
  */
@@ -41,6 +50,7 @@ export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<
41
50
  export interface ComplianceClient<CallOptionsExt = {}> {
42
51
  release(request: DeepPartial<ReleaseRequest>, options?: CallOptions & CallOptionsExt): Promise<ReleaseResponse>;
43
52
  deleteEncryptionKey(request: DeepPartial<DeleteEncryptionKeyRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
53
+ allowNewEncryptionKey(request: DeepPartial<AllowNewEncryptionKeyRequest>, options?: CallOptions & CallOptionsExt): Promise<Empty>;
44
54
  }
45
55
  export declare const ReleaseRequest: {
46
56
  encode(message: ReleaseRequest, writer?: BinaryWriter): BinaryWriter;
@@ -57,6 +67,11 @@ export declare const DeleteEncryptionKeyRequest: {
57
67
  decode(input: BinaryReader | Uint8Array, length?: number): DeleteEncryptionKeyRequest;
58
68
  fromPartial(object: DeepPartial<DeleteEncryptionKeyRequest>): DeleteEncryptionKeyRequest;
59
69
  };
70
+ export declare const AllowNewEncryptionKeyRequest: {
71
+ encode(message: AllowNewEncryptionKeyRequest, writer?: BinaryWriter): BinaryWriter;
72
+ decode(input: BinaryReader | Uint8Array, length?: number): AllowNewEncryptionKeyRequest;
73
+ fromPartial(object: DeepPartial<AllowNewEncryptionKeyRequest>): AllowNewEncryptionKeyRequest;
74
+ };
60
75
  export declare const Empty: {
61
76
  encode(_: Empty, writer?: BinaryWriter): BinaryWriter;
62
77
  decode(input: BinaryReader | Uint8Array, length?: number): Empty;
@@ -101,6 +116,22 @@ export declare const ComplianceDefinition: {
101
116
  readonly responseStream: false;
102
117
  readonly options: {};
103
118
  };
119
+ readonly allowNewEncryptionKey: {
120
+ readonly name: "AllowNewEncryptionKey";
121
+ readonly requestType: {
122
+ encode(message: AllowNewEncryptionKeyRequest, writer?: BinaryWriter): BinaryWriter;
123
+ decode(input: BinaryReader | Uint8Array, length?: number): AllowNewEncryptionKeyRequest;
124
+ fromPartial(object: DeepPartial<AllowNewEncryptionKeyRequest>): AllowNewEncryptionKeyRequest;
125
+ };
126
+ readonly requestStream: false;
127
+ readonly responseType: {
128
+ encode(_: Empty, writer?: BinaryWriter): BinaryWriter;
129
+ decode(input: BinaryReader | Uint8Array, length?: number): Empty;
130
+ fromPartial(_: DeepPartial<Empty>): Empty;
131
+ };
132
+ readonly responseStream: false;
133
+ readonly options: {};
134
+ };
104
135
  };
105
136
  };
106
137
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ComplianceContracts.d.ts","sourceRoot":"","sources":["../../compliance/ComplianceContracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComplianceContracts.d.ts","sourceRoot":"","sources":["../../compliance/ComplianceContracts.ts"],"names":[],"mappings":"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"}
@@ -147,6 +147,50 @@ export const DeleteEncryptionKeyRequest = {
147
147
  };
148
148
  }
149
149
  };
150
+ export const AllowNewEncryptionKeyRequest = {
151
+ encode(message, writer = new BinaryWriter()) {
152
+ if (message.EventStore !== '') {
153
+ writer.uint32(10).string(message.EventStore);
154
+ }
155
+ if (message.Namespace !== '') {
156
+ writer.uint32(18).string(message.Namespace);
157
+ }
158
+ if (message.Identifier !== '') {
159
+ writer.uint32(26).string(message.Identifier);
160
+ }
161
+ return writer;
162
+ },
163
+ decode(input, length) {
164
+ const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
165
+ const end = length === undefined ? reader.len : reader.pos + length;
166
+ const message = { EventStore: '', Namespace: '', Identifier: '' };
167
+ while (reader.pos < end) {
168
+ const tag = reader.uint32();
169
+ switch (tag >>> 3) {
170
+ case 1:
171
+ message.EventStore = reader.string();
172
+ continue;
173
+ case 2:
174
+ message.Namespace = reader.string();
175
+ continue;
176
+ case 3:
177
+ message.Identifier = reader.string();
178
+ continue;
179
+ }
180
+ if ((tag & 7) === 4 || tag === 0)
181
+ break;
182
+ reader.skip(tag & 7);
183
+ }
184
+ return message;
185
+ },
186
+ fromPartial(object) {
187
+ return {
188
+ EventStore: object.EventStore ?? '',
189
+ Namespace: object.Namespace ?? '',
190
+ Identifier: object.Identifier ?? ''
191
+ };
192
+ }
193
+ };
150
194
  export const Empty = {
151
195
  encode(_, writer = new BinaryWriter()) {
152
196
  return writer;
@@ -188,6 +232,14 @@ export const ComplianceDefinition = {
188
232
  responseType: Empty,
189
233
  responseStream: false,
190
234
  options: {}
235
+ },
236
+ allowNewEncryptionKey: {
237
+ name: 'AllowNewEncryptionKey',
238
+ requestType: AllowNewEncryptionKeyRequest,
239
+ requestStream: false,
240
+ responseType: Empty,
241
+ responseStream: false,
242
+ options: {}
191
243
  }
192
244
  }
193
245
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ComplianceContracts.js","sourceRoot":"","sources":["../../compliance/ComplianceContracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComplianceContracts.js","sourceRoot":"","sources":["../../compliance/ComplianceContracts.ts"],"names":[],"mappings":"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"}
@@ -11,5 +11,16 @@ export interface IPIIManager {
11
11
  * this operation cannot be undone.
12
12
  */
13
13
  deleteEncryptionKey(identifier: string): Promise<void>;
14
+ /**
15
+ * Authorizes a new encryption key for a PII encryption key identifier whose key was previously
16
+ * erased, so a later lawful lifecycle can protect their data again.
17
+ * @param identifier - The identifier of the encryption key to authorize a new key for.
18
+ * @remarks
19
+ * Erasing an identifier removes the key that exists now; it does not ban the identifier
20
+ * forever. This creates no key - it lets the next PII value written for the identifier
21
+ * provision a fresh, independent one, which can decrypt nothing written before the erasure.
22
+ * The erased key itself never comes back, whatever else happens.
23
+ */
24
+ allowNewEncryptionKeyFor(identifier: string): Promise<void>;
14
25
  }
15
26
  //# sourceMappingURL=IPIIManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IPIIManager.d.ts","sourceRoot":"","sources":["../../compliance/IPIIManager.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;;;;;;OAOG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"IPIIManager.d.ts","sourceRoot":"","sources":["../../compliance/IPIIManager.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB;;;;;;;OAOG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;;;;;;OASG;IACH,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D"}
@@ -16,5 +16,7 @@ export declare class PIIManager implements IPIIManager {
16
16
  constructor(_eventStore: string, _namespace: string, _connection: ChronicleConnection);
17
17
  /** @inheritdoc */
18
18
  deleteEncryptionKey(identifier: string): Promise<void>;
19
+ /** @inheritdoc */
20
+ allowNewEncryptionKeyFor(identifier: string): Promise<void>;
19
21
  }
20
22
  //# sourceMappingURL=PIIManager.d.ts.map