@clear-capabilities/agentic-security-scanner 0.145.0 → 0.147.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 (162) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/bin/agentic-security.js +3508 -69
  3. package/dist/1122.index.js +702 -0
  4. package/dist/{301.index.js → 1301.index.js} +2 -2
  5. package/dist/1379.index.js +591 -0
  6. package/dist/{444.index.js → 1444.index.js} +2 -2
  7. package/dist/{660.index.js → 1660.index.js} +2 -2
  8. package/dist/{700.index.js → 1700.index.js} +2 -2
  9. package/dist/{905.index.js → 1905.index.js} +3 -3
  10. package/dist/{920.index.js → 1920.index.js} +3 -3
  11. package/dist/{238.index.js → 2238.index.js} +3 -3
  12. package/dist/{271.index.js → 2271.index.js} +2 -2
  13. package/dist/{985.index.js → 2376.index.js} +1260 -340
  14. package/dist/2432.index.js +793 -0
  15. package/dist/2659.index.js +93 -0
  16. package/dist/{826.index.js → 2826.index.js} +2 -2
  17. package/dist/{830.index.js → 2830.index.js} +2 -2
  18. package/dist/2923.index.js +298 -0
  19. package/dist/{1.index.js → 3001.index.js} +5 -5
  20. package/dist/{117.index.js → 3117.index.js} +3 -3
  21. package/dist/3180.index.js +307 -0
  22. package/dist/3276.index.js +117 -0
  23. package/dist/{415.index.js → 3415.index.js} +2 -2
  24. package/dist/{499.index.js → 3499.index.js} +2 -2
  25. package/dist/3518.index.js +450 -0
  26. package/dist/{526.index.js → 3526.index.js} +5 -5
  27. package/dist/{736.index.js → 3736.index.js} +4 -4
  28. package/dist/{839.index.js → 3839.index.js} +4 -4
  29. package/dist/{113.index.js → 4113.index.js} +5 -5
  30. package/dist/{265.index.js → 4265.index.js} +2 -2
  31. package/dist/{384.index.js → 4384.index.js} +3 -3
  32. package/dist/4547.index.js +268 -0
  33. package/dist/4863.index.js +422 -0
  34. package/dist/{970.index.js → 4970.index.js} +2 -2
  35. package/dist/5051.index.js +770 -0
  36. package/dist/{144.index.js → 5144.index.js} +5 -5
  37. package/dist/{333.index.js → 5333.index.js} +3 -3
  38. package/dist/5343.index.js +185 -0
  39. package/dist/5350.index.js +866 -0
  40. package/dist/5561.index.js +436 -0
  41. package/dist/{637.index.js → 5637.index.js} +3 -3
  42. package/dist/{449.index.js → 5830.index.js} +2 -2
  43. package/dist/6626.index.js +532 -0
  44. package/dist/6662.index.js +297 -0
  45. package/dist/{675.index.js → 6675.index.js} +5 -5
  46. package/dist/{730.index.js → 6730.index.js} +6 -6
  47. package/dist/6829.index.js +225 -0
  48. package/dist/6944.index.js +130 -0
  49. package/dist/{178.index.js → 7178.index.js} +3 -3
  50. package/dist/{227.index.js → 7227.index.js} +2 -2
  51. package/dist/7310.index.js +520 -0
  52. package/dist/{552.index.js → 7552.index.js} +4 -4
  53. package/dist/7709.index.js +78 -0
  54. package/dist/8218.index.js +160 -0
  55. package/dist/{476.index.js → 8476.index.js} +4 -4
  56. package/dist/{513.index.js → 8513.index.js} +5 -5
  57. package/dist/{520.index.js → 8520.index.js} +2 -2
  58. package/dist/{718.index.js → 8718.index.js} +2 -2
  59. package/dist/{752.index.js → 8752.index.js} +2 -2
  60. package/dist/8846.index.js +100 -0
  61. package/dist/{435.index.js → 9091.index.js} +560 -189
  62. package/dist/{207.index.js → 9207.index.js} +2 -2
  63. package/dist/{220.index.js → 9220.index.js} +2 -2
  64. package/dist/9390.index.js +163 -0
  65. package/dist/{503.index.js → 9503.index.js} +2 -2
  66. package/dist/{801.index.js → 9801.index.js} +2 -2
  67. package/dist/{824.index.js → 9824.index.js} +2 -2
  68. package/dist/agentic-security.mjs +16 -16
  69. package/dist/agentic-security.mjs.sha256 +1 -1
  70. package/dist/compliance-frameworks/hipaa-security-rule.json +3 -2
  71. package/package.json +12 -5
  72. package/src/dataflow/CLAUDE.md +1 -1
  73. package/src/dataflow/catalog.js +42 -0
  74. package/src/dataflow/orm-write-catalog.js +175 -0
  75. package/src/engine.js +92 -1
  76. package/src/ir/CLAUDE.md +1 -0
  77. package/src/ir/chrome-probe.mjs +150 -0
  78. package/src/ir/parser-js.js +94 -7
  79. package/src/lineage/CLAUDE.md +1203 -0
  80. package/src/lineage/DESIGN_DESTINATION_RESOLVER.md +156 -0
  81. package/src/lineage/DESIGN_GRAPH_BUILDER.md +938 -0
  82. package/src/lineage/DESIGN_HANDLING_ANALYZER.md +355 -0
  83. package/src/lineage/DESIGN_INTRAPROCEDURAL.md +628 -0
  84. package/src/lineage/DESIGN_PATH_PROVENANCE.md +3451 -0
  85. package/src/lineage/DESIGN_QUEUE_DETAIL.md +120 -0
  86. package/src/lineage/DESIGN_REGISTRIES.md +880 -0
  87. package/src/lineage/DESIGN_STORE_DETAIL.md +143 -0
  88. package/src/lineage/DESIGN_TRANSIT_PROTECTION.md +245 -0
  89. package/src/lineage/classification.js +56 -0
  90. package/src/lineage/coverage.js +658 -0
  91. package/src/lineage/cross-repo-link.js +107 -0
  92. package/src/lineage/dataflow-graph.schema.json +184 -0
  93. package/src/lineage/decision-story.js +206 -0
  94. package/src/lineage/drift-policy.js +279 -0
  95. package/src/lineage/driver.js +135 -0
  96. package/src/lineage/engine.js +992 -0
  97. package/src/lineage/export-briefing.js +628 -0
  98. package/src/lineage/export-csv.js +62 -0
  99. package/src/lineage/export-json.js +238 -0
  100. package/src/lineage/export-privacy.js +258 -0
  101. package/src/lineage/federation-loader.js +111 -0
  102. package/src/lineage/field-identity.js +78 -0
  103. package/src/lineage/fixtures/build-flagship-fixture.mjs +272 -0
  104. package/src/lineage/fixtures/flagship-graph.json +1453 -0
  105. package/src/lineage/flow-grade.js +221 -0
  106. package/src/lineage/governance-edit.js +169 -0
  107. package/src/lineage/graph-builder.js +1114 -0
  108. package/src/lineage/graph-diff.js +431 -0
  109. package/src/lineage/graph-snapshot.js +180 -0
  110. package/src/lineage/handling-analyzer.js +168 -0
  111. package/src/lineage/ids.js +349 -0
  112. package/src/lineage/impact-assessment.js +76 -0
  113. package/src/lineage/impact-engine.js +268 -0
  114. package/src/lineage/index.js +281 -0
  115. package/src/lineage/language-coverage-tiers.js +58 -0
  116. package/src/lineage/obligation-mapping.js +126 -0
  117. package/src/lineage/obligation-predicates.js +235 -0
  118. package/src/lineage/observation-adapters.js +282 -0
  119. package/src/lineage/observation-correlation.js +622 -0
  120. package/src/lineage/observation-store.js +497 -0
  121. package/src/lineage/path-query.js +410 -0
  122. package/src/lineage/path-store.js +400 -0
  123. package/src/lineage/protection.js +53 -0
  124. package/src/lineage/recipient-profile.js +192 -0
  125. package/src/lineage/recipient-registry.js +394 -0
  126. package/src/lineage/redact-graph.js +224 -0
  127. package/src/lineage/remediation.js +417 -0
  128. package/src/lineage/resolve-destination.js +91 -0
  129. package/src/lineage/runtime-observation.js +464 -0
  130. package/src/lineage/scenario-diff.js +84 -0
  131. package/src/lineage/scenario-engine.js +251 -0
  132. package/src/lineage/scenario.js +101 -0
  133. package/src/lineage/schema.js +167 -0
  134. package/src/lineage/sink-registry.js +427 -0
  135. package/src/lineage/source-registry.js +357 -0
  136. package/src/lineage/source-seeding.js +212 -0
  137. package/src/lineage/summaries.js +590 -0
  138. package/src/lineage/transform-catalog.js +397 -0
  139. package/src/lineage/transit-protection.js +150 -0
  140. package/src/lineage/validate.js +285 -0
  141. package/src/mcp/CLAUDE.md +7 -1
  142. package/src/mcp/dataflow-tools.js +160 -0
  143. package/src/mcp/server.js +1 -1
  144. package/src/mcp/tools.js +2 -1
  145. package/src/pipeline/scan-health.js +19 -1
  146. package/src/posture/CLAUDE.md +19 -0
  147. package/src/posture/artifact-registry.js +52 -0
  148. package/src/posture/auditor-walkthrough.js +76 -0
  149. package/src/posture/compliance-frameworks/hipaa-security-rule.json +3 -2
  150. package/src/posture/obligation-evidence-pack.js +202 -0
  151. package/src/posture/remediation-ledger.js +337 -0
  152. package/src/server/CLAUDE.md +47 -0
  153. package/src/server/graph-loader.js +141 -0
  154. package/src/server/http-server.js +325 -0
  155. package/src/server/routes.js +129 -0
  156. package/src/server/security.js +111 -0
  157. package/src/server/static-assets.js +139 -0
  158. package/dist/11.index.js +0 -353
  159. package/dist/259.index.js +0 -975
  160. package/dist/317.index.js +0 -300
  161. package/dist/609.index.js +0 -741
  162. package/dist/838.index.js +0 -152
@@ -0,0 +1,1453 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "graphId": "dfg:payments-platform:fixture0000000000000000000000000000000:fixture-default",
4
+ "generatedAt": "2026-08-29T00:00:00.000Z",
5
+ "scope": {
6
+ "source": "fixture",
7
+ "repository": "payments-platform",
8
+ "commit": "fixture0000000000000000000000000000000",
9
+ "environment": "production"
10
+ },
11
+ "scanHealth": {
12
+ "status": "complete",
13
+ "reason": "fixture"
14
+ },
15
+ "taxonomy": {
16
+ "version": "1.0.0",
17
+ "source": "built-in + CONFIDENTIAL extension"
18
+ },
19
+ "nodes": [
20
+ {
21
+ "id": "node:source:4aa6d910c10e",
22
+ "kind": "source",
23
+ "subtype": "web-app",
24
+ "label": "Web App",
25
+ "aliases": [
26
+ "Checkout Form",
27
+ "Registration Form"
28
+ ],
29
+ "location": null,
30
+ "system": {
31
+ "application": "payments-platform",
32
+ "environment": "production"
33
+ },
34
+ "destination": null,
35
+ "externality": {
36
+ "value": "internal",
37
+ "evidenceRefs": []
38
+ },
39
+ "lifecycleStages": [
40
+ "collection"
41
+ ],
42
+ "governanceRefs": {},
43
+ "dataElementIds": [
44
+ "data:f68cbbd8e123",
45
+ "data:c929a6c5128b",
46
+ "data:2eda79a2e73e"
47
+ ],
48
+ "evidenceRefs": [],
49
+ "confidence": {
50
+ "score": 1,
51
+ "tier": "high"
52
+ },
53
+ "coverageStatus": "modeled"
54
+ },
55
+ {
56
+ "id": "node:api:02d844c7d1cd",
57
+ "kind": "api",
58
+ "subtype": "api-gateway",
59
+ "label": "API Gateway",
60
+ "aliases": [],
61
+ "location": null,
62
+ "system": {
63
+ "application": "payments-platform",
64
+ "environment": "production"
65
+ },
66
+ "destination": null,
67
+ "externality": {
68
+ "value": "internal",
69
+ "evidenceRefs": []
70
+ },
71
+ "lifecycleStages": [
72
+ "processing"
73
+ ],
74
+ "governanceRefs": {},
75
+ "dataElementIds": [],
76
+ "evidenceRefs": [],
77
+ "confidence": {
78
+ "score": 1,
79
+ "tier": "high"
80
+ },
81
+ "coverageStatus": "modeled"
82
+ },
83
+ {
84
+ "id": "node:process:b3cd659d55dd",
85
+ "kind": "process",
86
+ "subtype": "service",
87
+ "label": "Payments Service",
88
+ "aliases": [],
89
+ "location": null,
90
+ "system": {
91
+ "application": "payments-platform",
92
+ "environment": "production"
93
+ },
94
+ "destination": null,
95
+ "externality": {
96
+ "value": "internal",
97
+ "evidenceRefs": []
98
+ },
99
+ "lifecycleStages": [
100
+ "processing"
101
+ ],
102
+ "governanceRefs": {},
103
+ "dataElementIds": [
104
+ "data:f68cbbd8e123"
105
+ ],
106
+ "evidenceRefs": [],
107
+ "confidence": {
108
+ "score": 1,
109
+ "tier": "high"
110
+ },
111
+ "coverageStatus": "modeled"
112
+ },
113
+ {
114
+ "id": "node:process:c0402f8ccc97",
115
+ "kind": "process",
116
+ "subtype": "service",
117
+ "label": "Events Service",
118
+ "aliases": [],
119
+ "location": null,
120
+ "system": {
121
+ "application": "payments-platform",
122
+ "environment": "production"
123
+ },
124
+ "destination": null,
125
+ "externality": {
126
+ "value": "internal",
127
+ "evidenceRefs": []
128
+ },
129
+ "lifecycleStages": [
130
+ "processing"
131
+ ],
132
+ "governanceRefs": {},
133
+ "dataElementIds": [
134
+ "data:2eda79a2e73e"
135
+ ],
136
+ "evidenceRefs": [],
137
+ "confidence": {
138
+ "score": 1,
139
+ "tier": "high"
140
+ },
141
+ "coverageStatus": "modeled"
142
+ },
143
+ {
144
+ "id": "node:process:d09c75cee70b",
145
+ "kind": "process",
146
+ "subtype": "ai-assistant",
147
+ "label": "AI Assistant",
148
+ "aliases": [],
149
+ "location": null,
150
+ "system": {
151
+ "application": "payments-platform",
152
+ "environment": "production"
153
+ },
154
+ "destination": null,
155
+ "externality": {
156
+ "value": "internal",
157
+ "evidenceRefs": []
158
+ },
159
+ "lifecycleStages": [
160
+ "processing"
161
+ ],
162
+ "governanceRefs": {},
163
+ "dataElementIds": [
164
+ "data:f68cbbd8e123",
165
+ "data:c929a6c5128b"
166
+ ],
167
+ "evidenceRefs": [],
168
+ "confidence": {
169
+ "score": 1,
170
+ "tier": "high"
171
+ },
172
+ "coverageStatus": "modeled"
173
+ },
174
+ {
175
+ "id": "node:store:a58eb8ae3e2c",
176
+ "kind": "store",
177
+ "subtype": "postgres-table",
178
+ "label": "PostgreSQL",
179
+ "aliases": [],
180
+ "location": null,
181
+ "system": {
182
+ "application": "payments-platform",
183
+ "environment": "production"
184
+ },
185
+ "destination": null,
186
+ "externality": {
187
+ "value": "internal",
188
+ "evidenceRefs": []
189
+ },
190
+ "lifecycleStages": [
191
+ "storage"
192
+ ],
193
+ "governanceRefs": {},
194
+ "dataElementIds": [
195
+ "data:f68cbbd8e123"
196
+ ],
197
+ "evidenceRefs": [],
198
+ "confidence": {
199
+ "score": 1,
200
+ "tier": "high"
201
+ },
202
+ "coverageStatus": "modeled"
203
+ },
204
+ {
205
+ "id": "node:log:608492464d54",
206
+ "kind": "log",
207
+ "subtype": "application-logs",
208
+ "label": "Application Logs",
209
+ "aliases": [],
210
+ "location": null,
211
+ "system": {
212
+ "application": "payments-platform",
213
+ "environment": "production"
214
+ },
215
+ "destination": null,
216
+ "externality": {
217
+ "value": "internal",
218
+ "evidenceRefs": []
219
+ },
220
+ "lifecycleStages": [
221
+ "storage"
222
+ ],
223
+ "governanceRefs": {},
224
+ "dataElementIds": [
225
+ "data:f68cbbd8e123"
226
+ ],
227
+ "evidenceRefs": [],
228
+ "confidence": {
229
+ "score": 1,
230
+ "tier": "high"
231
+ },
232
+ "coverageStatus": "modeled"
233
+ },
234
+ {
235
+ "id": "node:external:eedca8089e42",
236
+ "kind": "external",
237
+ "subtype": "payment-api",
238
+ "label": "Payment API",
239
+ "aliases": [
240
+ "Payment Processor"
241
+ ],
242
+ "location": null,
243
+ "system": {
244
+ "application": "payments-platform",
245
+ "environment": "production"
246
+ },
247
+ "destination": null,
248
+ "externality": {
249
+ "value": "external",
250
+ "evidenceRefs": []
251
+ },
252
+ "lifecycleStages": [
253
+ "sharing"
254
+ ],
255
+ "governanceRefs": {},
256
+ "dataElementIds": [
257
+ "data:f68cbbd8e123"
258
+ ],
259
+ "evidenceRefs": [],
260
+ "confidence": {
261
+ "score": 1,
262
+ "tier": "high"
263
+ },
264
+ "coverageStatus": "modeled"
265
+ },
266
+ {
267
+ "id": "node:external:4ecf6cdd76c4",
268
+ "kind": "external",
269
+ "subtype": "analytics-api",
270
+ "label": "Analytics API",
271
+ "aliases": [
272
+ "Analytics Provider",
273
+ "Analytics DB"
274
+ ],
275
+ "location": null,
276
+ "system": {
277
+ "application": "payments-platform",
278
+ "environment": "production"
279
+ },
280
+ "destination": null,
281
+ "externality": {
282
+ "value": "external",
283
+ "evidenceRefs": []
284
+ },
285
+ "lifecycleStages": [
286
+ "sharing"
287
+ ],
288
+ "governanceRefs": {},
289
+ "dataElementIds": [
290
+ "data:2eda79a2e73e"
291
+ ],
292
+ "evidenceRefs": [],
293
+ "confidence": {
294
+ "score": 1,
295
+ "tier": "high"
296
+ },
297
+ "coverageStatus": "modeled"
298
+ },
299
+ {
300
+ "id": "node:external:cb19872a775c",
301
+ "kind": "external",
302
+ "subtype": "ai-model-provider",
303
+ "label": "Model Provider",
304
+ "aliases": [],
305
+ "location": null,
306
+ "system": {
307
+ "application": "payments-platform",
308
+ "environment": "production"
309
+ },
310
+ "destination": null,
311
+ "externality": {
312
+ "value": "external",
313
+ "evidenceRefs": []
314
+ },
315
+ "lifecycleStages": [
316
+ "sharing"
317
+ ],
318
+ "governanceRefs": {},
319
+ "dataElementIds": [
320
+ "data:f68cbbd8e123",
321
+ "data:c929a6c5128b"
322
+ ],
323
+ "evidenceRefs": [],
324
+ "confidence": {
325
+ "score": 1,
326
+ "tier": "high"
327
+ },
328
+ "coverageStatus": "modeled"
329
+ },
330
+ {
331
+ "id": "node:store:99b330ddb7fc",
332
+ "kind": "store",
333
+ "subtype": "vector-store",
334
+ "label": "Vector Store",
335
+ "aliases": [],
336
+ "location": null,
337
+ "system": {
338
+ "application": "payments-platform",
339
+ "environment": "production"
340
+ },
341
+ "destination": null,
342
+ "externality": {
343
+ "value": "unknown",
344
+ "evidenceRefs": []
345
+ },
346
+ "lifecycleStages": [
347
+ "storage"
348
+ ],
349
+ "governanceRefs": {},
350
+ "dataElementIds": [
351
+ "data:c929a6c5128b"
352
+ ],
353
+ "evidenceRefs": [],
354
+ "confidence": {
355
+ "score": 1,
356
+ "tier": "high"
357
+ },
358
+ "coverageStatus": "modeled"
359
+ },
360
+ {
361
+ "id": "node:unresolved:b67f539cc277",
362
+ "kind": "unresolved",
363
+ "subtype": "unresolved-destination",
364
+ "label": "Unresolved Destination",
365
+ "aliases": [],
366
+ "location": null,
367
+ "system": {
368
+ "application": "payments-platform",
369
+ "environment": "production"
370
+ },
371
+ "destination": null,
372
+ "externality": {
373
+ "value": "unknown",
374
+ "evidenceRefs": []
375
+ },
376
+ "lifecycleStages": [
377
+ "sharing"
378
+ ],
379
+ "governanceRefs": {},
380
+ "dataElementIds": [
381
+ "data:2eda79a2e73e"
382
+ ],
383
+ "evidenceRefs": [],
384
+ "confidence": {
385
+ "score": 1,
386
+ "tier": "high"
387
+ },
388
+ "coverageStatus": "modeled"
389
+ },
390
+ {
391
+ "id": "node:process:0ee928561e67",
392
+ "kind": "process",
393
+ "subtype": "retention-policy",
394
+ "label": "Retention Policy",
395
+ "aliases": [],
396
+ "location": null,
397
+ "system": {
398
+ "application": "payments-platform",
399
+ "environment": "production"
400
+ },
401
+ "destination": null,
402
+ "externality": {
403
+ "value": "internal",
404
+ "evidenceRefs": []
405
+ },
406
+ "lifecycleStages": [
407
+ "retention"
408
+ ],
409
+ "governanceRefs": {},
410
+ "dataElementIds": [],
411
+ "evidenceRefs": [],
412
+ "confidence": {
413
+ "score": 1,
414
+ "tier": "high"
415
+ },
416
+ "coverageStatus": "modeled"
417
+ },
418
+ {
419
+ "id": "node:process:04497a9f442c",
420
+ "kind": "process",
421
+ "subtype": "deletion-job",
422
+ "label": "Deletion Job",
423
+ "aliases": [],
424
+ "location": null,
425
+ "system": {
426
+ "application": "payments-platform",
427
+ "environment": "production"
428
+ },
429
+ "destination": null,
430
+ "externality": {
431
+ "value": "internal",
432
+ "evidenceRefs": []
433
+ },
434
+ "lifecycleStages": [
435
+ "deletion"
436
+ ],
437
+ "governanceRefs": {},
438
+ "dataElementIds": [],
439
+ "evidenceRefs": [],
440
+ "confidence": {
441
+ "score": 1,
442
+ "tier": "high"
443
+ },
444
+ "coverageStatus": "modeled"
445
+ }
446
+ ],
447
+ "edges": [
448
+ {
449
+ "id": "edge:54d5b1db3415",
450
+ "from": "node:source:4aa6d910c10e",
451
+ "to": "node:process:b3cd659d55dd",
452
+ "relationship": "data_flow",
453
+ "fieldMappings": [
454
+ {
455
+ "fromPath": "req.body.card_number",
456
+ "toPath": "payment.pan",
457
+ "dataElementIds": [
458
+ "data:f68cbbd8e123"
459
+ ],
460
+ "mappingType": "rename",
461
+ "transformationIds": []
462
+ }
463
+ ],
464
+ "protocol": {
465
+ "name": "in-process",
466
+ "destinationResolution": "literal"
467
+ },
468
+ "boundaryCrossings": [],
469
+ "provenance": "code",
470
+ "protection": {
471
+ "transit": {
472
+ "verdict": "not_assessed",
473
+ "evidenceGrade": "none"
474
+ },
475
+ "atRest": {
476
+ "verdict": "not_assessed",
477
+ "evidenceGrade": "none"
478
+ },
479
+ "handling": {
480
+ "verdict": "not_assessed",
481
+ "evidenceGrade": "none"
482
+ }
483
+ },
484
+ "evidenceRefs": [],
485
+ "coverageStatus": "modeled"
486
+ },
487
+ {
488
+ "id": "edge:d613505336aa",
489
+ "from": "node:process:b3cd659d55dd",
490
+ "to": "node:log:608492464d54",
491
+ "relationship": "data_flow",
492
+ "fieldMappings": [
493
+ {
494
+ "fromPath": "payment.pan",
495
+ "toPath": "maskedPan",
496
+ "dataElementIds": [
497
+ "data:f68cbbd8e123"
498
+ ],
499
+ "mappingType": "transformation",
500
+ "transformationIds": [
501
+ "transform:d82a7390c177"
502
+ ]
503
+ }
504
+ ],
505
+ "protocol": {
506
+ "name": "in-process",
507
+ "destinationResolution": "literal"
508
+ },
509
+ "boundaryCrossings": [],
510
+ "provenance": "code",
511
+ "protection": {
512
+ "transit": {
513
+ "verdict": "not_assessed",
514
+ "evidenceGrade": "none"
515
+ },
516
+ "atRest": {
517
+ "verdict": "not_assessed",
518
+ "evidenceGrade": "none"
519
+ },
520
+ "handling": {
521
+ "verdict": "protected",
522
+ "evidenceGrade": "code"
523
+ }
524
+ },
525
+ "evidenceRefs": [
526
+ "evidence:ea9ebd25bed2"
527
+ ],
528
+ "coverageStatus": "modeled"
529
+ },
530
+ {
531
+ "id": "edge:a6fb8d3fdecc",
532
+ "from": "node:process:b3cd659d55dd",
533
+ "to": "node:log:608492464d54",
534
+ "relationship": "data_flow",
535
+ "fieldMappings": [
536
+ {
537
+ "fromPath": "payment.pan",
538
+ "toPath": "payment.pan",
539
+ "dataElementIds": [
540
+ "data:f68cbbd8e123"
541
+ ],
542
+ "mappingType": "identity",
543
+ "transformationIds": []
544
+ }
545
+ ],
546
+ "protocol": {
547
+ "name": "in-process",
548
+ "destinationResolution": "literal"
549
+ },
550
+ "boundaryCrossings": [],
551
+ "provenance": "code",
552
+ "protection": {
553
+ "transit": {
554
+ "verdict": "not_assessed",
555
+ "evidenceGrade": "none"
556
+ },
557
+ "atRest": {
558
+ "verdict": "not_assessed",
559
+ "evidenceGrade": "none"
560
+ },
561
+ "handling": {
562
+ "verdict": "unprotected",
563
+ "evidenceGrade": "code"
564
+ }
565
+ },
566
+ "evidenceRefs": [
567
+ "evidence:81618d7d7576"
568
+ ],
569
+ "coverageStatus": "modeled"
570
+ },
571
+ {
572
+ "id": "edge:fde2387ae333",
573
+ "from": "node:process:b3cd659d55dd",
574
+ "to": "node:store:a58eb8ae3e2c",
575
+ "relationship": "data_flow",
576
+ "fieldMappings": [
577
+ {
578
+ "fromPath": "payment.pan",
579
+ "toPath": "payments.pan",
580
+ "dataElementIds": [
581
+ "data:f68cbbd8e123"
582
+ ],
583
+ "mappingType": "identity",
584
+ "transformationIds": []
585
+ }
586
+ ],
587
+ "protocol": {
588
+ "name": "in-process",
589
+ "destinationResolution": "literal"
590
+ },
591
+ "boundaryCrossings": [],
592
+ "provenance": "code",
593
+ "protection": {
594
+ "transit": {
595
+ "verdict": "not_assessed",
596
+ "evidenceGrade": "none"
597
+ },
598
+ "atRest": {
599
+ "verdict": "unknown",
600
+ "evidenceGrade": "none"
601
+ },
602
+ "handling": {
603
+ "verdict": "not_assessed",
604
+ "evidenceGrade": "none"
605
+ }
606
+ },
607
+ "evidenceRefs": [
608
+ "evidence:1c1d5891a518"
609
+ ],
610
+ "coverageStatus": "modeled"
611
+ },
612
+ {
613
+ "id": "edge:b397f3640150",
614
+ "from": "node:process:b3cd659d55dd",
615
+ "to": "node:external:eedca8089e42",
616
+ "relationship": "data_flow",
617
+ "fieldMappings": [
618
+ {
619
+ "fromPath": "payment.pan",
620
+ "toPath": "payload.cardNumber",
621
+ "dataElementIds": [
622
+ "data:f68cbbd8e123"
623
+ ],
624
+ "mappingType": "rename",
625
+ "transformationIds": []
626
+ }
627
+ ],
628
+ "protocol": {
629
+ "name": "http",
630
+ "destinationResolution": "literal"
631
+ },
632
+ "boundaryCrossings": [
633
+ "trust-zone:external"
634
+ ],
635
+ "provenance": "code",
636
+ "protection": {
637
+ "transit": {
638
+ "verdict": "unprotected",
639
+ "evidenceGrade": "code"
640
+ },
641
+ "atRest": {
642
+ "verdict": "not_assessed",
643
+ "evidenceGrade": "none"
644
+ },
645
+ "handling": {
646
+ "verdict": "not_assessed",
647
+ "evidenceGrade": "none"
648
+ }
649
+ },
650
+ "evidenceRefs": [
651
+ "evidence:7f6318f5b8bd"
652
+ ],
653
+ "coverageStatus": "modeled"
654
+ },
655
+ {
656
+ "id": "edge:12086bfdcb38",
657
+ "from": "node:process:b3cd659d55dd",
658
+ "to": "node:process:d09c75cee70b",
659
+ "relationship": "data_flow",
660
+ "fieldMappings": [
661
+ {
662
+ "fromPath": "payment.pan",
663
+ "toPath": "promptContext.paymentCard",
664
+ "dataElementIds": [
665
+ "data:f68cbbd8e123"
666
+ ],
667
+ "mappingType": "rename",
668
+ "transformationIds": []
669
+ }
670
+ ],
671
+ "protocol": {
672
+ "name": "in-process",
673
+ "destinationResolution": "literal"
674
+ },
675
+ "boundaryCrossings": [],
676
+ "provenance": "code",
677
+ "protection": {
678
+ "transit": {
679
+ "verdict": "not_assessed",
680
+ "evidenceGrade": "none"
681
+ },
682
+ "atRest": {
683
+ "verdict": "not_assessed",
684
+ "evidenceGrade": "none"
685
+ },
686
+ "handling": {
687
+ "verdict": "not_assessed",
688
+ "evidenceGrade": "none"
689
+ }
690
+ },
691
+ "evidenceRefs": [],
692
+ "coverageStatus": "modeled"
693
+ },
694
+ {
695
+ "id": "edge:8736e42f5744",
696
+ "from": "node:process:d09c75cee70b",
697
+ "to": "node:external:cb19872a775c",
698
+ "relationship": "data_flow",
699
+ "fieldMappings": [
700
+ {
701
+ "fromPath": "promptContext.paymentCard",
702
+ "toPath": "model.messages[].content",
703
+ "dataElementIds": [
704
+ "data:f68cbbd8e123"
705
+ ],
706
+ "mappingType": "projection",
707
+ "transformationIds": []
708
+ }
709
+ ],
710
+ "protocol": {
711
+ "name": "in-process",
712
+ "destinationResolution": "literal"
713
+ },
714
+ "boundaryCrossings": [
715
+ "trust-zone:external"
716
+ ],
717
+ "provenance": "code",
718
+ "protection": {
719
+ "transit": {
720
+ "verdict": "not_assessed",
721
+ "evidenceGrade": "none"
722
+ },
723
+ "atRest": {
724
+ "verdict": "not_assessed",
725
+ "evidenceGrade": "none"
726
+ },
727
+ "handling": {
728
+ "verdict": "not_assessed",
729
+ "evidenceGrade": "none"
730
+ }
731
+ },
732
+ "evidenceRefs": [],
733
+ "coverageStatus": "modeled"
734
+ },
735
+ {
736
+ "id": "edge:43c85eec3733",
737
+ "from": "node:source:4aa6d910c10e",
738
+ "to": "node:process:d09c75cee70b",
739
+ "relationship": "data_flow",
740
+ "fieldMappings": [
741
+ {
742
+ "fromPath": "req.body.diagnosis",
743
+ "toPath": "promptContext.summary",
744
+ "dataElementIds": [
745
+ "data:c929a6c5128b"
746
+ ],
747
+ "mappingType": "rename",
748
+ "transformationIds": []
749
+ }
750
+ ],
751
+ "protocol": {
752
+ "name": "in-process",
753
+ "destinationResolution": "literal"
754
+ },
755
+ "boundaryCrossings": [],
756
+ "provenance": "code",
757
+ "protection": {
758
+ "transit": {
759
+ "verdict": "not_assessed",
760
+ "evidenceGrade": "none"
761
+ },
762
+ "atRest": {
763
+ "verdict": "not_assessed",
764
+ "evidenceGrade": "none"
765
+ },
766
+ "handling": {
767
+ "verdict": "not_assessed",
768
+ "evidenceGrade": "none"
769
+ }
770
+ },
771
+ "evidenceRefs": [],
772
+ "coverageStatus": "modeled"
773
+ },
774
+ {
775
+ "id": "edge:503be4d731cd",
776
+ "from": "node:process:d09c75cee70b",
777
+ "to": "node:external:cb19872a775c",
778
+ "relationship": "data_flow",
779
+ "fieldMappings": [
780
+ {
781
+ "fromPath": "promptContext.summary",
782
+ "toPath": "model.messages[].content",
783
+ "dataElementIds": [
784
+ "data:c929a6c5128b"
785
+ ],
786
+ "mappingType": "projection",
787
+ "transformationIds": []
788
+ }
789
+ ],
790
+ "protocol": {
791
+ "name": "in-process",
792
+ "destinationResolution": "literal"
793
+ },
794
+ "boundaryCrossings": [
795
+ "trust-zone:external"
796
+ ],
797
+ "provenance": "code",
798
+ "protection": {
799
+ "transit": {
800
+ "verdict": "not_assessed",
801
+ "evidenceGrade": "none"
802
+ },
803
+ "atRest": {
804
+ "verdict": "not_assessed",
805
+ "evidenceGrade": "none"
806
+ },
807
+ "handling": {
808
+ "verdict": "not_assessed",
809
+ "evidenceGrade": "none"
810
+ }
811
+ },
812
+ "evidenceRefs": [],
813
+ "coverageStatus": "modeled"
814
+ },
815
+ {
816
+ "id": "edge:7a1ec420d86a",
817
+ "from": "node:process:d09c75cee70b",
818
+ "to": "node:store:99b330ddb7fc",
819
+ "relationship": "data_flow",
820
+ "fieldMappings": [
821
+ {
822
+ "fromPath": "promptContext.summary",
823
+ "toPath": "vector.document",
824
+ "dataElementIds": [
825
+ "data:c929a6c5128b"
826
+ ],
827
+ "mappingType": "transformation",
828
+ "transformationIds": []
829
+ }
830
+ ],
831
+ "protocol": {
832
+ "name": "in-process",
833
+ "destinationResolution": "literal"
834
+ },
835
+ "boundaryCrossings": [],
836
+ "provenance": "code",
837
+ "protection": {
838
+ "transit": {
839
+ "verdict": "not_assessed",
840
+ "evidenceGrade": "none"
841
+ },
842
+ "atRest": {
843
+ "verdict": "not_assessed",
844
+ "evidenceGrade": "none"
845
+ },
846
+ "handling": {
847
+ "verdict": "not_assessed",
848
+ "evidenceGrade": "none"
849
+ }
850
+ },
851
+ "evidenceRefs": [],
852
+ "coverageStatus": "modeled"
853
+ },
854
+ {
855
+ "id": "edge:106113ca2b45",
856
+ "from": "node:source:4aa6d910c10e",
857
+ "to": "node:process:c0402f8ccc97",
858
+ "relationship": "data_flow",
859
+ "fieldMappings": [
860
+ {
861
+ "fromPath": "req.body.email",
862
+ "toPath": "event.email",
863
+ "dataElementIds": [
864
+ "data:2eda79a2e73e"
865
+ ],
866
+ "mappingType": "rename",
867
+ "transformationIds": []
868
+ }
869
+ ],
870
+ "protocol": {
871
+ "name": "in-process",
872
+ "destinationResolution": "literal"
873
+ },
874
+ "boundaryCrossings": [],
875
+ "provenance": "code",
876
+ "protection": {
877
+ "transit": {
878
+ "verdict": "not_assessed",
879
+ "evidenceGrade": "none"
880
+ },
881
+ "atRest": {
882
+ "verdict": "not_assessed",
883
+ "evidenceGrade": "none"
884
+ },
885
+ "handling": {
886
+ "verdict": "not_assessed",
887
+ "evidenceGrade": "none"
888
+ }
889
+ },
890
+ "evidenceRefs": [],
891
+ "coverageStatus": "modeled"
892
+ },
893
+ {
894
+ "id": "edge:88fae9a9b67f",
895
+ "from": "node:process:c0402f8ccc97",
896
+ "to": "node:external:4ecf6cdd76c4",
897
+ "relationship": "data_flow",
898
+ "fieldMappings": [
899
+ {
900
+ "fromPath": "event.email",
901
+ "toPath": "traits.email",
902
+ "dataElementIds": [
903
+ "data:2eda79a2e73e"
904
+ ],
905
+ "mappingType": "projection",
906
+ "transformationIds": []
907
+ }
908
+ ],
909
+ "protocol": {
910
+ "name": "in-process",
911
+ "destinationResolution": "literal"
912
+ },
913
+ "boundaryCrossings": [
914
+ "trust-zone:external"
915
+ ],
916
+ "provenance": "code",
917
+ "protection": {
918
+ "transit": {
919
+ "verdict": "not_assessed",
920
+ "evidenceGrade": "none"
921
+ },
922
+ "atRest": {
923
+ "verdict": "not_assessed",
924
+ "evidenceGrade": "none"
925
+ },
926
+ "handling": {
927
+ "verdict": "not_assessed",
928
+ "evidenceGrade": "none"
929
+ }
930
+ },
931
+ "evidenceRefs": [],
932
+ "coverageStatus": "modeled"
933
+ },
934
+ {
935
+ "id": "edge:7e89a832924a",
936
+ "from": "node:external:4ecf6cdd76c4",
937
+ "to": "node:process:0ee928561e67",
938
+ "relationship": "data_flow",
939
+ "fieldMappings": [],
940
+ "protocol": {
941
+ "name": "in-process",
942
+ "destinationResolution": "literal"
943
+ },
944
+ "boundaryCrossings": [],
945
+ "provenance": "code",
946
+ "protection": {
947
+ "transit": {
948
+ "verdict": "not_assessed",
949
+ "evidenceGrade": "none"
950
+ },
951
+ "atRest": {
952
+ "verdict": "not_assessed",
953
+ "evidenceGrade": "none"
954
+ },
955
+ "handling": {
956
+ "verdict": "not_assessed",
957
+ "evidenceGrade": "none"
958
+ }
959
+ },
960
+ "evidenceRefs": [],
961
+ "coverageStatus": "modeled"
962
+ },
963
+ {
964
+ "id": "edge:45861b8f1424",
965
+ "from": "node:process:0ee928561e67",
966
+ "to": "node:process:04497a9f442c",
967
+ "relationship": "data_flow",
968
+ "fieldMappings": [],
969
+ "protocol": {
970
+ "name": "in-process",
971
+ "destinationResolution": "literal"
972
+ },
973
+ "boundaryCrossings": [],
974
+ "provenance": "code",
975
+ "protection": {
976
+ "transit": {
977
+ "verdict": "not_assessed",
978
+ "evidenceGrade": "none"
979
+ },
980
+ "atRest": {
981
+ "verdict": "not_assessed",
982
+ "evidenceGrade": "none"
983
+ },
984
+ "handling": {
985
+ "verdict": "not_assessed",
986
+ "evidenceGrade": "none"
987
+ }
988
+ },
989
+ "evidenceRefs": [],
990
+ "coverageStatus": "modeled"
991
+ },
992
+ {
993
+ "id": "edge:116d8e384d78",
994
+ "from": "node:source:4aa6d910c10e",
995
+ "to": "node:unresolved:b67f539cc277",
996
+ "relationship": "data_flow",
997
+ "fieldMappings": [
998
+ {
999
+ "fromPath": "req.body.email",
1000
+ "toPath": "unknown",
1001
+ "dataElementIds": [
1002
+ "data:2eda79a2e73e"
1003
+ ],
1004
+ "mappingType": "unknown",
1005
+ "transformationIds": []
1006
+ }
1007
+ ],
1008
+ "protocol": {
1009
+ "name": "in-process",
1010
+ "destinationResolution": "dynamic"
1011
+ },
1012
+ "boundaryCrossings": [
1013
+ "trust-zone:unknown"
1014
+ ],
1015
+ "provenance": "code",
1016
+ "protection": {
1017
+ "transit": {
1018
+ "verdict": "not_assessed",
1019
+ "evidenceGrade": "none"
1020
+ },
1021
+ "atRest": {
1022
+ "verdict": "not_assessed",
1023
+ "evidenceGrade": "none"
1024
+ },
1025
+ "handling": {
1026
+ "verdict": "not_assessed",
1027
+ "evidenceGrade": "none"
1028
+ }
1029
+ },
1030
+ "evidenceRefs": [],
1031
+ "coverageStatus": "modeled"
1032
+ }
1033
+ ],
1034
+ "dataElements": [
1035
+ {
1036
+ "id": "data:f68cbbd8e123",
1037
+ "name": "card_number",
1038
+ "aliases": [],
1039
+ "declaredType": null,
1040
+ "dataClasses": [
1041
+ "PCI"
1042
+ ],
1043
+ "aiContexts": [],
1044
+ "sourceLocations": [],
1045
+ "dataSubjectCategory": null,
1046
+ "classificationEvidence": [],
1047
+ "manualOverride": false,
1048
+ "firstSeenProvenance": {
1049
+ "commit": "fixture0000000000000000000000000000000",
1050
+ "note": "fixture evidence only, not default production content"
1051
+ }
1052
+ },
1053
+ {
1054
+ "id": "data:c929a6c5128b",
1055
+ "name": "diagnosis",
1056
+ "aliases": [],
1057
+ "declaredType": null,
1058
+ "dataClasses": [
1059
+ "PHI"
1060
+ ],
1061
+ "aiContexts": [],
1062
+ "sourceLocations": [],
1063
+ "dataSubjectCategory": null,
1064
+ "classificationEvidence": [],
1065
+ "manualOverride": false,
1066
+ "firstSeenProvenance": {
1067
+ "commit": "fixture0000000000000000000000000000000",
1068
+ "note": "fixture evidence only, not default production content"
1069
+ }
1070
+ },
1071
+ {
1072
+ "id": "data:2eda79a2e73e",
1073
+ "name": "email",
1074
+ "aliases": [],
1075
+ "declaredType": null,
1076
+ "dataClasses": [
1077
+ "PII"
1078
+ ],
1079
+ "aiContexts": [],
1080
+ "sourceLocations": [],
1081
+ "dataSubjectCategory": null,
1082
+ "classificationEvidence": [],
1083
+ "manualOverride": false,
1084
+ "firstSeenProvenance": {
1085
+ "commit": "fixture0000000000000000000000000000000",
1086
+ "note": "fixture evidence only, not default production content"
1087
+ }
1088
+ }
1089
+ ],
1090
+ "transformations": [
1091
+ {
1092
+ "id": "transform:d82a7390c177",
1093
+ "inputPath": "payment.pan",
1094
+ "outputPath": "maskedPan",
1095
+ "callee": "maskCard",
1096
+ "location": {
1097
+ "file": "services/payment.js",
1098
+ "line": 55
1099
+ },
1100
+ "kind": "mask",
1101
+ "reversibility": "irreversible",
1102
+ "algorithm": null,
1103
+ "appliesToAllPaths": true,
1104
+ "controlCredit": true,
1105
+ "controlCreditReason": "maskCard() proven on this branch (all feasible paths)"
1106
+ }
1107
+ ],
1108
+ "flows": [
1109
+ {
1110
+ "id": "flow:f7273b6e7b61",
1111
+ "dataElementIds": [
1112
+ "data:f68cbbd8e123"
1113
+ ],
1114
+ "source": "node:source:4aa6d910c10e",
1115
+ "sink": "node:log:608492464d54",
1116
+ "edgeIds": [
1117
+ "edge:54d5b1db3415",
1118
+ "edge:d613505336aa"
1119
+ ],
1120
+ "transformationIds": [
1121
+ "transform:d82a7390c177"
1122
+ ],
1123
+ "alternatePathCount": 0,
1124
+ "policyVerdict": "not_evaluated",
1125
+ "protectionSummary": "protected",
1126
+ "evidenceRefs": [
1127
+ "evidence:ea9ebd25bed2"
1128
+ ],
1129
+ "confidence": {
1130
+ "score": 1,
1131
+ "tier": "high"
1132
+ },
1133
+ "coverageStatus": "modeled",
1134
+ "findingRefs": [],
1135
+ "governanceRefs": {},
1136
+ "limitations": []
1137
+ },
1138
+ {
1139
+ "id": "flow:154396169be8",
1140
+ "dataElementIds": [
1141
+ "data:f68cbbd8e123"
1142
+ ],
1143
+ "source": "node:source:4aa6d910c10e",
1144
+ "sink": "node:log:608492464d54",
1145
+ "edgeIds": [
1146
+ "edge:54d5b1db3415",
1147
+ "edge:a6fb8d3fdecc"
1148
+ ],
1149
+ "transformationIds": [],
1150
+ "alternatePathCount": 0,
1151
+ "policyVerdict": "not_evaluated",
1152
+ "protectionSummary": "unprotected",
1153
+ "evidenceRefs": [
1154
+ "evidence:81618d7d7576"
1155
+ ],
1156
+ "confidence": {
1157
+ "score": 1,
1158
+ "tier": "high"
1159
+ },
1160
+ "coverageStatus": "modeled",
1161
+ "findingRefs": [],
1162
+ "governanceRefs": {},
1163
+ "limitations": [
1164
+ "RAW PCI: card_number logged without masking on this branch"
1165
+ ]
1166
+ },
1167
+ {
1168
+ "id": "flow:7dc7f3f11c47",
1169
+ "dataElementIds": [
1170
+ "data:f68cbbd8e123"
1171
+ ],
1172
+ "source": "node:source:4aa6d910c10e",
1173
+ "sink": "node:store:a58eb8ae3e2c",
1174
+ "edgeIds": [
1175
+ "edge:54d5b1db3415",
1176
+ "edge:fde2387ae333"
1177
+ ],
1178
+ "transformationIds": [],
1179
+ "alternatePathCount": 0,
1180
+ "policyVerdict": "not_evaluated",
1181
+ "protectionSummary": "unknown",
1182
+ "evidenceRefs": [
1183
+ "evidence:1c1d5891a518"
1184
+ ],
1185
+ "confidence": {
1186
+ "score": 1,
1187
+ "tier": "high"
1188
+ },
1189
+ "coverageStatus": "modeled",
1190
+ "findingRefs": [],
1191
+ "governanceRefs": {},
1192
+ "limitations": [
1193
+ "No correlated at-rest encryption configuration found for this store"
1194
+ ]
1195
+ },
1196
+ {
1197
+ "id": "flow:a411014f471c",
1198
+ "dataElementIds": [
1199
+ "data:f68cbbd8e123"
1200
+ ],
1201
+ "source": "node:source:4aa6d910c10e",
1202
+ "sink": "node:external:eedca8089e42",
1203
+ "edgeIds": [
1204
+ "edge:54d5b1db3415",
1205
+ "edge:b397f3640150"
1206
+ ],
1207
+ "transformationIds": [],
1208
+ "alternatePathCount": 0,
1209
+ "policyVerdict": "not_evaluated",
1210
+ "protectionSummary": "unprotected",
1211
+ "evidenceRefs": [
1212
+ "evidence:7f6318f5b8bd"
1213
+ ],
1214
+ "confidence": {
1215
+ "score": 1,
1216
+ "tier": "high"
1217
+ },
1218
+ "coverageStatus": "modeled",
1219
+ "findingRefs": [],
1220
+ "governanceRefs": {},
1221
+ "limitations": [
1222
+ "Cleartext HTTP scheme: no TLS termination evidence found"
1223
+ ]
1224
+ },
1225
+ {
1226
+ "id": "flow:273d8cf683b9",
1227
+ "dataElementIds": [
1228
+ "data:f68cbbd8e123"
1229
+ ],
1230
+ "source": "node:source:4aa6d910c10e",
1231
+ "sink": "node:external:cb19872a775c",
1232
+ "edgeIds": [
1233
+ "edge:54d5b1db3415",
1234
+ "edge:12086bfdcb38",
1235
+ "edge:8736e42f5744"
1236
+ ],
1237
+ "transformationIds": [],
1238
+ "alternatePathCount": 0,
1239
+ "policyVerdict": "manual_review_required",
1240
+ "protectionSummary": "unknown",
1241
+ "evidenceRefs": [],
1242
+ "confidence": {
1243
+ "score": 1,
1244
+ "tier": "high"
1245
+ },
1246
+ "coverageStatus": "modeled",
1247
+ "findingRefs": [],
1248
+ "governanceRefs": {
1249
+ "recipient": "manual_required",
1250
+ "purpose": "manual_required",
1251
+ "lawfulBasis": "manual_required"
1252
+ },
1253
+ "limitations": [
1254
+ "AI recipient/purpose/retention evidence not established from code alone"
1255
+ ]
1256
+ },
1257
+ {
1258
+ "id": "flow:5eaf2ae939ad",
1259
+ "dataElementIds": [
1260
+ "data:c929a6c5128b"
1261
+ ],
1262
+ "source": "node:source:4aa6d910c10e",
1263
+ "sink": "node:external:cb19872a775c",
1264
+ "edgeIds": [
1265
+ "edge:43c85eec3733",
1266
+ "edge:503be4d731cd",
1267
+ "edge:7a1ec420d86a"
1268
+ ],
1269
+ "transformationIds": [],
1270
+ "alternatePathCount": 0,
1271
+ "policyVerdict": "manual_review_required",
1272
+ "protectionSummary": "unknown",
1273
+ "evidenceRefs": [],
1274
+ "confidence": {
1275
+ "score": 1,
1276
+ "tier": "high"
1277
+ },
1278
+ "coverageStatus": "modeled",
1279
+ "findingRefs": [],
1280
+ "governanceRefs": {
1281
+ "lawfulBasis": "manual_required",
1282
+ "retention": "unknown",
1283
+ "transfer": "review"
1284
+ },
1285
+ "limitations": [
1286
+ "Lawful basis, retention, and transfer mechanism not established from code alone"
1287
+ ]
1288
+ },
1289
+ {
1290
+ "id": "flow:17540e61c302",
1291
+ "dataElementIds": [
1292
+ "data:2eda79a2e73e"
1293
+ ],
1294
+ "source": "node:source:4aa6d910c10e",
1295
+ "sink": "node:external:4ecf6cdd76c4",
1296
+ "edgeIds": [
1297
+ "edge:106113ca2b45",
1298
+ "edge:88fae9a9b67f"
1299
+ ],
1300
+ "transformationIds": [],
1301
+ "alternatePathCount": 0,
1302
+ "policyVerdict": "not_evaluated",
1303
+ "protectionSummary": "unknown",
1304
+ "evidenceRefs": [],
1305
+ "confidence": {
1306
+ "score": 1,
1307
+ "tier": "high"
1308
+ },
1309
+ "coverageStatus": "modeled",
1310
+ "findingRefs": [],
1311
+ "governanceRefs": {
1312
+ "retention": "unknown",
1313
+ "deletion": "not_found"
1314
+ },
1315
+ "limitations": [
1316
+ "No correlated retention/deletion policy evidence found for this recipient"
1317
+ ]
1318
+ },
1319
+ {
1320
+ "id": "flow:0e5d4036b740",
1321
+ "dataElementIds": [
1322
+ "data:2eda79a2e73e"
1323
+ ],
1324
+ "source": "node:source:4aa6d910c10e",
1325
+ "sink": "node:unresolved:b67f539cc277",
1326
+ "edgeIds": [
1327
+ "edge:116d8e384d78"
1328
+ ],
1329
+ "transformationIds": [],
1330
+ "alternatePathCount": 0,
1331
+ "policyVerdict": "not_evaluated",
1332
+ "protectionSummary": "unknown",
1333
+ "evidenceRefs": [],
1334
+ "confidence": {
1335
+ "score": 1,
1336
+ "tier": "high"
1337
+ },
1338
+ "coverageStatus": "modeled",
1339
+ "findingRefs": [],
1340
+ "governanceRefs": {},
1341
+ "limitations": [
1342
+ "Destination computed from an unresolved runtime value (dynamic URL expression)"
1343
+ ]
1344
+ }
1345
+ ],
1346
+ "controls": [],
1347
+ "policies": [],
1348
+ "evidence": [
1349
+ {
1350
+ "id": "evidence:ea9ebd25bed2",
1351
+ "claim": "card_number reaches Application Logs via maskCard() on the masked branch",
1352
+ "evidenceType": "code",
1353
+ "location": {
1354
+ "note": "services/payment.js:55"
1355
+ },
1356
+ "producer": "lineage-fixture-builder",
1357
+ "confidenceTier": "high",
1358
+ "snippet": null,
1359
+ "timestamp": "2026-08-29T00:00:00.000Z",
1360
+ "commit": "fixture0000000000000000000000000000000",
1361
+ "limitations": [],
1362
+ "conflict": false
1363
+ },
1364
+ {
1365
+ "id": "evidence:81618d7d7576",
1366
+ "claim": "card_number reaches Application Logs raw on a separate branch",
1367
+ "evidenceType": "code",
1368
+ "location": {
1369
+ "note": "services/payment.js:60"
1370
+ },
1371
+ "producer": "lineage-fixture-builder",
1372
+ "confidenceTier": "high",
1373
+ "snippet": null,
1374
+ "timestamp": "2026-08-29T00:00:00.000Z",
1375
+ "commit": "fixture0000000000000000000000000000000",
1376
+ "limitations": [],
1377
+ "conflict": false
1378
+ },
1379
+ {
1380
+ "id": "evidence:1c1d5891a518",
1381
+ "claim": "card_number reaches payments.pan with no correlated at-rest configuration",
1382
+ "evidenceType": "code",
1383
+ "location": {
1384
+ "note": "services/payment.js:70"
1385
+ },
1386
+ "producer": "lineage-fixture-builder",
1387
+ "confidenceTier": "high",
1388
+ "snippet": null,
1389
+ "timestamp": "2026-08-29T00:00:00.000Z",
1390
+ "commit": "fixture0000000000000000000000000000000",
1391
+ "limitations": [],
1392
+ "conflict": false
1393
+ },
1394
+ {
1395
+ "id": "evidence:7f6318f5b8bd",
1396
+ "claim": "card_number reaches http://payments.example/charge over cleartext HTTP",
1397
+ "evidenceType": "code",
1398
+ "location": {
1399
+ "note": "clients/gateway.js:72"
1400
+ },
1401
+ "producer": "lineage-fixture-builder",
1402
+ "confidenceTier": "high",
1403
+ "snippet": null,
1404
+ "timestamp": "2026-08-29T00:00:00.000Z",
1405
+ "commit": "fixture0000000000000000000000000000000",
1406
+ "limitations": [],
1407
+ "conflict": false
1408
+ }
1409
+ ],
1410
+ "coverage": {
1411
+ "languages": [
1412
+ {
1413
+ "language": "js",
1414
+ "filesExpected": 6,
1415
+ "filesAnalyzed": 6
1416
+ }
1417
+ ],
1418
+ "parseFailures": [],
1419
+ "destinationResolutionStatus": "complete-for-fixture",
1420
+ "pathBudgetTruncation": false
1421
+ },
1422
+ "limitations": [
1423
+ "This is a synthetic fixture graph, not a real repository scan. See scope.source."
1424
+ ],
1425
+ "extensions": {
1426
+ "fixtureNodeKeys": {
1427
+ "node.web": "node:source:4aa6d910c10e",
1428
+ "node.gateway": "node:api:02d844c7d1cd",
1429
+ "node.payments": "node:process:b3cd659d55dd",
1430
+ "node.ai": "node:process:d09c75cee70b",
1431
+ "node.postgres": "node:store:a58eb8ae3e2c",
1432
+ "node.logs": "node:log:608492464d54",
1433
+ "node.payment_api": "node:external:eedca8089e42",
1434
+ "node.analytics": "node:external:4ecf6cdd76c4",
1435
+ "node.model": "node:external:cb19872a775c",
1436
+ "node.vector": "node:store:99b330ddb7fc",
1437
+ "node.unresolved": "node:unresolved:b67f539cc277",
1438
+ "node.retention": "node:process:0ee928561e67",
1439
+ "node.deletion": "node:process:04497a9f442c",
1440
+ "node.events": "node:process:c0402f8ccc97"
1441
+ },
1442
+ "fixtureFlowKeys": {
1443
+ "flow.pci.masked_log": "flow:f7273b6e7b61",
1444
+ "flow.pci.raw_log": "flow:154396169be8",
1445
+ "flow.pci.database": "flow:7dc7f3f11c47",
1446
+ "flow.pci.payment_api": "flow:a411014f471c",
1447
+ "flow.pci.ai": "flow:273d8cf683b9",
1448
+ "flow.phi.ai": "flow:5eaf2ae939ad",
1449
+ "flow.pii.analytics": "flow:17540e61c302",
1450
+ "flow.pii.unresolved": "flow:0e5d4036b740"
1451
+ }
1452
+ }
1453
+ }