@mj-biz-apps/common-activity-sync 5.43.0 → 5.44.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.
@@ -12,6 +12,7 @@ import { IdentityResolver } from './identity.js';
12
12
  import { type ActivityFileSink } from './attachments.js';
13
13
  import { type IQualificationStage, type QualificationPolicy } from './qualification.js';
14
14
  import { type SyncRunOptions } from './run.js';
15
+ import { type ActivityContentCipher } from './content-capture.js';
15
16
  import type { ActivitySourceKind } from './types.js';
16
17
  import { ActivityWriter } from './writer.js';
17
18
  export interface SyncEngineResult {
@@ -49,7 +50,10 @@ interface ConnectionRow {
49
50
  EndAt: Date | string | null;
50
51
  LastSyncAt: Date | string | null;
51
52
  ActivitySyncProviderTypeID: string | null;
53
+ /** Overrides the provider type's default. Null means "use the type's". */
52
54
  SkippedContentPolicy: string | null;
55
+ /** Overrides the provider type's default key. Null means "use the type's". */
56
+ EncryptionKeyID: string | null;
53
57
  Settings: string | null;
54
58
  }
55
59
  interface ProviderTypeRow {
@@ -65,6 +69,14 @@ interface ProviderTypeRow {
65
69
  * runtime and any check against it quietly never fires.
66
70
  */
67
71
  IsActive: boolean;
72
+ /**
73
+ * Audit retention for messages this connector declines to ingest, and the key that protects it.
74
+ *
75
+ * Both are the TYPE-level default; a connection overrides either. Neither had a reader before
76
+ * this change, so "Overridable per connection" described a fallback chain that did not exist.
77
+ */
78
+ DefaultSkippedContentPolicy: string | null;
79
+ DefaultEncryptionKeyID: string | null;
68
80
  }
69
81
  interface RunSurfaceOptions {
70
82
  /** Injected provider (tests). When omitted, resolved from the type row. */
@@ -82,6 +94,12 @@ interface RunSurfaceOptions {
82
94
  /**
83
95
  * LastError must name the failure, not whatever happened to be Issues[0].
84
96
  * Mapping warnings ("Event X had no usable start time") sort ahead of the actual miss.
97
+ *
98
+ * NOT TRUNCATED. This used to end `.slice(0, 4000)`, the same inherited habit removed from the run's
99
+ * issue list: `ActivitySyncConnection.LastError` is NVARCHAR(MAX), and none of the columns this app
100
+ * writes free text to is 4000 wide. It flattens the issues of EVERY failed surface, so it grows with
101
+ * the number of failures — a run that fails broadly truncates its own diagnosis, which is the one
102
+ * occasion the text is worth reading in full.
85
103
  */
86
104
  export declare function healthErrorFromResults(results: readonly SyncEngineResult[]): string | null;
87
105
  /**
@@ -125,6 +143,14 @@ export declare class ActivitySyncEngine {
125
143
  * default a host could implement the interface and still never be called.
126
144
  */
127
145
  private readonly fileSink;
146
+ /**
147
+ * How captured content is protected, when a policy says to keep any.
148
+ *
149
+ * Same shape and same reason as `fileSink`: this package implements no crypto, and the only
150
+ * production construction of this class passes no arguments, so the default has to come from
151
+ * the host registry or the seam is unreachable. `common-server` fills it at bootstrap.
152
+ */
153
+ private readonly cipher;
128
154
  constructor(resolver?: IdentityResolver, writer?: ActivityWriter, stages?: IQualificationStage[],
129
155
  /**
130
156
  * Where attachment BYTES go, when a rule asks for them.
@@ -138,7 +164,15 @@ export declare class ActivitySyncEngine {
138
164
  * `new ActivitySyncEngine()` inside an Action, where nothing can pass one. Without that
139
165
  * default a host could implement the interface and still never be called.
140
166
  */
141
- fileSink?: ActivityFileSink | null);
167
+ fileSink?: ActivityFileSink | null,
168
+ /**
169
+ * How captured content is protected, when a policy says to keep any.
170
+ *
171
+ * Same shape and same reason as `fileSink`: this package implements no crypto, and the only
172
+ * production construction of this class passes no arguments, so the default has to come from
173
+ * the host registry or the seam is unreachable. `common-server` fills it at bootstrap.
174
+ */
175
+ cipher?: ActivityContentCipher | null);
142
176
  Run(connectionID: string, options: SyncRunOptions, provider: IMetadataProvider, contextUser: UserInfo, source?: BaseActivitySyncProvider, surface?: RunSurfaceOptions): Promise<SyncEngineResult>;
143
177
  /**
144
178
  * Every Active-or-Error connection, once per surface. This is what a scheduled
@@ -1 +1 @@
1
- {"version":3,"file":"ActivitySyncEngine.d.ts","sourceRoot":"","sources":["../src/ActivitySyncEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActivitySyncEngine.d.ts","sourceRoot":"","sources":["../src/ActivitySyncEngine.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,8 @@ import { FixtureActivitySyncProvider } from './providers/FixtureActivitySyncProv
19
19
  import { MSGraphActivitySyncProvider } from './providers/MSGraphActivitySyncProvider.js';
20
20
  import { MSGraphCalendarSyncProvider } from './providers/MSGraphCalendarSyncProvider.js';
21
21
  import { DefaultPolicyFromProviderType, RunQualificationCascade, } from './qualification.js';
22
- import { AsDryRunDecision, IsConnectionActive, } from './run.js';
22
+ import { AsDryRunDecision, IsConnectionActive, ResolveCapturePlan, ResolvePolicy, } from './run.js';
23
+ import { ContentToCapture, HostActivityContentCipher, } from './content-capture.js';
23
24
  import { RequireUUID, UuidInList } from './sql.js';
24
25
  import { CanAdvanceWatermark, MergeCalendarWatermark, NextWatermark, SurfaceWatermark, } from './watermark.js';
25
26
  import { ExclusionsExtraFilter, FromRunView, RulesExtraFilter } from './load.js';
@@ -29,13 +30,19 @@ export const MAX_RUNNABLE_CONNECTIONS = 500;
29
30
  /**
30
31
  * LastError must name the failure, not whatever happened to be Issues[0].
31
32
  * Mapping warnings ("Event X had no usable start time") sort ahead of the actual miss.
33
+ *
34
+ * NOT TRUNCATED. This used to end `.slice(0, 4000)`, the same inherited habit removed from the run's
35
+ * issue list: `ActivitySyncConnection.LastError` is NVARCHAR(MAX), and none of the columns this app
36
+ * writes free text to is 4000 wide. It flattens the issues of EVERY failed surface, so it grows with
37
+ * the number of failures — a run that fails broadly truncates its own diagnosis, which is the one
38
+ * occasion the text is worth reading in full.
32
39
  */
33
40
  export function healthErrorFromResults(results) {
34
41
  const failed = results.filter((r) => !r.Success);
35
42
  if (failed.length === 0)
36
43
  return null;
37
44
  const issues = failed.flatMap((r) => r.Issues).filter((m) => m.trim().length > 0);
38
- return (issues.join(' | ') || 'Activity sync run failed.').slice(0, 4000);
45
+ return issues.join(' | ') || 'Activity sync run failed.';
39
46
  }
40
47
  /**
41
48
  * One Load+Save per extension row after the batch — not N items × M extensions.
@@ -103,11 +110,20 @@ export class ActivitySyncEngine {
103
110
  * `new ActivitySyncEngine()` inside an Action, where nothing can pass one. Without that
104
111
  * default a host could implement the interface and still never be called.
105
112
  */
106
- fileSink = HostActivityFileSink()) {
113
+ fileSink = HostActivityFileSink(),
114
+ /**
115
+ * How captured content is protected, when a policy says to keep any.
116
+ *
117
+ * Same shape and same reason as `fileSink`: this package implements no crypto, and the only
118
+ * production construction of this class passes no arguments, so the default has to come from
119
+ * the host registry or the seam is unreachable. `common-server` fills it at bootstrap.
120
+ */
121
+ cipher = HostActivityContentCipher()) {
107
122
  this.resolver = resolver;
108
123
  this.writer = writer;
109
124
  this.stages = stages;
110
125
  this.fileSink = fileSink;
126
+ this.cipher = cipher;
111
127
  }
112
128
  async Run(connectionID, options, provider, contextUser, source, surface) {
113
129
  const stampHealth = surface?.stampHealth ?? true;
@@ -161,6 +177,36 @@ export class ActivitySyncEngine {
161
177
  result.Issues.push(`Provider type '${typeRow.Code}' is not active.`);
162
178
  return result;
163
179
  }
180
+ /**
181
+ * AUDIT RETENTION IS SETTLED BEFORE ANYTHING IS READ, not at persist time.
182
+ *
183
+ * `ResolveCapturePlan` refuses a policy above `None` with no key, and refusing AFTER a
184
+ * mailbox has been read is the wrong order: it costs a fetch, and the run then has content it
185
+ * has been told it may not keep. Deciding here means a misconfigured connection stops before
186
+ * it touches anyone's mail.
187
+ *
188
+ * Failing the run rather than reporting and carrying on is what the policy asks for. An
189
+ * operator who set this asked for the record to exist; producing runs that look successful
190
+ * while retaining nothing is the failure this subsystem is written against, and it is exactly
191
+ * what happened before this was wired at all.
192
+ */
193
+ let capture;
194
+ try {
195
+ capture = ResolveCapturePlan(ResolvePolicy(typeRow?.DefaultSkippedContentPolicy ?? 'None', connection.SkippedContentPolicy), connection.EncryptionKeyID ?? typeRow?.DefaultEncryptionKeyID ?? null);
196
+ }
197
+ catch (err) {
198
+ result.Issues.push(String(err instanceof Error ? err.message : err));
199
+ return result;
200
+ }
201
+ if (capture.Capture !== 'None' && !this.cipher) {
202
+ // The ActivityFileSink lesson, applied. A host that asked for retention and cannot
203
+ // encrypt must not quietly proceed: plaintext is forbidden outright, and writing nothing
204
+ // would leave the operator believing an audit trail exists.
205
+ result.Issues.push(`SkippedContentPolicy is "${capture.Capture === 'Subject' ? 'SubjectEncrypted' : 'FullEncrypted'}" ` +
206
+ 'but this host registered no content cipher, so captured content could not be encrypted. ' +
207
+ 'Call RegisterActivityContentCipher() at bootstrap, or set the policy to "None".');
208
+ return result;
209
+ }
164
210
  // Missing type row: the cascade still needs a default, and that default is
165
211
  // Exclude — never `?? 'Include'`.
166
212
  const defaultPolicy = DefaultPolicyFromProviderType(typeRow?.DefaultQualificationPolicy);
@@ -239,7 +285,7 @@ export class ActivitySyncEngine {
239
285
  if (identities.LookupFailed) {
240
286
  result.Failed += batch.Items.length;
241
287
  result.Issues.push('ContactMethod lookup failed — watermark will not advance.');
242
- await this.persistRun(connection, options, result, since, null, provider, contextUser, []);
288
+ await this.persistRun(connection, options, result, since, null, provider, contextUser, capture, []);
243
289
  if (!options.DryRun && stampHealth) {
244
290
  await this.stampConnectionHealth(connection.ID, false, 'ContactMethod lookup failed — watermark will not advance.', contextUser, provider);
245
291
  }
@@ -414,7 +460,7 @@ export class ActivitySyncEngine {
414
460
  result.Issues.push('Failed to persist the surface watermark — it will not advance.');
415
461
  }
416
462
  }
417
- await this.persistRun(connection, options, result, since, options.DryRun ? null : result.WatermarkAdvancedTo, provider, contextUser, details);
463
+ await this.persistRun(connection, options, result, since, options.DryRun ? null : result.WatermarkAdvancedTo, provider, contextUser, capture, details);
418
464
  result.Success = result.Failed === 0;
419
465
  if (!options.DryRun && stampHealth) {
420
466
  await this.stampConnectionHealth(connectionID, result.Success, healthErrorFromResults([result]), contextUser, provider);
@@ -532,7 +578,12 @@ export class ActivitySyncEngine {
532
578
  result.Failed += result.Fetched;
533
579
  if (result.Failed < 1)
534
580
  result.Failed = 1;
535
- await this.persistRun(connection, options, result, since, null, provider, contextUser, []);
581
+ // No capture plan, and none needed: this path writes ZERO run details, so there is no row for
582
+ // content to land on. Reaching for the connection's real policy here would be a decision
583
+ // dressed up as caution — this method exists to record a run that never got as far as
584
+ // deciding anything about a message.
585
+ const noCapture = { Capture: 'None', EncryptionKeyID: null };
586
+ await this.persistRun(connection, options, result, since, null, provider, contextUser, noCapture, []);
536
587
  if (!options.DryRun && stampHealth) {
537
588
  await this.stampConnectionHealth(connection.ID, false, issue, contextUser, provider);
538
589
  }
@@ -587,7 +638,10 @@ export class ActivitySyncEngine {
587
638
  }
588
639
  else {
589
640
  row.Status = 'Error';
590
- row.LastError = (error ?? 'Activity sync run failed.').slice(0, 4000);
641
+ // Not truncated here either. Removing the cap from `healthErrorFromResults` and
642
+ // leaving it on the only write site would have changed nothing an operator can
643
+ // see — the column is NVARCHAR(MAX), and this is where the text lands.
644
+ row.LastError = error ?? 'Activity sync run failed.';
591
645
  }
592
646
  await row.Save();
593
647
  }
@@ -620,7 +674,21 @@ export class ActivitySyncEngine {
620
674
  const res = await rv.RunView({
621
675
  EntityName: ACTIVITY_SYNC_ENTITIES.ProviderTypes,
622
676
  ExtraFilter: `ID = '${RequireUUID(id, 'ActivitySyncProviderTypeID')}'`,
623
- Fields: ['ID', 'Code', 'DriverClass', 'DefaultQualificationPolicy', 'CalendarDriverClass', 'IsActive'],
677
+ // Every name here must match ProviderTypeRow exactly, both ways round. The docblock
678
+ // there is not decoration: a field declared and not listed reads `undefined`, and a
679
+ // capture policy that reads undefined silently means "None". A test pins the two
680
+ // lists against each other, and it parses this array literally -- keep comments out
681
+ // of it.
682
+ Fields: [
683
+ 'ID',
684
+ 'Code',
685
+ 'DriverClass',
686
+ 'DefaultQualificationPolicy',
687
+ 'CalendarDriverClass',
688
+ 'IsActive',
689
+ 'DefaultSkippedContentPolicy',
690
+ 'DefaultEncryptionKeyID',
691
+ ],
624
692
  MaxRows: 1,
625
693
  ResultType: 'simple',
626
694
  }, user);
@@ -709,7 +777,7 @@ export class ActivitySyncEngine {
709
777
  }
710
778
  return row.Save();
711
779
  }
712
- async persistRun(connection, options, result, watermarkBefore, watermarkAfter, provider, user, details) {
780
+ async persistRun(connection, options, result, watermarkBefore, watermarkAfter, provider, user, capture, details) {
713
781
  try {
714
782
  const run = await provider.GetEntityObject(ACTIVITY_SYNC_ENTITIES.Runs, user);
715
783
  run.NewRecord();
@@ -742,12 +810,14 @@ export class ActivitySyncEngine {
742
810
  * nobody can read is worth less than one filed under an imperfect name. Connection HEALTH
743
811
  * stays keyed on failure — a warned run must not make a working connection look broken.
744
812
  *
745
- * NOT TRUNCATED, and that is a change from the two older writes above. Both slice at 4000,
746
- * an inherited habit rather than a constraint: every candidate column here is NVARCHAR(MAX)
747
- * and none is 4000 wide. It cost nothing while those held a single failure message. This one
748
- * is the first write that GROWS WITH THE ITEM COUNT — the attachment gap is reported once per
749
- * item at roughly 250-320 characters, so a fifty-item run would lose most of its tail, in the
750
- * field this commit added so those warnings could be read at all.
813
+ * NOT TRUNCATED, and neither is anything else this engine writes any more. Three writes
814
+ * capped free text against MAX columns — this one and `LastError` at 4000, the run detail's
815
+ * `Reason` at 500 — an inherited habit rather than a constraint, since none of the columns is
816
+ * that wide. It cost nothing while each held a single failure message. This one is the first
817
+ * that GROWS WITH THE ITEM COUNT: the attachment gap is reported once per item at roughly
818
+ * 250-320 characters, so a fifty-item run would lose most of its tail, in the field this
819
+ * commit added so those warnings could be read at all. The other two came off with it, and
820
+ * each has a mutant putting it back.
751
821
  */
752
822
  run.ErrorMessage = result.Issues.length > 0 ? result.Issues.join(' | ') : null;
753
823
  if (!(await run.Save())) {
@@ -764,10 +834,67 @@ export class ActivitySyncEngine {
764
834
  row.OccurredAt = detail.Item.StartedAt;
765
835
  row.Decision = options.DryRun ? AsDryRunDecision(detail.Decision) : detail.Decision;
766
836
  row.DecidedByStage = detail.Stage;
767
- row.Reason = detail.Reason.slice(0, 500);
837
+ /**
838
+ * The third cap, and the same finding as the other two: `Reason` is NVARCHAR(MAX) and
839
+ * this sliced it at 500. It matters most for the decision this feature is about — a
840
+ * `Failed` detail's Reason is the writer's issues joined, and it sits beside
841
+ * `CapturedContent` as the explanation of why the message was not filed. Losing the tail
842
+ * of that leaves an audit row holding content and no usable account of the failure.
843
+ */
844
+ row.Reason = detail.Reason;
768
845
  row.ActivitySyncRuleID = detail.RuleID ?? null;
769
846
  row.ActivitySyncExclusionID = detail.ExclusionID ?? null;
770
847
  row.ActivityID = detail.Decision === 'Included' ? (detail.ActivityID ?? null) : null;
848
+ /**
849
+ * CAPTURED CONTENT, for messages this run declined to file.
850
+ *
851
+ * Only on a real skip. `Included` has an Activity carrying the content already, and a
852
+ * DRY RUN decided nothing — `WouldExclude` is a preview, and writing ciphertext for a
853
+ * message the engine has not actually declined would put real content behind a
854
+ * retention policy on the strength of a rehearsal.
855
+ *
856
+ * `Failed` is deliberately included: a message that could not be written is exactly
857
+ * the one an auditor asks about, and it is the case where nothing else holds a copy.
858
+ *
859
+ * ── `Duplicate` IS EXCLUDED, FOR THE SAME REASON AS `Included` ────────────────────
860
+ *
861
+ * A duplicate is filed. The writer reports `AlreadyPresent` and the detail carries
862
+ * `ActivityID`, so the content is already retrievable from the Activity holding it —
863
+ * which is precisely the argument that keeps `Included` out. Capturing it puts an
864
+ * encrypted second copy of ordinary filed mail in a column meant for messages that were
865
+ * NOT filed, and `row.ActivityID` is nulled for every non-`Included` decision, so that
866
+ * copy would not even link back to the Activity holding the same text.
867
+ *
868
+ * The cost is not theoretical. The calendar window ignores `Since` and is always
869
+ * `[now - 30d, now + 30d]`, so every run re-reads the whole window and every event
870
+ * already filed comes back a duplicate. A meeting sits in that window across roughly
871
+ * sixty daily runs: one files it, the rest would re-encrypt its subject and body onto a
872
+ * fresh run-detail row each time. Under `FullEncrypted` that is about sixty encrypted
873
+ * copies of every meeting.
874
+ *
875
+ * It was captured until golive#116's follow-up review asked whether that was deliberate.
876
+ * It was not.
877
+ *
878
+ * Ciphertext and key are written together or not at all, mirroring
879
+ * CK_ActivitySyncRunDetail_ContentKey. Encryption failing is reported and the row is
880
+ * still saved without content: losing the whole run record because one message could
881
+ * not be encrypted would be a worse trade than an audit gap that says so.
882
+ */
883
+ const skipped = detail.Decision === 'Excluded' || detail.Decision === 'Failed';
884
+ if (capture.Capture !== 'None' && skipped && !options.DryRun && this.cipher && capture.EncryptionKeyID) {
885
+ const plaintext = ContentToCapture(capture.Capture, detail.Item);
886
+ if (plaintext !== null) {
887
+ try {
888
+ row.CapturedContent = await this.cipher.Encrypt(plaintext, capture.EncryptionKeyID, user);
889
+ row.EncryptionKeyID = capture.EncryptionKeyID;
890
+ }
891
+ catch (err) {
892
+ result.Issues.push(`Could not encrypt captured content for ${detail.Item.ExternalID}: ` +
893
+ `${err instanceof Error ? err.message : String(err)}. The decision was recorded; ` +
894
+ 'the content was not.');
895
+ }
896
+ }
897
+ }
771
898
  if (!(await row.Save())) {
772
899
  result.Issues.push(row.LatestResult?.CompleteMessage ??
773
900
  `ActivitySyncRunDetail.Save failed for ${detail.Item.ExternalID}.`);
@@ -1 +1 @@
1
- {"version":3,"file":"ActivitySyncEngine.js","sourceRoot":"","sources":["../src/ActivitySyncEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActivitySyncEngine.js","sourceRoot":"","sources":["../src/ActivitySyncEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Retaining content from a message the engine deliberately did NOT ingest.
3
+ *
4
+ * ── WHAT THIS IS FOR ────────────────────────────────────────────────────────────────────────────
5
+ *
6
+ * `ActivitySyncRunDetail` records that a message was seen and excluded. For some deployments the
7
+ * decision alone is not enough: an auditor asking "what was in the message you declined to file?"
8
+ * needs an answer, and "we no longer have it" is a bad one. `SkippedContentPolicy` is that switch,
9
+ * and `CapturedContent` is where the answer goes.
10
+ *
11
+ * ── WHY IT WAS WRITTEN AND NEVER WIRED ──────────────────────────────────────────────────────────
12
+ *
13
+ * Every piece of this existed before this change and none of it was reachable.
14
+ * `DefaultSkippedContentPolicy` and `DefaultEncryptionKeyID` on the provider type, their overrides
15
+ * on the connection, `CapturedContent` and `EncryptionKeyID` on the run detail, two CHECK
16
+ * constraints enforcing that ciphertext and key travel together, and `ResolveCapturePlan` — written,
17
+ * documented and unit-tested — with zero callers.
18
+ *
19
+ * So an operator could set `SkippedContentPolicy` to `SubjectEncrypted`, point it at a key, watch
20
+ * runs complete successfully, and retain nothing. The misconfiguration `ResolveCapturePlan` exists to
21
+ * refuse — a policy above `None` with no key — never fired either, because nothing called it.
22
+ *
23
+ * ── WHY A SEAM RATHER THAN AN IMPORT ────────────────────────────────────────────────────────────
24
+ *
25
+ * `CapturedContent` is documented as "Ciphertext, always — never plaintext, whatever the policy...
26
+ * Encrypted through MJ's EncryptionEngine against an MJ: Encryption Keys row; this app never
27
+ * implements its own crypto." This package holds to the second half of that: it takes no runtime
28
+ * dependency on the Encryption engine, and asks a host for a cipher the same way it asks for a
29
+ * transport factory.
30
+ *
31
+ * The difference from `ActivityFileSink`, and the reason this one is not the same defect again:
32
+ * `common-server` FILLS this seam at bootstrap, beside the transport factory and the mailbox policy.
33
+ * A seam nothing implements is exactly what this package keeps being fixed for, so the implementation
34
+ * ships with the interface.
35
+ *
36
+ * @module @mj-biz-apps/common-activity-sync
37
+ */
38
+ import type { UserInfo } from '@memberjunction/core';
39
+ import type { NormalizedItem } from './types.js';
40
+ /**
41
+ * Turns plaintext into the ciphertext stored in `ActivitySyncRunDetail.CapturedContent`.
42
+ *
43
+ * Deliberately narrow: one method, strings in and out, no key management and no decryption. Reading
44
+ * captured content back is an audit action performed by a person with the key, not something the
45
+ * sync engine ever needs to do, and an engine that cannot decrypt cannot leak.
46
+ */
47
+ export interface ActivityContentCipher {
48
+ /**
49
+ * @param plaintext what to protect.
50
+ * @param encryptionKeyID the `MJ: Encryption Keys` row to encrypt against.
51
+ * @param contextUser who the key lookup runs as.
52
+ *
53
+ * A cipher is asked to perform a PRIVILEGED READ — it has to reach key material to answer —
54
+ * and the engine is the only code here that knows whose run this is. A host whose cipher
55
+ * reads its own key table, or calls a KMS under the caller's identity, cannot get that from
56
+ * anywhere else. The order-line edit veto in Orders is handed a user for exactly this
57
+ * reason, and a seam that asks a question without saying who is asking is incomplete.
58
+ *
59
+ * BE CLEAR ABOUT WHAT THIS DOES NOT DO. MJ's own `EncryptionEngine` does not currently
60
+ * consult it: `setupSQLServerClient` runs `StartupManager`, which configures that engine
61
+ * with a system user, so `ensureConfigured` is a no-op by the time any capture happens.
62
+ * Measured in a fresh process against a host with no usable key — with and without a user,
63
+ * `Encrypt` returns the identical error. This argument is the seam's contract, not a
64
+ * workaround for MJ.
65
+ *
66
+ * @returns the ciphertext to store. Throwing is correct when the key is missing or unusable —
67
+ * the caller records the failure as a run issue rather than storing plaintext.
68
+ */
69
+ Encrypt(plaintext: string, encryptionKeyID: string, contextUser: UserInfo): Promise<string>;
70
+ }
71
+ /**
72
+ * Register the cipher this host protects captured content with. Pass null to clear it.
73
+ *
74
+ * Idempotent and last-call-wins, matching the transport factory and the file sink: a host that boots
75
+ * twice in one process must not end up with two.
76
+ */
77
+ export declare function RegisterActivityContentCipher(cipher: ActivityContentCipher | null): void;
78
+ /** The registered cipher, or null on a host that cannot encrypt. */
79
+ export declare function HostActivityContentCipher(): ActivityContentCipher | null;
80
+ /**
81
+ * The plaintext a capture plan calls for, or null when it calls for nothing.
82
+ *
83
+ * `Subject` keeps the one line that identifies the message to a human. `Full` adds the body, which is
84
+ * the whole point of the stronger setting — an auditor asking what was in a declined message is
85
+ * asking about the body.
86
+ *
87
+ * A subject-only capture of a message with no subject still returns the placeholder rather than null:
88
+ * "(no subject)" is a fact about the message, and returning null here would make an empty capture
89
+ * indistinguishable from a policy that captured nothing.
90
+ */
91
+ export declare function ContentToCapture(capture: 'None' | 'Subject' | 'Full', item: NormalizedItem): string | null;
92
+ //# sourceMappingURL=content-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-capture.d.ts","sourceRoot":"","sources":["../src/content-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IAClC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/F;AAID;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAExF;AAED,oEAAoE;AACpE,wBAAgB,yBAAyB,IAAI,qBAAqB,GAAG,IAAI,CAExE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAM1G"}
@@ -0,0 +1,35 @@
1
+ let hostCipher = null;
2
+ /**
3
+ * Register the cipher this host protects captured content with. Pass null to clear it.
4
+ *
5
+ * Idempotent and last-call-wins, matching the transport factory and the file sink: a host that boots
6
+ * twice in one process must not end up with two.
7
+ */
8
+ export function RegisterActivityContentCipher(cipher) {
9
+ hostCipher = cipher;
10
+ }
11
+ /** The registered cipher, or null on a host that cannot encrypt. */
12
+ export function HostActivityContentCipher() {
13
+ return hostCipher;
14
+ }
15
+ /**
16
+ * The plaintext a capture plan calls for, or null when it calls for nothing.
17
+ *
18
+ * `Subject` keeps the one line that identifies the message to a human. `Full` adds the body, which is
19
+ * the whole point of the stronger setting — an auditor asking what was in a declined message is
20
+ * asking about the body.
21
+ *
22
+ * A subject-only capture of a message with no subject still returns the placeholder rather than null:
23
+ * "(no subject)" is a fact about the message, and returning null here would make an empty capture
24
+ * indistinguishable from a policy that captured nothing.
25
+ */
26
+ export function ContentToCapture(capture, item) {
27
+ if (capture === 'None')
28
+ return null;
29
+ const subject = item.Subject?.trim() || '(no subject)';
30
+ if (capture === 'Subject')
31
+ return subject;
32
+ const body = item.Body?.trim();
33
+ return body ? `${subject}\n\n${body}` : subject;
34
+ }
35
+ //# sourceMappingURL=content-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-capture.js","sourceRoot":"","sources":["../src/content-capture.ts"],"names":[],"mappings":"AAyEA,IAAI,UAAU,GAAiC,IAAI,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAoC;IAC9E,UAAU,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,yBAAyB;IACrC,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAoC,EAAE,IAAoB;IACvF,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,cAAc,CAAC;IACvD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/B,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACpD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -12,6 +12,7 @@ export * from './watermark.js';
12
12
  export * from './qualification.js';
13
13
  export * from './participants.js';
14
14
  export * from './attachments.js';
15
+ export * from './content-capture.js';
15
16
  export * from './run.js';
16
17
  export * from './BaseActivitySyncProvider.js';
17
18
  export * from './BaseActivitySyncExtension.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC"}
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ export * from './watermark.js';
12
12
  export * from './qualification.js';
13
13
  export * from './participants.js';
14
14
  export * from './attachments.js';
15
+ export * from './content-capture.js';
15
16
  export * from './run.js';
16
17
  export * from './BaseActivitySyncProvider.js';
17
18
  export * from './BaseActivitySyncExtension.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,yCAAyC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mj-biz-apps/common-activity-sync",
3
3
  "type": "module",
4
- "version": "5.43.0",
4
+ "version": "5.44.0",
5
5
  "description": "Activity Sync Engine contracts for BizApps Common — provider plugin base class, qualification cascade, and the in-process extension contract that lets downstream apps enrich an Activity inside its own write transaction.",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "vitest": "^3.2.4"
19
19
  },
20
20
  "dependencies": {
21
- "@mj-biz-apps/common-entities": "5.43.0"
21
+ "@mj-biz-apps/common-entities": "5.44.0"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "@memberjunction/communication-types": "^6.1.0-edge.6",