@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.
- package/README.md +124 -0
- package/catalox-seeds/inputs/entity-descriptors/assets.json +296 -0
- package/catalox-seeds/inputs/entity-descriptors/variabilities-groups.json +312 -0
- package/catalox-seeds/inputs/entity-descriptors/vulnerabilities.json +419 -0
- package/catalox-seeds/inputs/item-descriptors/asset-detail-item.json +85 -0
- package/catalox-seeds/inputs/item-descriptors/variabilities-group-detail-item.json +87 -0
- package/catalox-seeds/inputs/item-descriptors/vulnerability-detail-item.json +106 -0
- package/catalox-seeds/inputs/list-descriptors/assets-main-list.json +46 -0
- package/catalox-seeds/inputs/list-descriptors/critical-vulnerabilities-list.json +44 -0
- package/catalox-seeds/inputs/list-descriptors/variabilities-groups-main-list.json +43 -0
- package/catalox-seeds/inputs/list-descriptors/vulnerabilities-main-list.json +47 -0
- package/catalox-seeds/inputs/manifest.json +44 -0
- package/catalox-seeds/inputs/memorix-catalog-ids.json +8 -0
- package/catalox-seeds/inputs/memorix-descriptors.bundle.json +1502 -0
- package/catalox-seeds/inputs/memorix-entity-descriptors.catalog.json +1029 -0
- package/catalox-seeds/inputs/memorix-entity-descriptors.items.json +1026 -0
- package/catalox-seeds/inputs/memorix-item-descriptors.catalog.json +283 -0
- package/catalox-seeds/inputs/memorix-item-descriptors.items.json +280 -0
- package/catalox-seeds/inputs/memorix-list-descriptors.catalog.json +185 -0
- package/catalox-seeds/inputs/memorix-list-descriptors.items.json +182 -0
- package/catalox-seeds/inputs/scope.json +4 -0
- package/catalox-seeds/memorix-retrieval-descriptors.manifest.json +1844 -0
- package/dist/client/catalox-like.d.ts +16 -0
- package/dist/client/catalox-like.d.ts.map +1 -0
- package/dist/client/catalox-like.js +2 -0
- package/dist/client/catalox-like.js.map +1 -0
- package/dist/client/create-client.d.ts +3 -0
- package/dist/client/create-client.d.ts.map +1 -0
- package/dist/client/create-client.js +50 -0
- package/dist/client/create-client.js.map +1 -0
- package/dist/client/create-from-env.d.ts +3 -0
- package/dist/client/create-from-env.d.ts.map +1 -0
- package/dist/client/create-from-env.js +10 -0
- package/dist/client/create-from-env.js.map +1 -0
- package/dist/client/types.d.ts +109 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +2 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/xronox-like.d.ts +18 -0
- package/dist/client/xronox-like.d.ts.map +1 -0
- package/dist/client/xronox-like.js +2 -0
- package/dist/client/xronox-like.js.map +1 -0
- package/dist/content/fetch-content-object.d.ts +16 -0
- package/dist/content/fetch-content-object.d.ts.map +1 -0
- package/dist/content/fetch-content-object.js +54 -0
- package/dist/content/fetch-content-object.js.map +1 -0
- package/dist/content/map-content-errors.d.ts +5 -0
- package/dist/content/map-content-errors.d.ts.map +1 -0
- package/dist/content/map-content-errors.js +39 -0
- package/dist/content/map-content-errors.js.map +1 -0
- package/dist/content/memorix-content-object.d.ts +21 -0
- package/dist/content/memorix-content-object.d.ts.map +1 -0
- package/dist/content/memorix-content-object.js +54 -0
- package/dist/content/memorix-content-object.js.map +1 -0
- package/dist/content/resolve-content-config.d.ts +19 -0
- package/dist/content/resolve-content-config.d.ts.map +1 -0
- package/dist/content/resolve-content-config.js +37 -0
- package/dist/content/resolve-content-config.js.map +1 -0
- package/dist/data/collection-name.d.ts +4 -0
- package/dist/data/collection-name.d.ts.map +1 -0
- package/dist/data/collection-name.js +23 -0
- package/dist/data/collection-name.js.map +1 -0
- package/dist/data/identity.d.ts +36 -0
- package/dist/data/identity.d.ts.map +1 -0
- package/dist/data/identity.js +68 -0
- package/dist/data/identity.js.map +1 -0
- package/dist/data/memorix-read.d.ts +17 -0
- package/dist/data/memorix-read.d.ts.map +1 -0
- package/dist/data/memorix-read.js +55 -0
- package/dist/data/memorix-read.js.map +1 -0
- package/dist/data/multi-match.d.ts +16 -0
- package/dist/data/multi-match.d.ts.map +1 -0
- package/dist/data/multi-match.js +65 -0
- package/dist/data/multi-match.js.map +1 -0
- package/dist/data/path.d.ts +3 -0
- package/dist/data/path.d.ts.map +1 -0
- package/dist/data/path.js +23 -0
- package/dist/data/path.js.map +1 -0
- package/dist/data/xronox-read.d.ts +13 -0
- package/dist/data/xronox-read.d.ts.map +1 -0
- package/dist/data/xronox-read.js +34 -0
- package/dist/data/xronox-read.js.map +1 -0
- package/dist/descriptors/catalog-ids.d.ts +5 -0
- package/dist/descriptors/catalog-ids.d.ts.map +1 -0
- package/dist/descriptors/catalog-ids.js +5 -0
- package/dist/descriptors/catalog-ids.js.map +1 -0
- package/dist/descriptors/descriptor-types.d.ts +187 -0
- package/dist/descriptors/descriptor-types.d.ts.map +1 -0
- package/dist/descriptors/descriptor-types.js +2 -0
- package/dist/descriptors/descriptor-types.js.map +1 -0
- package/dist/descriptors/load-entity-descriptor.d.ts +4 -0
- package/dist/descriptors/load-entity-descriptor.d.ts.map +1 -0
- package/dist/descriptors/load-entity-descriptor.js +15 -0
- package/dist/descriptors/load-entity-descriptor.js.map +1 -0
- package/dist/descriptors/load-item-descriptor.d.ts +4 -0
- package/dist/descriptors/load-item-descriptor.d.ts.map +1 -0
- package/dist/descriptors/load-item-descriptor.js +15 -0
- package/dist/descriptors/load-item-descriptor.js.map +1 -0
- package/dist/descriptors/load-list-descriptor.d.ts +4 -0
- package/dist/descriptors/load-list-descriptor.d.ts.map +1 -0
- package/dist/descriptors/load-list-descriptor.js +15 -0
- package/dist/descriptors/load-list-descriptor.js.map +1 -0
- package/dist/descriptors/validate-descriptor.d.ts +7 -0
- package/dist/descriptors/validate-descriptor.d.ts.map +1 -0
- package/dist/descriptors/validate-descriptor.js +80 -0
- package/dist/descriptors/validate-descriptor.js.map +1 -0
- package/dist/errors/errors.d.ts +6 -0
- package/dist/errors/errors.d.ts.map +1 -0
- package/dist/errors/errors.js +12 -0
- package/dist/errors/errors.js.map +1 -0
- package/dist/errors/issues.d.ts +14 -0
- package/dist/errors/issues.d.ts.map +1 -0
- package/dist/errors/issues.js +7 -0
- package/dist/errors/issues.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/mongo/connection.d.ts +3 -0
- package/dist/mongo/connection.d.ts.map +1 -0
- package/dist/mongo/connection.js +8 -0
- package/dist/mongo/connection.js.map +1 -0
- package/dist/mongo/env.d.ts +6 -0
- package/dist/mongo/env.d.ts.map +1 -0
- package/dist/mongo/env.js +33 -0
- package/dist/mongo/env.js.map +1 -0
- package/dist/mongo/read-collection.d.ts +14 -0
- package/dist/mongo/read-collection.d.ts.map +1 -0
- package/dist/mongo/read-collection.js +45 -0
- package/dist/mongo/read-collection.js.map +1 -0
- package/dist/mongo/resolve-db.d.ts +6 -0
- package/dist/mongo/resolve-db.d.ts.map +1 -0
- package/dist/mongo/resolve-db.js +9 -0
- package/dist/mongo/resolve-db.js.map +1 -0
- package/dist/mongo/types.d.ts +2 -0
- package/dist/mongo/types.d.ts.map +1 -0
- package/dist/mongo/types.js +2 -0
- package/dist/mongo/types.js.map +1 -0
- package/dist/relations/fetch-relation.d.ts +5 -0
- package/dist/relations/fetch-relation.d.ts.map +1 -0
- package/dist/relations/fetch-relation.js +57 -0
- package/dist/relations/fetch-relation.js.map +1 -0
- package/dist/relations/resolve-relations.d.ts +6 -0
- package/dist/relations/resolve-relations.d.ts.map +1 -0
- package/dist/relations/resolve-relations.js +20 -0
- package/dist/relations/resolve-relations.js.map +1 -0
- package/dist/retrieval/batch-fetch.d.ts +11 -0
- package/dist/retrieval/batch-fetch.d.ts.map +1 -0
- package/dist/retrieval/batch-fetch.js +80 -0
- package/dist/retrieval/batch-fetch.js.map +1 -0
- package/dist/retrieval/compose-item.d.ts +11 -0
- package/dist/retrieval/compose-item.d.ts.map +1 -0
- package/dist/retrieval/compose-item.js +18 -0
- package/dist/retrieval/compose-item.js.map +1 -0
- package/dist/retrieval/compose-row.d.ts +4 -0
- package/dist/retrieval/compose-row.d.ts.map +1 -0
- package/dist/retrieval/compose-row.js +14 -0
- package/dist/retrieval/compose-row.js.map +1 -0
- package/dist/retrieval/fetch-item.d.ts +3 -0
- package/dist/retrieval/fetch-item.d.ts.map +1 -0
- package/dist/retrieval/fetch-item.js +107 -0
- package/dist/retrieval/fetch-item.js.map +1 -0
- package/dist/retrieval/fetch-list.d.ts +3 -0
- package/dist/retrieval/fetch-list.d.ts.map +1 -0
- package/dist/retrieval/fetch-list.js +148 -0
- package/dist/retrieval/fetch-list.js.map +1 -0
- package/dist/retrieval/resolve-fields.d.ts +10 -0
- package/dist/retrieval/resolve-fields.d.ts.map +1 -0
- package/dist/retrieval/resolve-fields.js +52 -0
- package/dist/retrieval/resolve-fields.js.map +1 -0
- package/dist/retrieval/resolve-filters.d.ts +3 -0
- package/dist/retrieval/resolve-filters.d.ts.map +1 -0
- package/dist/retrieval/resolve-filters.js +57 -0
- package/dist/retrieval/resolve-filters.js.map +1 -0
- package/dist/retrieval/resolve-pagination-driver.d.ts +6 -0
- package/dist/retrieval/resolve-pagination-driver.d.ts.map +1 -0
- package/dist/retrieval/resolve-pagination-driver.js +22 -0
- package/dist/retrieval/resolve-pagination-driver.js.map +1 -0
- package/dist/retrieval/resolve-property-source.d.ts +10 -0
- package/dist/retrieval/resolve-property-source.d.ts.map +1 -0
- package/dist/retrieval/resolve-property-source.js +48 -0
- package/dist/retrieval/resolve-property-source.js.map +1 -0
- package/dist/retrieval/resolve-sort.d.ts +14 -0
- package/dist/retrieval/resolve-sort.d.ts.map +1 -0
- package/dist/retrieval/resolve-sort.js +28 -0
- package/dist/retrieval/resolve-sort.js.map +1 -0
- package/dist/tests/collection-env.test.d.ts +2 -0
- package/dist/tests/collection-env.test.d.ts.map +1 -0
- package/dist/tests/collection-env.test.js +44 -0
- package/dist/tests/collection-env.test.js.map +1 -0
- package/dist/tests/content-object.test.d.ts +2 -0
- package/dist/tests/content-object.test.d.ts.map +1 -0
- package/dist/tests/content-object.test.js +39 -0
- package/dist/tests/content-object.test.js.map +1 -0
- package/dist/tests/descriptor-validation.test.d.ts +2 -0
- package/dist/tests/descriptor-validation.test.d.ts.map +1 -0
- package/dist/tests/descriptor-validation.test.js +25 -0
- package/dist/tests/descriptor-validation.test.js.map +1 -0
- package/dist/tests/env.test.d.ts +2 -0
- package/dist/tests/env.test.d.ts.map +1 -0
- package/dist/tests/env.test.js +17 -0
- package/dist/tests/env.test.js.map +1 -0
- package/dist/tests/fetch-item.test.d.ts +2 -0
- package/dist/tests/fetch-item.test.d.ts.map +1 -0
- package/dist/tests/fetch-item.test.js +86 -0
- package/dist/tests/fetch-item.test.js.map +1 -0
- package/dist/tests/fetch-list.test.d.ts +2 -0
- package/dist/tests/fetch-list.test.d.ts.map +1 -0
- package/dist/tests/fetch-list.test.js +85 -0
- package/dist/tests/fetch-list.test.js.map +1 -0
- package/dist/tests/fixtures.d.ts +5 -0
- package/dist/tests/fixtures.d.ts.map +1 -0
- package/dist/tests/fixtures.js +137 -0
- package/dist/tests/fixtures.js.map +1 -0
- package/dist/tests/identity.test.d.ts +2 -0
- package/dist/tests/identity.test.d.ts.map +1 -0
- package/dist/tests/identity.test.js +32 -0
- package/dist/tests/identity.test.js.map +1 -0
- package/dist/tests/multi-match.test.d.ts +2 -0
- package/dist/tests/multi-match.test.d.ts.map +1 -0
- package/dist/tests/multi-match.test.js +31 -0
- package/dist/tests/multi-match.test.js.map +1 -0
- package/dist/tests/read-collection.test.d.ts +2 -0
- package/dist/tests/read-collection.test.d.ts.map +1 -0
- package/dist/tests/read-collection.test.js +19 -0
- package/dist/tests/read-collection.test.js.map +1 -0
- package/dist/tests/relations.test.d.ts +2 -0
- package/dist/tests/relations.test.d.ts.map +1 -0
- package/dist/tests/relations.test.js +77 -0
- package/dist/tests/relations.test.js.map +1 -0
- package/docs/MEMORIX-DATABASE-CONVENTIONS.md +325 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# @x12i/memorix-retrieval
|
|
2
|
+
|
|
3
|
+
Descriptor-driven retrieval/composition layer for Memorix entity and event data.
|
|
4
|
+
|
|
5
|
+
## Positioning
|
|
6
|
+
|
|
7
|
+
| Package | Role |
|
|
8
|
+
|---------|------|
|
|
9
|
+
| `@x12i/memorix` | Low-level entity collection I/O, discovery, raw document access |
|
|
10
|
+
| `@x12i/memorix-retrieval` | Descriptor-driven lists, items, relations, and content-object reads |
|
|
11
|
+
|
|
12
|
+
**Catalox** defines what to fetch. This package reads Mongo and composes API-ready JSON. **@x12i/helpers** fetches external content objects when needed.
|
|
13
|
+
|
|
14
|
+
## Quick start
|
|
15
|
+
|
|
16
|
+
Set `MONGO_URI` and provide a Catalox client. Database names, entity vs event routing, and collection resolution are handled internally.
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
MONGO_URI=mongodb://localhost:27017
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import {
|
|
24
|
+
createMemorixRetrievalFromEnv,
|
|
25
|
+
fetchMemorixList,
|
|
26
|
+
fetchMemorixItem,
|
|
27
|
+
} from "@x12i/memorix-retrieval";
|
|
28
|
+
|
|
29
|
+
const client = await createMemorixRetrievalFromEnv({ catalox });
|
|
30
|
+
|
|
31
|
+
const list = await fetchMemorixList(client, {
|
|
32
|
+
listId: "assets-main-list",
|
|
33
|
+
page: { limit: 50, offset: 0 },
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const item = await fetchMemorixItem(client, {
|
|
37
|
+
itemDescriptorId: "asset-detail-item",
|
|
38
|
+
entityId: "10.150.68.31",
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
await client.close?.();
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Lazy connect (same env, no upfront `await`):
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
import { createMemorixRetrieval, fetchMemorixList } from "@x12i/memorix-retrieval";
|
|
48
|
+
|
|
49
|
+
const client = createMemorixRetrieval({ catalox });
|
|
50
|
+
// connects to Mongo on first read using MONGO_URI
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Optional content storage (credentials are never read from descriptors):
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
import { createGcsClient } from "@x12i/helpers/gcs";
|
|
57
|
+
|
|
58
|
+
const client = await createMemorixRetrievalFromEnv({
|
|
59
|
+
catalox,
|
|
60
|
+
contentReaders: { gcs: createGcsClient({ bucket: "memorix-content" }) },
|
|
61
|
+
});
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Advanced (optional)
|
|
65
|
+
|
|
66
|
+
Override defaults only when you need to:
|
|
67
|
+
|
|
68
|
+
| Option | Purpose |
|
|
69
|
+
|--------|---------|
|
|
70
|
+
| `MEMORIX_ENTITIES_DB` / `MEMORIX_EVENTS_DB` | Non-default database names |
|
|
71
|
+
| `MEMORIX_ENTITIES_COLLECTION_*` / `MEMORIX_EVENTS_COLLECTION_*` | Per-type collection overrides |
|
|
72
|
+
| `memorixDb` | Code overrides for entity/event DB names |
|
|
73
|
+
| `xronox` | Inject a pre-configured Xronox client instead of built-in Mongo reads |
|
|
74
|
+
| `mongo` | Reuse an existing `MongoClient` |
|
|
75
|
+
| `processEnv` | Custom env object (default: `process.env`) |
|
|
76
|
+
|
|
77
|
+
Entity descriptors declare `target: "entity" | "event"` (default `entity`):
|
|
78
|
+
|
|
79
|
+
| Descriptor | Database |
|
|
80
|
+
|------------|----------|
|
|
81
|
+
| `assets`, `variabilities-groups` | `memorix-entities` |
|
|
82
|
+
| `vulnerabilities` | `memorix-events` |
|
|
83
|
+
|
|
84
|
+
See [docs/MEMORIX-DATABASE-CONVENTIONS.md](docs/MEMORIX-DATABASE-CONVENTIONS.md).
|
|
85
|
+
|
|
86
|
+
## Catalox seeds
|
|
87
|
+
|
|
88
|
+
Source of truth: `catalox-seeds/inputs/`
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npm run catalox:seed:memorix-retrieval:validate
|
|
92
|
+
npm run catalox:seed:memorix-retrieval:apply
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Every seeded item shares scope from `catalox-seeds/inputs/scope.json`:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"scope": {
|
|
100
|
+
"domains": ["network", "vulnerabilities"],
|
|
101
|
+
"agents": ["neo"]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
npm run mongo:check-collections
|
|
108
|
+
npm run smoke:retrieval -- --list assets-main-list --limit 5
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Build & test
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npm run build
|
|
115
|
+
npm test
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Publish
|
|
119
|
+
|
|
120
|
+
From the x12i workspace root:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
./scripts/publish-memorix-packages.sh
|
|
124
|
+
```
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "assets",
|
|
3
|
+
"entityName": "assets",
|
|
4
|
+
"target": "entity",
|
|
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
|
+
}
|