@x12i/memorix-retrieval 1.1.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 (232) hide show
  1. package/README.md +124 -0
  2. package/catalox-seeds/inputs/entity-descriptors/assets.json +296 -0
  3. package/catalox-seeds/inputs/entity-descriptors/variabilities-groups.json +312 -0
  4. package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +419 -0
  5. package/catalox-seeds/inputs/item-descriptors/asset-detail-item.json +85 -0
  6. package/catalox-seeds/inputs/item-descriptors/variabilities-group-detail-item.json +87 -0
  7. package/catalox-seeds/inputs/item-descriptors/vulnerability-detail-item.json +106 -0
  8. package/catalox-seeds/inputs/list-descriptors/assets-main-list.json +46 -0
  9. package/catalox-seeds/inputs/list-descriptors/critical-vulnerabilities-list.json +44 -0
  10. package/catalox-seeds/inputs/list-descriptors/variabilities-groups-main-list.json +43 -0
  11. package/catalox-seeds/inputs/list-descriptors/vulnerabilities-main-list.json +47 -0
  12. package/catalox-seeds/inputs/manifest.json +44 -0
  13. package/catalox-seeds/inputs/memorix-catalog-ids.json +8 -0
  14. package/catalox-seeds/inputs/memorix-descriptors.bundle.json +1502 -0
  15. package/catalox-seeds/inputs/memorix-entity-descriptors.catalog.json +1029 -0
  16. package/catalox-seeds/inputs/memorix-entity-descriptors.items.json +1026 -0
  17. package/catalox-seeds/inputs/memorix-item-descriptors.catalog.json +283 -0
  18. package/catalox-seeds/inputs/memorix-item-descriptors.items.json +280 -0
  19. package/catalox-seeds/inputs/memorix-list-descriptors.catalog.json +185 -0
  20. package/catalox-seeds/inputs/memorix-list-descriptors.items.json +182 -0
  21. package/catalox-seeds/inputs/scope.json +4 -0
  22. package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +1844 -0
  23. package/dist/client/catalox-like.d.ts +16 -0
  24. package/dist/client/catalox-like.d.ts.map +1 -0
  25. package/dist/client/catalox-like.js +2 -0
  26. package/dist/client/catalox-like.js.map +1 -0
  27. package/dist/client/create-client.d.ts +3 -0
  28. package/dist/client/create-client.d.ts.map +1 -0
  29. package/dist/client/create-client.js +50 -0
  30. package/dist/client/create-client.js.map +1 -0
  31. package/dist/client/create-from-env.d.ts +3 -0
  32. package/dist/client/create-from-env.d.ts.map +1 -0
  33. package/dist/client/create-from-env.js +10 -0
  34. package/dist/client/create-from-env.js.map +1 -0
  35. package/dist/client/types.d.ts +109 -0
  36. package/dist/client/types.d.ts.map +1 -0
  37. package/dist/client/types.js +2 -0
  38. package/dist/client/types.js.map +1 -0
  39. package/dist/client/xronox-like.d.ts +18 -0
  40. package/dist/client/xronox-like.d.ts.map +1 -0
  41. package/dist/client/xronox-like.js +2 -0
  42. package/dist/client/xronox-like.js.map +1 -0
  43. package/dist/content/fetch-content-object.d.ts +16 -0
  44. package/dist/content/fetch-content-object.d.ts.map +1 -0
  45. package/dist/content/fetch-content-object.js +54 -0
  46. package/dist/content/fetch-content-object.js.map +1 -0
  47. package/dist/content/map-content-errors.d.ts +5 -0
  48. package/dist/content/map-content-errors.d.ts.map +1 -0
  49. package/dist/content/map-content-errors.js +39 -0
  50. package/dist/content/map-content-errors.js.map +1 -0
  51. package/dist/content/memorix-content-object.d.ts +21 -0
  52. package/dist/content/memorix-content-object.d.ts.map +1 -0
  53. package/dist/content/memorix-content-object.js +54 -0
  54. package/dist/content/memorix-content-object.js.map +1 -0
  55. package/dist/content/resolve-content-config.d.ts +19 -0
  56. package/dist/content/resolve-content-config.d.ts.map +1 -0
  57. package/dist/content/resolve-content-config.js +37 -0
  58. package/dist/content/resolve-content-config.js.map +1 -0
  59. package/dist/data/collection-name.d.ts +4 -0
  60. package/dist/data/collection-name.d.ts.map +1 -0
  61. package/dist/data/collection-name.js +23 -0
  62. package/dist/data/collection-name.js.map +1 -0
  63. package/dist/data/identity.d.ts +36 -0
  64. package/dist/data/identity.d.ts.map +1 -0
  65. package/dist/data/identity.js +68 -0
  66. package/dist/data/identity.js.map +1 -0
  67. package/dist/data/memorix-read.d.ts +17 -0
  68. package/dist/data/memorix-read.d.ts.map +1 -0
  69. package/dist/data/memorix-read.js +55 -0
  70. package/dist/data/memorix-read.js.map +1 -0
  71. package/dist/data/multi-match.d.ts +16 -0
  72. package/dist/data/multi-match.d.ts.map +1 -0
  73. package/dist/data/multi-match.js +65 -0
  74. package/dist/data/multi-match.js.map +1 -0
  75. package/dist/data/path.d.ts +3 -0
  76. package/dist/data/path.d.ts.map +1 -0
  77. package/dist/data/path.js +23 -0
  78. package/dist/data/path.js.map +1 -0
  79. package/dist/data/xronox-read.d.ts +13 -0
  80. package/dist/data/xronox-read.d.ts.map +1 -0
  81. package/dist/data/xronox-read.js +34 -0
  82. package/dist/data/xronox-read.js.map +1 -0
  83. package/dist/descriptors/catalog-ids.d.ts +5 -0
  84. package/dist/descriptors/catalog-ids.d.ts.map +1 -0
  85. package/dist/descriptors/catalog-ids.js +5 -0
  86. package/dist/descriptors/catalog-ids.js.map +1 -0
  87. package/dist/descriptors/descriptor-types.d.ts +187 -0
  88. package/dist/descriptors/descriptor-types.d.ts.map +1 -0
  89. package/dist/descriptors/descriptor-types.js +2 -0
  90. package/dist/descriptors/descriptor-types.js.map +1 -0
  91. package/dist/descriptors/load-entity-descriptor.d.ts +4 -0
  92. package/dist/descriptors/load-entity-descriptor.d.ts.map +1 -0
  93. package/dist/descriptors/load-entity-descriptor.js +15 -0
  94. package/dist/descriptors/load-entity-descriptor.js.map +1 -0
  95. package/dist/descriptors/load-item-descriptor.d.ts +4 -0
  96. package/dist/descriptors/load-item-descriptor.d.ts.map +1 -0
  97. package/dist/descriptors/load-item-descriptor.js +15 -0
  98. package/dist/descriptors/load-item-descriptor.js.map +1 -0
  99. package/dist/descriptors/load-list-descriptor.d.ts +4 -0
  100. package/dist/descriptors/load-list-descriptor.d.ts.map +1 -0
  101. package/dist/descriptors/load-list-descriptor.js +15 -0
  102. package/dist/descriptors/load-list-descriptor.js.map +1 -0
  103. package/dist/descriptors/validate-descriptor.d.ts +7 -0
  104. package/dist/descriptors/validate-descriptor.d.ts.map +1 -0
  105. package/dist/descriptors/validate-descriptor.js +80 -0
  106. package/dist/descriptors/validate-descriptor.js.map +1 -0
  107. package/dist/errors/errors.d.ts +6 -0
  108. package/dist/errors/errors.d.ts.map +1 -0
  109. package/dist/errors/errors.js +12 -0
  110. package/dist/errors/errors.js.map +1 -0
  111. package/dist/errors/issues.d.ts +14 -0
  112. package/dist/errors/issues.d.ts.map +1 -0
  113. package/dist/errors/issues.js +7 -0
  114. package/dist/errors/issues.js.map +1 -0
  115. package/dist/index.d.ts +22 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +18 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/mongo/connection.d.ts +3 -0
  120. package/dist/mongo/connection.d.ts.map +1 -0
  121. package/dist/mongo/connection.js +8 -0
  122. package/dist/mongo/connection.js.map +1 -0
  123. package/dist/mongo/env.d.ts +6 -0
  124. package/dist/mongo/env.d.ts.map +1 -0
  125. package/dist/mongo/env.js +33 -0
  126. package/dist/mongo/env.js.map +1 -0
  127. package/dist/mongo/read-collection.d.ts +14 -0
  128. package/dist/mongo/read-collection.d.ts.map +1 -0
  129. package/dist/mongo/read-collection.js +45 -0
  130. package/dist/mongo/read-collection.js.map +1 -0
  131. package/dist/mongo/resolve-db.d.ts +6 -0
  132. package/dist/mongo/resolve-db.d.ts.map +1 -0
  133. package/dist/mongo/resolve-db.js +9 -0
  134. package/dist/mongo/resolve-db.js.map +1 -0
  135. package/dist/mongo/types.d.ts +2 -0
  136. package/dist/mongo/types.d.ts.map +1 -0
  137. package/dist/mongo/types.js +2 -0
  138. package/dist/mongo/types.js.map +1 -0
  139. package/dist/relations/fetch-relation.d.ts +5 -0
  140. package/dist/relations/fetch-relation.d.ts.map +1 -0
  141. package/dist/relations/fetch-relation.js +57 -0
  142. package/dist/relations/fetch-relation.js.map +1 -0
  143. package/dist/relations/resolve-relations.d.ts +6 -0
  144. package/dist/relations/resolve-relations.d.ts.map +1 -0
  145. package/dist/relations/resolve-relations.js +20 -0
  146. package/dist/relations/resolve-relations.js.map +1 -0
  147. package/dist/retrieval/batch-fetch.d.ts +11 -0
  148. package/dist/retrieval/batch-fetch.d.ts.map +1 -0
  149. package/dist/retrieval/batch-fetch.js +80 -0
  150. package/dist/retrieval/batch-fetch.js.map +1 -0
  151. package/dist/retrieval/compose-item.d.ts +11 -0
  152. package/dist/retrieval/compose-item.d.ts.map +1 -0
  153. package/dist/retrieval/compose-item.js +18 -0
  154. package/dist/retrieval/compose-item.js.map +1 -0
  155. package/dist/retrieval/compose-row.d.ts +4 -0
  156. package/dist/retrieval/compose-row.d.ts.map +1 -0
  157. package/dist/retrieval/compose-row.js +14 -0
  158. package/dist/retrieval/compose-row.js.map +1 -0
  159. package/dist/retrieval/fetch-item.d.ts +3 -0
  160. package/dist/retrieval/fetch-item.d.ts.map +1 -0
  161. package/dist/retrieval/fetch-item.js +107 -0
  162. package/dist/retrieval/fetch-item.js.map +1 -0
  163. package/dist/retrieval/fetch-list.d.ts +3 -0
  164. package/dist/retrieval/fetch-list.d.ts.map +1 -0
  165. package/dist/retrieval/fetch-list.js +148 -0
  166. package/dist/retrieval/fetch-list.js.map +1 -0
  167. package/dist/retrieval/resolve-fields.d.ts +10 -0
  168. package/dist/retrieval/resolve-fields.d.ts.map +1 -0
  169. package/dist/retrieval/resolve-fields.js +52 -0
  170. package/dist/retrieval/resolve-fields.js.map +1 -0
  171. package/dist/retrieval/resolve-filters.d.ts +3 -0
  172. package/dist/retrieval/resolve-filters.d.ts.map +1 -0
  173. package/dist/retrieval/resolve-filters.js +57 -0
  174. package/dist/retrieval/resolve-filters.js.map +1 -0
  175. package/dist/retrieval/resolve-pagination-driver.d.ts +6 -0
  176. package/dist/retrieval/resolve-pagination-driver.d.ts.map +1 -0
  177. package/dist/retrieval/resolve-pagination-driver.js +22 -0
  178. package/dist/retrieval/resolve-pagination-driver.js.map +1 -0
  179. package/dist/retrieval/resolve-property-source.d.ts +10 -0
  180. package/dist/retrieval/resolve-property-source.d.ts.map +1 -0
  181. package/dist/retrieval/resolve-property-source.js +48 -0
  182. package/dist/retrieval/resolve-property-source.js.map +1 -0
  183. package/dist/retrieval/resolve-sort.d.ts +14 -0
  184. package/dist/retrieval/resolve-sort.d.ts.map +1 -0
  185. package/dist/retrieval/resolve-sort.js +28 -0
  186. package/dist/retrieval/resolve-sort.js.map +1 -0
  187. package/dist/tests/collection-env.test.d.ts +2 -0
  188. package/dist/tests/collection-env.test.d.ts.map +1 -0
  189. package/dist/tests/collection-env.test.js +44 -0
  190. package/dist/tests/collection-env.test.js.map +1 -0
  191. package/dist/tests/content-object.test.d.ts +2 -0
  192. package/dist/tests/content-object.test.d.ts.map +1 -0
  193. package/dist/tests/content-object.test.js +39 -0
  194. package/dist/tests/content-object.test.js.map +1 -0
  195. package/dist/tests/descriptor-validation.test.d.ts +2 -0
  196. package/dist/tests/descriptor-validation.test.d.ts.map +1 -0
  197. package/dist/tests/descriptor-validation.test.js +25 -0
  198. package/dist/tests/descriptor-validation.test.js.map +1 -0
  199. package/dist/tests/env.test.d.ts +2 -0
  200. package/dist/tests/env.test.d.ts.map +1 -0
  201. package/dist/tests/env.test.js +17 -0
  202. package/dist/tests/env.test.js.map +1 -0
  203. package/dist/tests/fetch-item.test.d.ts +2 -0
  204. package/dist/tests/fetch-item.test.d.ts.map +1 -0
  205. package/dist/tests/fetch-item.test.js +86 -0
  206. package/dist/tests/fetch-item.test.js.map +1 -0
  207. package/dist/tests/fetch-list.test.d.ts +2 -0
  208. package/dist/tests/fetch-list.test.d.ts.map +1 -0
  209. package/dist/tests/fetch-list.test.js +85 -0
  210. package/dist/tests/fetch-list.test.js.map +1 -0
  211. package/dist/tests/fixtures.d.ts +5 -0
  212. package/dist/tests/fixtures.d.ts.map +1 -0
  213. package/dist/tests/fixtures.js +137 -0
  214. package/dist/tests/fixtures.js.map +1 -0
  215. package/dist/tests/identity.test.d.ts +2 -0
  216. package/dist/tests/identity.test.d.ts.map +1 -0
  217. package/dist/tests/identity.test.js +32 -0
  218. package/dist/tests/identity.test.js.map +1 -0
  219. package/dist/tests/multi-match.test.d.ts +2 -0
  220. package/dist/tests/multi-match.test.d.ts.map +1 -0
  221. package/dist/tests/multi-match.test.js +31 -0
  222. package/dist/tests/multi-match.test.js.map +1 -0
  223. package/dist/tests/read-collection.test.d.ts +2 -0
  224. package/dist/tests/read-collection.test.d.ts.map +1 -0
  225. package/dist/tests/read-collection.test.js +19 -0
  226. package/dist/tests/read-collection.test.js.map +1 -0
  227. package/dist/tests/relations.test.d.ts +2 -0
  228. package/dist/tests/relations.test.d.ts.map +1 -0
  229. package/dist/tests/relations.test.js +77 -0
  230. package/dist/tests/relations.test.js.map +1 -0
  231. package/docs/MEMORIX-DATABASE-CONVENTIONS.md +325 -0
  232. package/package.json +52 -0
@@ -0,0 +1,1026 @@
1
+ [
2
+ {
3
+ "id": "assets",
4
+ "entityName": "assets",
5
+ "collectionPrefix": "assets",
6
+ "identity": {
7
+ "allowedIdFields": [
8
+ "entityId",
9
+ "eventId"
10
+ ],
11
+ "requiredExactlyOne": true,
12
+ "defaultIdField": "entityId"
13
+ },
14
+ "defaults": {
15
+ "canonicalContentType": "snapshots",
16
+ "dataRoot": "data",
17
+ "effectiveDatePath": "capturedAt",
18
+ "fallbackEffectiveDatePaths": [
19
+ "snapshot.capturedAt",
20
+ "data.xdr.last_seen"
21
+ ]
22
+ },
23
+ "contentTypes": {
24
+ "snapshots": {
25
+ "postfix": "snapshots",
26
+ "collection": "assets-snapshots",
27
+ "dataRoot": "data",
28
+ "isCanonical": true,
29
+ "effectiveDatePath": "capturedAt",
30
+ "fallbackEffectiveDatePaths": [
31
+ "snapshot.capturedAt",
32
+ "data.xdr.last_seen"
33
+ ]
34
+ }
35
+ },
36
+ "properties": {
37
+ "ipAddress": {
38
+ "label": "IP Address",
39
+ "source": {
40
+ "contentType": "snapshots",
41
+ "path": "data.ip_address"
42
+ },
43
+ "humanReadable": true,
44
+ "sortable": true,
45
+ "filterable": true,
46
+ "list": true,
47
+ "item": true,
48
+ "valueType": "string"
49
+ },
50
+ "source": {
51
+ "label": "Source",
52
+ "source": {
53
+ "contentType": "snapshots",
54
+ "path": "data._source"
55
+ },
56
+ "humanReadable": true,
57
+ "sortable": true,
58
+ "filterable": true,
59
+ "list": true,
60
+ "item": true,
61
+ "valueType": "string"
62
+ },
63
+ "hostName": {
64
+ "label": "Host Name",
65
+ "source": {
66
+ "contentType": "snapshots",
67
+ "path": "data.xdr.host_name"
68
+ },
69
+ "humanReadable": true,
70
+ "sortable": true,
71
+ "filterable": true,
72
+ "list": true,
73
+ "item": true,
74
+ "valueType": "string"
75
+ },
76
+ "xdrOperationalStatus": {
77
+ "label": "XDR Operational Status",
78
+ "source": {
79
+ "contentType": "snapshots",
80
+ "path": "data.xdr.operational_status"
81
+ },
82
+ "humanReadable": true,
83
+ "sortable": true,
84
+ "filterable": true,
85
+ "list": true,
86
+ "item": true,
87
+ "valueType": "string"
88
+ },
89
+ "xdrAgentStatus": {
90
+ "label": "XDR Agent Status",
91
+ "source": {
92
+ "contentType": "snapshots",
93
+ "path": "data.xdr.agent_status"
94
+ },
95
+ "humanReadable": true,
96
+ "sortable": true,
97
+ "filterable": true,
98
+ "list": true,
99
+ "item": true,
100
+ "valueType": "string"
101
+ },
102
+ "agentType": {
103
+ "label": "Agent Type",
104
+ "source": {
105
+ "contentType": "snapshots",
106
+ "path": "data.xdr.agent_type"
107
+ },
108
+ "humanReadable": true,
109
+ "sortable": true,
110
+ "filterable": true,
111
+ "list": true,
112
+ "item": true,
113
+ "valueType": "string"
114
+ },
115
+ "lastSeen": {
116
+ "label": "Last Seen",
117
+ "source": {
118
+ "contentType": "snapshots",
119
+ "path": "data.xdr.last_seen"
120
+ },
121
+ "humanReadable": true,
122
+ "sortable": true,
123
+ "filterable": true,
124
+ "list": true,
125
+ "item": true,
126
+ "valueType": "datetime"
127
+ },
128
+ "users": {
129
+ "label": "Users",
130
+ "source": {
131
+ "contentType": "snapshots",
132
+ "path": "data.xdr.users"
133
+ },
134
+ "humanReadable": true,
135
+ "sortable": false,
136
+ "filterable": true,
137
+ "list": true,
138
+ "item": true,
139
+ "valueType": "array"
140
+ },
141
+ "hasVulnerabilities": {
142
+ "label": "Has Vulnerabilities",
143
+ "source": {
144
+ "contentType": "snapshots",
145
+ "path": "data.vulnerabilities.hasVulnerabilities"
146
+ },
147
+ "humanReadable": true,
148
+ "sortable": true,
149
+ "filterable": true,
150
+ "list": true,
151
+ "item": true,
152
+ "valueType": "boolean"
153
+ },
154
+ "criticalVulnerabilities": {
155
+ "label": "Critical Vulnerabilities",
156
+ "source": {
157
+ "contentType": "snapshots",
158
+ "path": "data.vulnerabilities.count.critical"
159
+ },
160
+ "humanReadable": true,
161
+ "sortable": true,
162
+ "filterable": true,
163
+ "list": true,
164
+ "item": true,
165
+ "valueType": "number"
166
+ },
167
+ "highVulnerabilities": {
168
+ "label": "High Vulnerabilities",
169
+ "source": {
170
+ "contentType": "snapshots",
171
+ "path": "data.vulnerabilities.count.high"
172
+ },
173
+ "humanReadable": true,
174
+ "sortable": true,
175
+ "filterable": true,
176
+ "list": true,
177
+ "item": true,
178
+ "valueType": "number"
179
+ },
180
+ "mediumVulnerabilities": {
181
+ "label": "Medium Vulnerabilities",
182
+ "source": {
183
+ "contentType": "snapshots",
184
+ "path": "data.vulnerabilities.count.medium"
185
+ },
186
+ "humanReadable": true,
187
+ "sortable": true,
188
+ "filterable": true,
189
+ "list": true,
190
+ "item": true,
191
+ "valueType": "number"
192
+ },
193
+ "lowVulnerabilities": {
194
+ "label": "Low Vulnerabilities",
195
+ "source": {
196
+ "contentType": "snapshots",
197
+ "path": "data.vulnerabilities.count.low"
198
+ },
199
+ "humanReadable": true,
200
+ "sortable": true,
201
+ "filterable": true,
202
+ "list": true,
203
+ "item": true,
204
+ "valueType": "number"
205
+ },
206
+ "potentialImpactLevel": {
207
+ "label": "Potential Impact",
208
+ "source": {
209
+ "contentType": "snapshots",
210
+ "path": "data.potentialImpact.level"
211
+ },
212
+ "humanReadable": true,
213
+ "sortable": true,
214
+ "filterable": true,
215
+ "list": true,
216
+ "item": true,
217
+ "valueType": "string"
218
+ },
219
+ "potentialImpactConfidence": {
220
+ "label": "Impact Confidence",
221
+ "source": {
222
+ "contentType": "snapshots",
223
+ "path": "data.potentialImpact.confidence"
224
+ },
225
+ "humanReadable": true,
226
+ "sortable": true,
227
+ "filterable": true,
228
+ "list": true,
229
+ "item": true,
230
+ "valueType": "number"
231
+ },
232
+ "potentialImpactStory": {
233
+ "label": "Potential Impact Story",
234
+ "source": {
235
+ "contentType": "snapshots",
236
+ "path": "data.potentialImpact.story"
237
+ },
238
+ "humanReadable": false,
239
+ "sortable": false,
240
+ "filterable": false,
241
+ "list": false,
242
+ "item": true,
243
+ "valueType": "array"
244
+ },
245
+ "pathsCount": {
246
+ "label": "Paths Count",
247
+ "source": {
248
+ "contentType": "snapshots",
249
+ "path": "data.pathsCount"
250
+ },
251
+ "humanReadable": true,
252
+ "sortable": true,
253
+ "filterable": true,
254
+ "list": true,
255
+ "item": true,
256
+ "valueType": "number"
257
+ },
258
+ "rawXdr": {
259
+ "label": "Raw XDR",
260
+ "source": {
261
+ "contentType": "snapshots",
262
+ "path": "data.xdr"
263
+ },
264
+ "humanReadable": false,
265
+ "sortable": false,
266
+ "filterable": false,
267
+ "list": false,
268
+ "item": true,
269
+ "valueType": "object"
270
+ }
271
+ },
272
+ "relations": {
273
+ "assetVulnerabilities": {
274
+ "targetEntity": "vulnerabilities",
275
+ "type": "oneToMany",
276
+ "source": {
277
+ "contentType": "snapshots",
278
+ "path": "data.ip_address"
279
+ },
280
+ "target": {
281
+ "contentType": "snapshots",
282
+ "path": "data.assetIp"
283
+ },
284
+ "defaultMode": "array",
285
+ "defaultArrayProperty": "vulnerabilities",
286
+ "targetFields": [
287
+ "vulnerabilityId",
288
+ "pluginName",
289
+ "severityLevel",
290
+ "riskLevel",
291
+ "priorityScore",
292
+ "cveIds"
293
+ ]
294
+ }
295
+ }
296
+ },
297
+ {
298
+ "id": "vulnerabilities",
299
+ "entityName": "vulnerabilities",
300
+ "collectionPrefix": "vulnerabilities",
301
+ "identity": {
302
+ "allowedIdFields": [
303
+ "entityId",
304
+ "eventId"
305
+ ],
306
+ "requiredExactlyOne": true,
307
+ "defaultIdField": "entityId"
308
+ },
309
+ "defaults": {
310
+ "canonicalContentType": "snapshots",
311
+ "dataRoot": "data",
312
+ "effectiveDatePath": "capturedAt",
313
+ "fallbackEffectiveDatePaths": [
314
+ "snapshot.capturedAt",
315
+ "data.enrichment.enrichedAt"
316
+ ]
317
+ },
318
+ "contentTypes": {
319
+ "snapshots": {
320
+ "postfix": "snapshots",
321
+ "collection": "vulnerabilities-snapshots",
322
+ "dataRoot": "data",
323
+ "isCanonical": true,
324
+ "effectiveDatePath": "capturedAt",
325
+ "fallbackEffectiveDatePaths": [
326
+ "snapshot.capturedAt",
327
+ "data.enrichment.enrichedAt"
328
+ ]
329
+ }
330
+ },
331
+ "properties": {
332
+ "vulnerabilityId": {
333
+ "label": "Vulnerability ID",
334
+ "source": {
335
+ "contentType": "snapshots",
336
+ "path": "data.vulnerabilityId"
337
+ },
338
+ "humanReadable": true,
339
+ "sortable": true,
340
+ "filterable": true,
341
+ "list": true,
342
+ "item": true,
343
+ "valueType": "string"
344
+ },
345
+ "assetIp": {
346
+ "label": "Asset IP",
347
+ "source": {
348
+ "contentType": "snapshots",
349
+ "path": "data.assetIp"
350
+ },
351
+ "humanReadable": true,
352
+ "sortable": true,
353
+ "filterable": true,
354
+ "list": true,
355
+ "item": true,
356
+ "valueType": "string"
357
+ },
358
+ "assetType": {
359
+ "label": "Asset Type",
360
+ "source": {
361
+ "contentType": "snapshots",
362
+ "path": "data.assetType"
363
+ },
364
+ "humanReadable": true,
365
+ "sortable": true,
366
+ "filterable": true,
367
+ "list": true,
368
+ "item": true,
369
+ "valueType": "string"
370
+ },
371
+ "assetZone": {
372
+ "label": "Asset Zone",
373
+ "source": {
374
+ "contentType": "snapshots",
375
+ "path": "data.assetZone"
376
+ },
377
+ "humanReadable": true,
378
+ "sortable": true,
379
+ "filterable": true,
380
+ "list": true,
381
+ "item": true,
382
+ "valueType": "string"
383
+ },
384
+ "assetHostname": {
385
+ "label": "Asset Hostname",
386
+ "source": {
387
+ "contentType": "snapshots",
388
+ "path": "data.assetHostname"
389
+ },
390
+ "humanReadable": true,
391
+ "sortable": true,
392
+ "filterable": true,
393
+ "list": true,
394
+ "item": true,
395
+ "valueType": "string"
396
+ },
397
+ "pluginId": {
398
+ "label": "Plugin ID",
399
+ "source": {
400
+ "contentType": "snapshots",
401
+ "path": "data.pluginId"
402
+ },
403
+ "humanReadable": true,
404
+ "sortable": true,
405
+ "filterable": true,
406
+ "list": true,
407
+ "item": true,
408
+ "valueType": "number"
409
+ },
410
+ "pluginName": {
411
+ "label": "Plugin Name",
412
+ "source": {
413
+ "contentType": "snapshots",
414
+ "path": "data.pluginName"
415
+ },
416
+ "humanReadable": true,
417
+ "sortable": true,
418
+ "filterable": true,
419
+ "list": true,
420
+ "item": true,
421
+ "valueType": "string"
422
+ },
423
+ "pluginFamily": {
424
+ "label": "Plugin Family",
425
+ "source": {
426
+ "contentType": "snapshots",
427
+ "path": "data.pluginFamily"
428
+ },
429
+ "humanReadable": true,
430
+ "sortable": true,
431
+ "filterable": true,
432
+ "list": true,
433
+ "item": true,
434
+ "valueType": "string"
435
+ },
436
+ "severity": {
437
+ "label": "Severity",
438
+ "source": {
439
+ "contentType": "snapshots",
440
+ "path": "data.severity"
441
+ },
442
+ "humanReadable": true,
443
+ "sortable": true,
444
+ "filterable": true,
445
+ "list": true,
446
+ "item": true,
447
+ "valueType": "string"
448
+ },
449
+ "severityLevel": {
450
+ "label": "Severity Level",
451
+ "source": {
452
+ "contentType": "snapshots",
453
+ "path": "data.severityLevel"
454
+ },
455
+ "humanReadable": true,
456
+ "sortable": true,
457
+ "filterable": true,
458
+ "list": true,
459
+ "item": true,
460
+ "valueType": "number"
461
+ },
462
+ "cveIds": {
463
+ "label": "CVEs",
464
+ "source": {
465
+ "contentType": "snapshots",
466
+ "path": "data.cveIds"
467
+ },
468
+ "humanReadable": true,
469
+ "sortable": false,
470
+ "filterable": true,
471
+ "list": true,
472
+ "item": true,
473
+ "valueType": "array"
474
+ },
475
+ "riskLevel": {
476
+ "label": "Risk Level",
477
+ "source": {
478
+ "contentType": "snapshots",
479
+ "path": "data.enrichment.riskLevel"
480
+ },
481
+ "humanReadable": true,
482
+ "sortable": true,
483
+ "filterable": true,
484
+ "list": true,
485
+ "item": true,
486
+ "valueType": "string"
487
+ },
488
+ "priorityScore": {
489
+ "label": "Priority Score",
490
+ "source": {
491
+ "contentType": "snapshots",
492
+ "path": "data.enrichment.priorityScore"
493
+ },
494
+ "humanReadable": true,
495
+ "sortable": true,
496
+ "filterable": true,
497
+ "list": true,
498
+ "item": true,
499
+ "valueType": "number"
500
+ },
501
+ "compositeScore": {
502
+ "label": "Composite Score",
503
+ "source": {
504
+ "contentType": "snapshots",
505
+ "path": "data.enrichment.compositeScore"
506
+ },
507
+ "humanReadable": true,
508
+ "sortable": true,
509
+ "filterable": true,
510
+ "list": true,
511
+ "item": true,
512
+ "valueType": "number"
513
+ },
514
+ "epss": {
515
+ "label": "EPSS",
516
+ "source": {
517
+ "contentType": "snapshots",
518
+ "path": "data.enrichment.epss.epss"
519
+ },
520
+ "humanReadable": true,
521
+ "sortable": true,
522
+ "filterable": true,
523
+ "list": true,
524
+ "item": true,
525
+ "valueType": "number"
526
+ },
527
+ "epssPercentile": {
528
+ "label": "EPSS Percentile",
529
+ "source": {
530
+ "contentType": "snapshots",
531
+ "path": "data.enrichment.epss.percentile"
532
+ },
533
+ "humanReadable": true,
534
+ "sortable": true,
535
+ "filterable": true,
536
+ "list": true,
537
+ "item": true,
538
+ "valueType": "number"
539
+ },
540
+ "knownExploited": {
541
+ "label": "Known Exploited",
542
+ "source": {
543
+ "contentType": "snapshots",
544
+ "path": "data.enrichment.kev.isKnownExploited"
545
+ },
546
+ "humanReadable": true,
547
+ "sortable": true,
548
+ "filterable": true,
549
+ "list": true,
550
+ "item": true,
551
+ "valueType": "boolean"
552
+ },
553
+ "cvssBaseScore": {
554
+ "label": "CVSS Base Score",
555
+ "source": {
556
+ "contentType": "snapshots",
557
+ "path": "data.enrichment.cvss.baseScore"
558
+ },
559
+ "humanReadable": true,
560
+ "sortable": true,
561
+ "filterable": true,
562
+ "list": true,
563
+ "item": true,
564
+ "valueType": "number"
565
+ },
566
+ "cvssVector": {
567
+ "label": "CVSS Vector",
568
+ "source": {
569
+ "contentType": "snapshots",
570
+ "path": "data.enrichment.cvss.cvssVector"
571
+ },
572
+ "humanReadable": true,
573
+ "sortable": false,
574
+ "filterable": true,
575
+ "list": false,
576
+ "item": true,
577
+ "valueType": "string"
578
+ },
579
+ "exploitabilityScore": {
580
+ "label": "Exploitability Score",
581
+ "source": {
582
+ "contentType": "snapshots",
583
+ "path": "data.exploitabilityScore"
584
+ },
585
+ "humanReadable": true,
586
+ "sortable": true,
587
+ "filterable": true,
588
+ "list": true,
589
+ "item": true,
590
+ "valueType": "number"
591
+ },
592
+ "exploitabilityLevel": {
593
+ "label": "Exploitability Level",
594
+ "source": {
595
+ "contentType": "snapshots",
596
+ "path": "data.exploitabilityLevel"
597
+ },
598
+ "humanReadable": true,
599
+ "sortable": true,
600
+ "filterable": true,
601
+ "list": true,
602
+ "item": true,
603
+ "valueType": "string"
604
+ },
605
+ "assetMatched": {
606
+ "label": "Asset Matched",
607
+ "source": {
608
+ "contentType": "snapshots",
609
+ "path": "data.assetMatched"
610
+ },
611
+ "humanReadable": true,
612
+ "sortable": true,
613
+ "filterable": true,
614
+ "list": false,
615
+ "item": true,
616
+ "valueType": "boolean"
617
+ },
618
+ "networkExposure": {
619
+ "label": "Network Exposure",
620
+ "source": {
621
+ "contentType": "snapshots",
622
+ "path": "data.mitreAnalysis.networkContext.exposure"
623
+ },
624
+ "humanReadable": true,
625
+ "sortable": true,
626
+ "filterable": true,
627
+ "list": true,
628
+ "item": true,
629
+ "valueType": "string"
630
+ },
631
+ "attackPathCount": {
632
+ "label": "Attack Path Count",
633
+ "source": {
634
+ "contentType": "snapshots",
635
+ "path": "data.mitreAnalysis.networkContext.paths.paths"
636
+ },
637
+ "humanReadable": true,
638
+ "sortable": false,
639
+ "filterable": false,
640
+ "list": false,
641
+ "item": true,
642
+ "valueType": "array"
643
+ },
644
+ "mitreTechniques": {
645
+ "label": "MITRE Techniques",
646
+ "source": {
647
+ "contentType": "snapshots",
648
+ "path": "data.mitreAnalysis.techniques"
649
+ },
650
+ "humanReadable": true,
651
+ "sortable": false,
652
+ "filterable": true,
653
+ "list": false,
654
+ "item": true,
655
+ "valueType": "array"
656
+ },
657
+ "mitreAnalysis": {
658
+ "label": "MITRE Analysis",
659
+ "source": {
660
+ "contentType": "snapshots",
661
+ "path": "data.mitreAnalysis"
662
+ },
663
+ "humanReadable": false,
664
+ "sortable": false,
665
+ "filterable": false,
666
+ "list": false,
667
+ "item": true,
668
+ "valueType": "object"
669
+ }
670
+ },
671
+ "relations": {
672
+ "affectedAsset": {
673
+ "targetEntity": "assets",
674
+ "type": "manyToOne",
675
+ "source": {
676
+ "contentType": "snapshots",
677
+ "path": "data.assetIp"
678
+ },
679
+ "target": {
680
+ "contentType": "snapshots",
681
+ "path": "data.ip_address"
682
+ },
683
+ "defaultMode": "extendFields",
684
+ "targetFields": [
685
+ "ipAddress",
686
+ "hostName",
687
+ "xdrOperationalStatus",
688
+ "xdrAgentStatus",
689
+ "potentialImpactLevel"
690
+ ]
691
+ },
692
+ "vulnerabilityGroup": {
693
+ "targetEntity": "variabilities-groups",
694
+ "type": "manyToOne",
695
+ "source": {
696
+ "contentType": "snapshots",
697
+ "path": "data.pluginId"
698
+ },
699
+ "target": {
700
+ "contentType": "snapshots",
701
+ "path": "data.plugin_id"
702
+ },
703
+ "defaultMode": "extendFields",
704
+ "targetFields": [
705
+ "groupId",
706
+ "pluginName",
707
+ "severityLevel",
708
+ "affectedEntitiesCount",
709
+ "riskLevel",
710
+ "priorityScore"
711
+ ]
712
+ }
713
+ }
714
+ },
715
+ {
716
+ "id": "variabilities-groups",
717
+ "entityName": "variabilities-groups",
718
+ "collectionPrefix": "variabilities-groups",
719
+ "identity": {
720
+ "allowedIdFields": [
721
+ "entityId",
722
+ "eventId"
723
+ ],
724
+ "requiredExactlyOne": true,
725
+ "defaultIdField": "entityId"
726
+ },
727
+ "defaults": {
728
+ "canonicalContentType": "snapshots",
729
+ "dataRoot": "data",
730
+ "effectiveDatePath": "capturedAt",
731
+ "fallbackEffectiveDatePaths": [
732
+ "snapshot.capturedAt",
733
+ "data.enrichedAt",
734
+ "data.enrichment.enrichedAt"
735
+ ]
736
+ },
737
+ "contentTypes": {
738
+ "snapshots": {
739
+ "postfix": "snapshots",
740
+ "collection": "variabilities-groups-snapshots",
741
+ "dataRoot": "data",
742
+ "isCanonical": true,
743
+ "effectiveDatePath": "capturedAt",
744
+ "fallbackEffectiveDatePaths": [
745
+ "snapshot.capturedAt",
746
+ "data.enrichedAt",
747
+ "data.enrichment.enrichedAt"
748
+ ]
749
+ }
750
+ },
751
+ "properties": {
752
+ "groupId": {
753
+ "label": "Group ID",
754
+ "source": {
755
+ "contentType": "snapshots",
756
+ "path": "data.id"
757
+ },
758
+ "humanReadable": true,
759
+ "sortable": true,
760
+ "filterable": true,
761
+ "list": true,
762
+ "item": true,
763
+ "valueType": "string"
764
+ },
765
+ "type": {
766
+ "label": "Type",
767
+ "source": {
768
+ "contentType": "snapshots",
769
+ "path": "data.type"
770
+ },
771
+ "humanReadable": true,
772
+ "sortable": true,
773
+ "filterable": true,
774
+ "list": true,
775
+ "item": true,
776
+ "valueType": "string"
777
+ },
778
+ "pluginId": {
779
+ "label": "Plugin ID",
780
+ "source": {
781
+ "contentType": "snapshots",
782
+ "path": "data.plugin_id"
783
+ },
784
+ "humanReadable": true,
785
+ "sortable": true,
786
+ "filterable": true,
787
+ "list": true,
788
+ "item": true,
789
+ "valueType": "number"
790
+ },
791
+ "pluginName": {
792
+ "label": "Plugin Name",
793
+ "source": {
794
+ "contentType": "snapshots",
795
+ "path": "data.plugin_name"
796
+ },
797
+ "humanReadable": true,
798
+ "sortable": true,
799
+ "filterable": true,
800
+ "list": true,
801
+ "item": true,
802
+ "valueType": "string"
803
+ },
804
+ "pluginFamily": {
805
+ "label": "Plugin Family",
806
+ "source": {
807
+ "contentType": "snapshots",
808
+ "path": "data.plugin_family"
809
+ },
810
+ "humanReadable": true,
811
+ "sortable": true,
812
+ "filterable": true,
813
+ "list": true,
814
+ "item": true,
815
+ "valueType": "string"
816
+ },
817
+ "severity": {
818
+ "label": "Severity",
819
+ "source": {
820
+ "contentType": "snapshots",
821
+ "path": "data.severity"
822
+ },
823
+ "humanReadable": true,
824
+ "sortable": true,
825
+ "filterable": true,
826
+ "list": true,
827
+ "item": true,
828
+ "valueType": "string"
829
+ },
830
+ "severityLevel": {
831
+ "label": "Severity Level",
832
+ "source": {
833
+ "contentType": "snapshots",
834
+ "path": "data.severity_level"
835
+ },
836
+ "humanReadable": true,
837
+ "sortable": true,
838
+ "filterable": true,
839
+ "list": true,
840
+ "item": true,
841
+ "valueType": "number"
842
+ },
843
+ "affectedEntities": {
844
+ "label": "Affected Entities",
845
+ "source": {
846
+ "contentType": "snapshots",
847
+ "path": "data.affected_entities"
848
+ },
849
+ "humanReadable": true,
850
+ "sortable": false,
851
+ "filterable": true,
852
+ "list": false,
853
+ "item": true,
854
+ "valueType": "array"
855
+ },
856
+ "affectedEntitiesCount": {
857
+ "label": "Affected Entities Count",
858
+ "source": {
859
+ "contentType": "snapshots",
860
+ "path": "data.affected_entities"
861
+ },
862
+ "humanReadable": true,
863
+ "sortable": false,
864
+ "filterable": false,
865
+ "list": true,
866
+ "item": true,
867
+ "valueType": "array",
868
+ "format": "count"
869
+ },
870
+ "source": {
871
+ "label": "Source",
872
+ "source": {
873
+ "contentType": "snapshots",
874
+ "path": "data.source"
875
+ },
876
+ "humanReadable": true,
877
+ "sortable": true,
878
+ "filterable": true,
879
+ "list": false,
880
+ "item": true,
881
+ "valueType": "string"
882
+ },
883
+ "cveIds": {
884
+ "label": "CVEs",
885
+ "source": {
886
+ "contentType": "snapshots",
887
+ "path": "data.cveIds"
888
+ },
889
+ "humanReadable": true,
890
+ "sortable": false,
891
+ "filterable": true,
892
+ "list": true,
893
+ "item": true,
894
+ "valueType": "array"
895
+ },
896
+ "riskLevel": {
897
+ "label": "Risk Level",
898
+ "source": {
899
+ "contentType": "snapshots",
900
+ "path": "data.enrichment.riskLevel"
901
+ },
902
+ "humanReadable": true,
903
+ "sortable": true,
904
+ "filterable": true,
905
+ "list": true,
906
+ "item": true,
907
+ "valueType": "string"
908
+ },
909
+ "priorityScore": {
910
+ "label": "Priority Score",
911
+ "source": {
912
+ "contentType": "snapshots",
913
+ "path": "data.enrichment.priorityScore"
914
+ },
915
+ "humanReadable": true,
916
+ "sortable": true,
917
+ "filterable": true,
918
+ "list": true,
919
+ "item": true,
920
+ "valueType": "number"
921
+ },
922
+ "compositeScore": {
923
+ "label": "Composite Score",
924
+ "source": {
925
+ "contentType": "snapshots",
926
+ "path": "data.enrichment.compositeScore"
927
+ },
928
+ "humanReadable": true,
929
+ "sortable": true,
930
+ "filterable": true,
931
+ "list": true,
932
+ "item": true,
933
+ "valueType": "number"
934
+ },
935
+ "epss": {
936
+ "label": "EPSS",
937
+ "source": {
938
+ "contentType": "snapshots",
939
+ "path": "data.enrichment.epss.epss"
940
+ },
941
+ "humanReadable": true,
942
+ "sortable": true,
943
+ "filterable": true,
944
+ "list": true,
945
+ "item": true,
946
+ "valueType": "number"
947
+ },
948
+ "knownExploited": {
949
+ "label": "Known Exploited",
950
+ "source": {
951
+ "contentType": "snapshots",
952
+ "path": "data.enrichment.kev.isKnownExploited"
953
+ },
954
+ "humanReadable": true,
955
+ "sortable": true,
956
+ "filterable": true,
957
+ "list": true,
958
+ "item": true,
959
+ "valueType": "boolean"
960
+ },
961
+ "cvssBaseScore": {
962
+ "label": "CVSS Base Score",
963
+ "source": {
964
+ "contentType": "snapshots",
965
+ "path": "data.enrichment.cvss.baseScore"
966
+ },
967
+ "humanReadable": true,
968
+ "sortable": true,
969
+ "filterable": true,
970
+ "list": true,
971
+ "item": true,
972
+ "valueType": "number"
973
+ },
974
+ "cvssVector": {
975
+ "label": "CVSS Vector",
976
+ "source": {
977
+ "contentType": "snapshots",
978
+ "path": "data.enrichment.cvss.cvssVector"
979
+ },
980
+ "humanReadable": true,
981
+ "sortable": false,
982
+ "filterable": true,
983
+ "list": false,
984
+ "item": true,
985
+ "valueType": "string"
986
+ },
987
+ "enrichedAt": {
988
+ "label": "Enriched At",
989
+ "source": {
990
+ "contentType": "snapshots",
991
+ "path": "data.enrichedAt"
992
+ },
993
+ "humanReadable": true,
994
+ "sortable": true,
995
+ "filterable": true,
996
+ "list": false,
997
+ "item": true,
998
+ "valueType": "datetime"
999
+ }
1000
+ },
1001
+ "relations": {
1002
+ "groupVulnerabilities": {
1003
+ "targetEntity": "vulnerabilities",
1004
+ "type": "oneToMany",
1005
+ "source": {
1006
+ "contentType": "snapshots",
1007
+ "path": "data.plugin_id"
1008
+ },
1009
+ "target": {
1010
+ "contentType": "snapshots",
1011
+ "path": "data.pluginId"
1012
+ },
1013
+ "defaultMode": "array",
1014
+ "defaultArrayProperty": "vulnerabilities",
1015
+ "targetFields": [
1016
+ "vulnerabilityId",
1017
+ "assetIp",
1018
+ "pluginName",
1019
+ "severityLevel",
1020
+ "riskLevel",
1021
+ "priorityScore"
1022
+ ]
1023
+ }
1024
+ }
1025
+ }
1026
+ ]