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