@clear-capabilities/agentic-security-scanner 0.145.0 → 0.147.5

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