Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@jupiterone/data-model

Package Overview
Dependencies
Maintainers
1
Versions
95
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jupiterone/data-model - npm Package Compare versions

Comparing version 0.51.0 to 0.52.0

6

CHANGELOG.md

@@ -11,2 +11,8 @@ # Changelog

## 0.52.0 - 2022-11-09
### Added
- Added `RelationshipClass.PUBLISHES`
## 0.51.0 - 2022-07-05

@@ -13,0 +19,0 @@

2

dist/getSchema.js

@@ -6,3 +6,3 @@ "use strict";

function getSchema(_class) {
const validate = _1.IntegrationSchema.getSchema("#" + _class);
const validate = _1.IntegrationSchema.getSchema('#' + _class);
if (!validate) {

@@ -9,0 +9,0 @@ return undefined;

@@ -160,2 +160,3 @@ /**

PUBLISHED = "PUBLISHED",
PUBLISHES = "PUBLISHES",
/**

@@ -162,0 +163,0 @@ * A relationship indicating an Entity limits or restricts another Entity.

@@ -164,2 +164,3 @@ "use strict";

RelationshipClass["PUBLISHED"] = "PUBLISHED";
RelationshipClass["PUBLISHES"] = "PUBLISHES";
/**

@@ -236,2 +237,2 @@ * A relationship indicating an Entity limits or restricts another Entity.

})(RelationshipClass = exports.RelationshipClass || (exports.RelationshipClass = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVsYXRpb25zaGlwQ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUmVsYXRpb25zaGlwQ2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLGlCQXdRWDtBQXhRRCxXQUFZLGlCQUFpQjtJQUMzQjs7T0FFRztJQUNILHNDQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsMENBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQjs7Ozs7Ozs7T0FRRztJQUNILDBDQUFxQixDQUFBO0lBRXJCOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQiw0Q0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILHdDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsd0NBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQiwwQ0FBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILDBDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsNENBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQix3Q0FBbUIsQ0FBQTtJQUVuQjs7Ozs7O09BTUc7SUFDSCw0Q0FBdUIsQ0FBQTtJQUV2Qjs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILGdDQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILG9DQUFlLENBQUE7SUFFZjs7Ozs7O09BTUc7SUFDSCw4Q0FBeUIsQ0FBQTtJQUV6Qiw4Q0FBeUIsQ0FBQTtJQUV6Qjs7Ozs7OztPQU9HO0lBQ0gsOEJBQVMsQ0FBQTtJQUVUOzs7Ozs7T0FNRztJQUNILHNDQUFpQixDQUFBO0lBQ2pCOzs7Ozs7O09BT0c7SUFDSCxrQ0FBYSxDQUFBO0lBRWIsd0NBQW1CLENBQUE7SUFDbkIsNENBQXVCLENBQUE7SUFDdkIsMENBQXFCLENBQUE7SUFFckIsMENBQXFCLENBQUE7SUFFckIsc0NBQWlCLENBQUE7SUFFakI7Ozs7Ozs7O09BUUc7SUFDSCw0Q0FBdUIsQ0FBQTtJQUV2QixrQ0FBYSxDQUFBO0lBRWIsNENBQXVCLENBQUE7SUFDdkIsMENBQXFCLENBQUE7SUFDckIsMENBQXFCLENBQUE7SUFFckI7Ozs7Ozs7T0FPRztJQUNILDRDQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsNENBQXVCLENBQUE7SUFFdkIsMENBQXFCLENBQUE7SUFDckIsMENBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCxrQ0FBYSxDQUFBO0lBRWI7Ozs7OztPQU1HO0lBQ0gsb0NBQWUsQ0FBQTtJQUVmOzs7Ozs7T0FNRztJQUNILG9DQUFlLENBQUE7SUFFZjs7Ozs7Ozs7O09BU0c7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQixzQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILHdDQUFtQixDQUFBO0lBRW5COzs7Ozs7OztPQVFHO0lBQ0gsa0NBQWEsQ0FBQTtJQUViOzs7Ozs7O09BT0c7SUFDSCw0Q0FBdUIsQ0FBQTtJQUV2Qjs7Ozs7OztPQU9HO0lBQ0gsMENBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQXhRVyxpQkFBaUIsR0FBakIseUJBQWlCLEtBQWpCLHlCQUFpQixRQXdRNUIifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVsYXRpb25zaGlwQ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUmVsYXRpb25zaGlwQ2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLGlCQXlRWDtBQXpRRCxXQUFZLGlCQUFpQjtJQUMzQjs7T0FFRztJQUNILHNDQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsMENBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQjs7Ozs7Ozs7T0FRRztJQUNILDBDQUFxQixDQUFBO0lBRXJCOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQiw0Q0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILHdDQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsd0NBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxzQ0FBaUIsQ0FBQTtJQUVqQiwwQ0FBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILDBDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsNENBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQix3Q0FBbUIsQ0FBQTtJQUVuQjs7Ozs7O09BTUc7SUFDSCw0Q0FBdUIsQ0FBQTtJQUV2Qjs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILGdDQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILG9DQUFlLENBQUE7SUFFZjs7Ozs7O09BTUc7SUFDSCw4Q0FBeUIsQ0FBQTtJQUV6Qiw4Q0FBeUIsQ0FBQTtJQUV6Qjs7Ozs7OztPQU9HO0lBQ0gsOEJBQVMsQ0FBQTtJQUVUOzs7Ozs7T0FNRztJQUNILHNDQUFpQixDQUFBO0lBQ2pCOzs7Ozs7O09BT0c7SUFDSCxrQ0FBYSxDQUFBO0lBRWIsd0NBQW1CLENBQUE7SUFDbkIsNENBQXVCLENBQUE7SUFDdkIsMENBQXFCLENBQUE7SUFFckIsMENBQXFCLENBQUE7SUFFckIsc0NBQWlCLENBQUE7SUFFakI7Ozs7Ozs7O09BUUc7SUFDSCw0Q0FBdUIsQ0FBQTtJQUV2QixrQ0FBYSxDQUFBO0lBRWIsNENBQXVCLENBQUE7SUFDdkIsMENBQXFCLENBQUE7SUFDckIsMENBQXFCLENBQUE7SUFFckI7Ozs7Ozs7T0FPRztJQUNILDRDQUF1QixDQUFBO0lBQ3ZCLDRDQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsNENBQXVCLENBQUE7SUFFdkIsMENBQXFCLENBQUE7SUFDckIsMENBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCxrQ0FBYSxDQUFBO0lBRWI7Ozs7OztPQU1HO0lBQ0gsb0NBQWUsQ0FBQTtJQUVmOzs7Ozs7T0FNRztJQUNILG9DQUFlLENBQUE7SUFFZjs7Ozs7Ozs7O09BU0c7SUFDSCwwQ0FBcUIsQ0FBQTtJQUVyQixzQ0FBaUIsQ0FBQTtJQUVqQjs7T0FFRztJQUNILHdDQUFtQixDQUFBO0lBRW5COzs7Ozs7OztPQVFHO0lBQ0gsa0NBQWEsQ0FBQTtJQUViOzs7Ozs7O09BT0c7SUFDSCw0Q0FBdUIsQ0FBQTtJQUV2Qjs7Ozs7OztPQU9HO0lBQ0gsMENBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQXpRVyxpQkFBaUIsR0FBakIseUJBQWlCLEtBQWpCLHlCQUFpQixRQXlRNUIifQ==

@@ -29,7 +29,5 @@ {

"required": [],
"excludes": [
"status"
]
"excludes": ["status"]
}
]
}

@@ -67,9 +67,5 @@ {

},
"required": [
"category",
"summary",
"internal"
]
"required": ["category", "summary", "internal"]
}
]
}

@@ -31,10 +31,5 @@ {

},
"required": [
"branch",
"message",
"merge",
"versionBump"
]
"required": ["branch", "message", "merge", "versionBump"]
}
]
}

@@ -25,7 +25,5 @@ {

},
"required": [
"title"
]
"required": ["title"]
}
]
}

@@ -11,3 +11,12 @@ {

{
"properties": {},
"properties": {
"product": {
"description": "The name of the product this document is applicable to. This reference is used when the document is product related, such as a product requirement document (PRD) or software bill-of-materials (SBOM).",
"type": "string"
},
"version": {
"description": "The version of this document.",
"type": "string"
}
},
"required": [],

@@ -14,0 +23,0 @@ "excludes": []

@@ -50,9 +50,5 @@ {

},
"required": [
"category",
"severity",
"reportable"
]
"required": ["category", "severity", "reportable"]
}
]
}

@@ -15,9 +15,3 @@ {

"type": "string",
"examples": [
"network",
"system",
"application",
"access",
"other"
]
"examples": ["network", "system", "application", "access", "other"]
}

@@ -24,0 +18,0 @@ },

@@ -100,15 +100,6 @@ {

},
"required": [
"firstName",
"lastName",
"email"
],
"excludes": [
"owner",
"createdOn",
"updatedOn",
"expiresOn"
]
"required": ["firstName", "lastName", "email"],
"excludes": ["owner", "createdOn", "updatedOn", "expiresOn"]
}
]
}

@@ -37,13 +37,6 @@ {

},
"required": [
"title",
"summary",
"content"
],
"excludes": [
"category",
"reporter"
]
"required": ["title", "summary", "content"],
"excludes": ["category", "reporter"]
}
]
}

@@ -23,8 +23,3 @@ {

"type": "string",
"examples": [
"open",
"merged",
"declined",
"superseded"
]
"examples": ["open", "merged", "declined", "superseded"]
},

@@ -52,11 +47,5 @@ "source": {

},
"required": [
"title",
"state",
"source",
"target",
"repository"
]
"required": ["title", "state", "source", "target", "repository"]
}
]
}

@@ -48,13 +48,6 @@ {

},
"required": [
"title",
"summary",
"content"
],
"excludes": [
"category",
"reporter"
]
"required": ["title", "summary", "content"],
"excludes": ["category", "reporter"]
}
]
}

@@ -31,8 +31,3 @@ {

"type": "string",
"examples": [
"critical",
"confidential",
"internal",
"public"
]
"examples": ["critical", "confidential", "internal", "public"]
},

@@ -125,8 +120,5 @@ "category": {

},
"required": [
"name",
"displayName"
]
"required": ["name", "displayName"]
}
]
}

@@ -25,7 +25,5 @@ {

},
"required": [
"title"
]
"required": ["title"]
}
]
}

@@ -25,7 +25,5 @@ {

},
"required": [
"title"
]
"required": ["title"]
}
]
}

@@ -23,8 +23,3 @@ {

"type": "integer",
"examples": [
0,
1,
2,
3
]
"examples": [0, 1, 2, 3]
},

@@ -34,8 +29,3 @@ "impact": {

"type": "integer",
"examples": [
0,
1,
2,
3
]
"examples": [0, 1, 2, 3]
},

@@ -69,10 +59,5 @@ "score": {

},
"required": [
"probability",
"impact",
"score",
"status"
]
"required": ["probability", "impact", "score", "status"]
}
]
}

@@ -15,8 +15,3 @@ {

"type": "string",
"examples": [
"compliance",
"config",
"password",
"other"
]
"examples": ["compliance", "config", "password", "other"]
},

@@ -23,0 +18,0 @@ "content": {

@@ -15,8 +15,3 @@ {

"type": "string",
"examples": [
"compliance",
"config",
"password",
"other"
]
"examples": ["compliance", "config", "password", "other"]
},

@@ -23,0 +18,0 @@ "rules": {

@@ -17,16 +17,9 @@ {

"type": "string",
"examples": [
"system",
"network",
"application",
"other"
]
"examples": ["system", "network", "application", "other"]
}
}
},
"required": [
"category"
]
"required": ["category"]
}
]
}

@@ -19,10 +19,5 @@ {

"required": [],
"excludes": [
"status",
"public",
"temporary",
"expiresOn"
]
"excludes": ["status", "public", "temporary", "expiresOn"]
}
]
}

@@ -34,2 +34,6 @@ {

},
"mfaType": {
"description": "Specifies what type of multi-factor authentication (MFA) is being used by this user.",
"type": "string"
},
"active": {

@@ -36,0 +40,0 @@ "description": "Specifies whether user account is active or disabled.",

@@ -15,8 +15,3 @@ {

"type": ["string", "null"],
"examples": [
"application",
"system",
"infrastructure",
"other"
]
"examples": ["application", "system", "infrastructure", "other"]
},

@@ -23,0 +18,0 @@ "status": {

@@ -15,8 +15,3 @@ {

"type": "string",
"examples": [
"application",
"system",
"infrastructure",
"other"
]
"examples": ["application", "system", "infrastructure", "other"]
},

@@ -23,0 +18,0 @@ "exploitability": {

{
"name": "@jupiterone/data-model",
"version": "0.51.0",
"version": "0.52.0",
"main": "dist/index.js",

@@ -18,2 +18,3 @@ "files": [

"generate-schema-imports": "./tools/generate-schema-imports.sh",
"generate-resolved-schemas": "node tools/generate-resolved-schemas/index.js src/schemas external/resolvedSchemas.json && prettier --write external/resolvedSchemas.json",
"test": "jest",

@@ -20,0 +21,0 @@ "lint": "eslint src --ext .ts,.js",

# JupiterOne Graph Data Model
- [Data Model Guide](https://support.jupiterone.io/hc/en-us/sections/360002424373-JupiterOne-Graph-Data-Model)
- [Data Model Guide](https://community.askj1.com/kb/articles/846-jupiterone-data-model)

@@ -31,1 +31,61 @@ The **JupiterOne Graph Data Model** describes a set of common classifications

that make this easy to do.
## Entities and Relationships
The data model is built for a knowledge graph -- entities and relationships, or
nodes and edges -- that reflects the stateful representation of the cyber
infrastructure and digital operations of an organization.
The schema for each entity and relationship describes a collection of common
attributes for that specific abstract class, along with graph object metadata as
described in [`GraphObject.json`](/src/schemas/GraphObject.json).
The data model combines the benefit of having vendor/provider specific
attributes together with abstract/normalized attributes. The vendor/provider
specific attributes are dynamically assigned and not defined by the data model.
## The Concept of `_type` and `_class`
Each entity represents an actual operating element (a "thing") that is part of
an organization's cyber operations or infrastructure. This "thing" can be either
physical or logical.
The metadata attributes `_type` and `_class` are used to define what the asset
is:
- `_type`: The value is a single string typically in the format of
`${vendor}_${resource}` or `${vendor}_${product}_${resource}` in `snake_case`.
> For example: `aws_instance`, `google_cloud_function`, `apple_tv`,
> `sentinelone_agent`
It is important to note that in some cases, `${vendor}_${resource}` may not be
ideal or feasible.
For example, we may have directory data that comes in from an HR integration
such as BambooHR or Rippling. The `Person` entity being created should have
`_type: 'employee'` or `_type: 'contractor'` rather than
`_type: 'bamboohr_employee'` or `_type: 'bamboohr_contractor'`.
Another exception is data that comes from an integration with another ITSM,
asset discovery tool, device management tool, or CMDB. While a system might be
a good "source of truth" or "system of record," they are not the actual vendor
of those devices.
- If a server or application is ingested from **ServiceNow**, the `_type`
should _not_ be `servicenow_server` or `servicenow_application`.
- If a Cisco switch is ingested from **Rumble** or **Netbox**, the `_type`
should be `cisco_switch` instead of `rumble_asset` or `netbox_device`.
- If a smartphone/mobile device is managed by Google Workspace and ingested
via the integration, the `_type` for the device should _not_ be
`google_mobile_device` because the device could be an Apple iPhone and it
would be very confusing to call an iPhone a Google mobile device. Instead,
it should be `apple_iphone` when the type of device is known or a generic
value of `mobile_device`.
- `_class`: The value is a string or string array in `TitleCase` using a generic
IT or Security term to describe the higher level category of the asset.
> These are defined in [`src/schemas`](src/schemas).

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc