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

@jupiterone/data-model

Package Overview
Dependencies
Maintainers
10
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.1.0 to 0.2.0

dist/getSchema.d.ts

37

dist/index.d.ts

@@ -1,29 +0,14 @@

export { createIntegrationEntity } from './createIntegrationEntity';
export { createIntegrationRelationship } from './createIntegrationRelationship';
export { assignTags, ResourceTagList, ResourceTagMap } from './tagging';
export { generateRelationshipKey, generateRelationshipType } from './util';
export * from './converters';
export { EVERYONE, INTERNET } from './globalEntities';
export { RelationshipClass } from './RelationshipClass';
export * from './relationships';
import * as ipUtil from './ip';
import { RelationshipClass } from './schemas';
export declare const DataModel: {
ipUtil: typeof ipUtil;
EVERYONE: {
_class: string[];
_type: string;
_key: string;
principal: string;
public: boolean;
displayName: string;
export declare type IntegrationEntitySchema = {
$ref?: string;
allOf?: IntegrationEntitySchema[];
properties?: {
[propertyName: string]: any;
};
INTERNET: {
_class: string[];
_type: string;
_key: string;
CIDR: string;
CIDRv6: string;
public: boolean;
displayName: string;
};
RelationshipClass: typeof RelationshipClass;
required?: string[];
};
export { IntegrationSchema } from "./IntegrationSchema";
export { validateEntityWithSchema } from './validateEntityWithSchema';
export { getSchema } from './getSchema';
"use strict";
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var createIntegrationEntity_1 = require("./createIntegrationEntity");
exports.createIntegrationEntity = createIntegrationEntity_1.createIntegrationEntity;
var createIntegrationRelationship_1 = require("./createIntegrationRelationship");
exports.createIntegrationRelationship = createIntegrationRelationship_1.createIntegrationRelationship;
var tagging_1 = require("./tagging");
exports.assignTags = tagging_1.assignTags;
var util_1 = require("./util");
exports.generateRelationshipKey = util_1.generateRelationshipKey;
exports.generateRelationshipType = util_1.generateRelationshipType;
__export(require("./converters"));
const ipUtil = __importStar(require("./ip"));
const globalEntities_1 = require("./globalEntities");
const schemas_1 = require("./schemas");
exports.DataModel = {
ipUtil,
EVERYONE: globalEntities_1.EVERYONE,
INTERNET: globalEntities_1.INTERNET,
RelationshipClass: schemas_1.RelationshipClass,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEscUVBQW9FO0FBQTNELDREQUFBLHVCQUF1QixDQUFBO0FBQ2hDLGlGQUFnRjtBQUF2RSx3RUFBQSw2QkFBNkIsQ0FBQTtBQUN0QyxxQ0FBd0U7QUFBL0QsK0JBQUEsVUFBVSxDQUFBO0FBQ25CLCtCQUEyRTtBQUFsRSx5Q0FBQSx1QkFBdUIsQ0FBQTtBQUFFLDBDQUFBLHdCQUF3QixDQUFBO0FBQzFELGtDQUE2QjtBQUc3Qiw2Q0FBK0I7QUFDL0IscURBQXNEO0FBQ3RELHVDQUE4QztBQUVqQyxRQUFBLFNBQVMsR0FBRztJQUN2QixNQUFNO0lBQ04sUUFBUSxFQUFSLHlCQUFRO0lBQ1IsUUFBUSxFQUFSLHlCQUFRO0lBQ1IsaUJBQWlCLEVBQWpCLDJCQUFpQjtDQUNsQixDQUFDIn0=
var globalEntities_1 = require("./globalEntities");
exports.EVERYONE = globalEntities_1.EVERYONE;
exports.INTERNET = globalEntities_1.INTERNET;
var RelationshipClass_1 = require("./RelationshipClass");
exports.RelationshipClass = RelationshipClass_1.RelationshipClass;
var IntegrationSchema_1 = require("./IntegrationSchema");
exports.IntegrationSchema = IntegrationSchema_1.IntegrationSchema;
var validateEntityWithSchema_1 = require("./validateEntityWithSchema");
exports.validateEntityWithSchema = validateEntityWithSchema_1.validateEntityWithSchema;
var getSchema_1 = require("./getSchema");
exports.getSchema = getSchema_1.getSchema;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBc0Q7QUFBN0Msb0NBQUEsUUFBUSxDQUFBO0FBQUUsb0NBQUEsUUFBUSxDQUFBO0FBRTNCLHlEQUF3RDtBQUEvQyxnREFBQSxpQkFBaUIsQ0FBQTtBQVcxQix5REFBd0Q7QUFBL0MsZ0RBQUEsaUJBQWlCLENBQUE7QUFFMUIsdUVBQXNFO0FBQTdELDhEQUFBLHdCQUF3QixDQUFBO0FBQ2pDLHlDQUF3QztBQUEvQixnQ0FBQSxTQUFTLENBQUEifQ==
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Account",
"description": "An organizational account for a service or a set of services (e.g. AWS, Okta, Bitbucket Team, Google G-Suite account, Apple Developer Account). Each Account should be connected to a Service.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Account",
"description": "An organizational account for a service or a set of services (e.g. AWS, Okta, Bitbucket Team, Google G-Suite account, Apple Developer Account). Each Account should be connected to a Service.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
},
{
"properties": {
"accessURL": {
"description": "The main URL to access this account, e.g. https://lifeomic.okta.com",
"type": "string",
"format": "uri"
},
{
"properties": {
"accessURL": {
"description": "The main URL to access this account, e.g. https://lifeomic.okta.com",
"type": "string",
"format": "uri"
},
"mfaEnabled": {
"description": "Specifies whether multi-factor authentication (MFA) is enabled/required for users of this account.",
"type": "boolean"
}
},
"required": []
"mfaEnabled": {
"description": "Specifies whether multi-factor authentication (MFA) is enabled/required for users of this account.",
"type": "boolean"
}
]
},
"required": []
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#ControlPolicy",
"description": "An technical or operational policy with rules that govern (or enforce, evaluate, monitor) a security control.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#ControlPolicy",
"description": "An technical or operational policy with rules that govern (or enforce, evaluate, monitor) a security control.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
},
{
"properties": {
"category": {
"description": "The category of policy.",
"type": "string",
"enum": ["compliance", "config", "password", "other"]
},
{
"properties": {
"category": {
"description": "The category of policy.",
"type": "string",
"enum": ["compliance", "config", "password", "other"]
},
"rules": {
"description": "Rules of policy.",
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"description": "Contents of the raw rules, if applicable.",
"type": "string"
}
},
"required": []
"rules": {
"description": "Rules of policy.",
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"description": "Contents of the raw rules, if applicable.",
"type": "string"
}
]
},
"required": []
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Database",
"description": "A database cluster/instance.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"location": {
"description": "URI to access the database.",
"type": "string"
},
"encryptionRequired": {
"description": "If the data needs to be encrypted",
"type": "boolean"
},
"encrypted": {
"description": "If the repository is encrypted",
"type": ["boolean", "null"]
}
},
"required": []
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Database",
"description": "A database cluster/instance.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"location": {
"description": "URI to access the database.",
"type": "string"
},
"encryptionRequired": {
"description": "If the data needs to be encrypted",
"type": "boolean"
},
"encrypted": {
"description": "If the repository is encrypted",
"type": ["boolean", "null"]
}
]
},
"required": []
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#DataStore",
"description": "A virtual repository where data is stored, such as aws-s3-bucket, aws-rds-cluster, aws-dynamodb-table, bitbucket-repo, sharepoint-site, docker-registry. The exact type is described in the _type property of the Entity.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#DataStore",
"description": "A virtual repository where data is stored, such as aws-s3-bucket, aws-rds-cluster, aws-dynamodb-table, bitbucket-repo, sharepoint-site, docker-registry. The exact type is described in the _type property of the Entity.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
},
{
"properties": {
"location": {
"description": "URI to the data store, e.g. https://docker-registry.lifeomic.com or https://lifeomic.sharepoint.com. Or a description to the physical location.",
"type": "string"
},
{
"properties": {
"location": {
"description": "URI to the data store, e.g. https://docker-registry.lifeomic.com or https://lifeomic.sharepoint.com. Or a description to the physical location.",
"type": "string"
},
"encryptionRequired": {
"description": "If the data needs to be encrypted",
"type": "boolean"
},
"encryptionAlgorithm": {
"description": "Encryption algorithm used to encrypt the data store",
"type": "string"
},
"encryptionKeyRef": {
"description": "Reference to the encryption key used to encrypt the data store",
"type": "string"
},
"encrypted": {
"description": "If the data store is encrypted",
"type": ["boolean", "null"]
},
"public": {
"description": "Indicates if the data store is open to public access",
"type": "boolean"
},
"hasBackup": {
"description": "Indicates if the data store is data backup has been configured/enabled.",
"type": "boolean"
}
},
"required": ["classification", "encrypted"]
"encryptionRequired": {
"description": "If the data needs to be encrypted",
"type": "boolean"
},
"encryptionAlgorithm": {
"description": "Encryption algorithm used to encrypt the data store",
"type": "string"
},
"encryptionKeyRef": {
"description": "Reference to the encryption key used to encrypt the data store",
"type": "string"
},
"encrypted": {
"description": "If the data store is encrypted",
"type": ["boolean", "null"]
},
"public": {
"description": "Indicates if the data store is open to public access",
"type": "boolean"
},
"hasBackup": {
"description": "Indicates if the data store is data backup has been configured/enabled.",
"type": "boolean"
}
]
},
"required": ["classification", "encrypted"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Device",
"description": "A physical device or media, such as a server, laptop, workstation, smartphone, tablet, router, firewall, switch, wifi-access-point, usb-drive, etc. The exact data type is described in the _type property of the Entity.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"category": {
"description": "The device category",
"type": "string",
"examples": ["server", "endpoint", "storage-media", "mobile", "other"]
},
"hardwareVendor": {
"description": "The manufacturer or vendor of the device, e.g. Apple Inc., Generic",
"type": "string"
},
"hardwareModel": {
"description": "The device hardware model, e.g. MacBookPro13,3",
"type": "string"
},
"hardwareVersion": {
"description": "The device hardware version",
"type": "string"
},
"hardwareSerial": {
"description": "The device serial number",
"type": "string"
},
"assetTag": {
"description": "The asset tag number/label that matches the identifier in asset tracking system, for company owned physical devices",
"type": "string"
},
"platform": {
"description": "Operating System Platform",
"type": "string",
"enum": [
"darwin",
"linux",
"unix",
"windows",
"android",
"ios",
"embedded",
"other"
]
},
"osDetails": {
"description": "Operating System Full Details (e.g. macOS High Sierra version 10.13.6)",
"type": "string"
},
"osName": {
"description": "Operating System Name (e.g. macOS)",
"type": "string"
},
"osVersion": {
"description": "Operating System Version (e.g. 10.13.6)",
"type": "string"
},
"userEmails": {
"description": "The email addresses of the users this device is assigned to. Used if the device is shared by more than one user. Otherwise the 'owner' is the sole user. Leave empty/undefined if the device is unassigned.",
"type": "array",
"items": {
"type": "string",
"format": "email"
}
},
"location": {
"description": "Site where this device is located.",
"type": "string"
},
"cost": {
"description": "The purchase cost of the device.",
"type": "number"
},
"value": {
"description": "The estimated business value of the device. The value is typically calculated as the monetary cost of the device + the value of data on the device.",
"type": "number"
},
"BYOD": {
"description": "Indicates if this is a BYOD device -- an employee-provided device that has access to company systems/resources.",
"type": "boolean",
"default": false
},
"autoSecurityPatchEnabled": {
"description": "Indicates if security updates are auto-installed",
"type": "boolean",
"default": false
},
"autoSystemPatchEnabled": {
"description": "Indicates if operating system updates are auto-installed",
"type": "boolean",
"default": false
},
"encrypted": {
"description": "Indicates if the primary device storage is encrypted",
"type": "boolean",
"default": false
},
"malwareProtected": {
"description": "Indicates if malware protection is enabled",
"type": "boolean",
"default": false
},
"firewallEnabled": {
"description": "Indicates if local/host firewall is enabled",
"type": "boolean",
"default": false
},
"remoteAccessEnabled": {
"description": "Indicates if remote access/login to the device is enabled",
"type": "boolean",
"default": false
},
"screenLockEnabled": {
"description": "Indicates if screen lock protection is enabled",
"type": "boolean",
"default": false
},
"screenLockTimeout": {
"description": "Screen lock timeout in seconds",
"type": "number"
},
"status": {
"description": "Status label of this device",
"type": "string",
"enum": [
"assigned",
"archived",
"decommissioned",
"defective",
"deployed",
"disposed",
"locked",
"lost/stolen",
"pending",
"ready",
"unknown",
"other"
]
}
},
"required": [
"category",
"hardwareVendor",
"hardwareModel",
"hardwareSerial",
"BYOD"
]
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Device",
"description": "A physical device or media, such as a server, laptop, workstation, smartphone, tablet, router, firewall, switch, wifi-access-point, usb-drive, etc. The exact data type is described in the _type property of the Entity.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"category": {
"description": "The device category",
"type": "string",
"examples": ["server", "endpoint", "storage-media", "mobile", "other"]
},
"hardwareVendor": {
"description": "The manufacturer or vendor of the device, e.g. Apple Inc., Generic",
"type": "string"
},
"hardwareModel": {
"description": "The device hardware model, e.g. MacBookPro13,3",
"type": "string"
},
"hardwareVersion": {
"description": "The device hardware version",
"type": "string"
},
"hardwareSerial": {
"description": "The device serial number",
"type": "string"
},
"assetTag": {
"description": "The asset tag number/label that matches the identifier in asset tracking system, for company owned physical devices",
"type": "string"
},
"platform": {
"description": "Operating System Platform",
"type": "string",
"enum": [
"darwin",
"linux",
"unix",
"windows",
"android",
"ios",
"embedded",
"other"
]
},
"osDetails": {
"description": "Operating System Full Details (e.g. macOS High Sierra version 10.13.6)",
"type": "string"
},
"osName": {
"description": "Operating System Name (e.g. macOS)",
"type": "string"
},
"osVersion": {
"description": "Operating System Version (e.g. 10.13.6)",
"type": "string"
},
"userEmails": {
"description": "The email addresses of the users this device is assigned to. Used if the device is shared by more than one user. Otherwise the 'owner' is the sole user. Leave empty/undefined if the device is unassigned.",
"type": "array",
"items": {
"type": "string",
"format": "email"
}
},
"location": {
"description": "Site where this device is located.",
"type": "string"
},
"cost": {
"description": "The purchase cost of the device.",
"type": "number"
},
"value": {
"description": "The estimated business value of the device. The value is typically calculated as the monetary cost of the device + the value of data on the device.",
"type": "number"
},
"BYOD": {
"description": "Indicates if this is a BYOD device -- an employee-provided device that has access to company systems/resources.",
"type": "boolean",
"default": false
},
"autoSecurityPatchEnabled": {
"description": "Indicates if security updates are auto-installed",
"type": "boolean",
"default": false
},
"autoSystemPatchEnabled": {
"description": "Indicates if operating system updates are auto-installed",
"type": "boolean",
"default": false
},
"encrypted": {
"description": "Indicates if the primary device storage is encrypted",
"type": "boolean",
"default": false
},
"malwareProtected": {
"description": "Indicates if malware protection is enabled",
"type": "boolean",
"default": false
},
"firewallEnabled": {
"description": "Indicates if local/host firewall is enabled",
"type": "boolean",
"default": false
},
"remoteAccessEnabled": {
"description": "Indicates if remote access/login to the device is enabled",
"type": "boolean",
"default": false
},
"screenLockEnabled": {
"description": "Indicates if screen lock protection is enabled",
"type": "boolean",
"default": false
},
"screenLockTimeout": {
"description": "Screen lock timeout in seconds",
"type": "number"
},
"status": {
"description": "Status label of this device",
"type": "string",
"enum": [
"assigned",
"archived",
"decommissioned",
"defective",
"deployed",
"disposed",
"locked",
"lost/stolen",
"pending",
"ready",
"unknown",
"other"
]
}
]
},
"required": [
"category",
"hardwareVendor",
"hardwareModel",
"hardwareSerial",
"BYOD"
]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Entity",
"type": "object",
"allOf": [
{ "$ref": "#GraphObject" },
{
"properties": {
"name": {
"description": "Name of this entity",
"type": "string"
},
"displayName": {
"description": "Display name, e.g. a person's preferred name or an AWS account alias",
"type": "string"
},
"summary": {
"description": "A summary / short description of this entity.",
"type": "string"
},
"description": {
"description": "An extended description of this entity.",
"type": "string"
},
"classification": {
"description": "The sensitivity of the data; should match company data classification scheme",
"type": ["string", "null"],
"examples": ["critical", "confidential", "internal", "public"]
},
"criticality": {
"description": "A number that represents the value or criticality of this entity, on a scale between 1-10.",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"risk": {
"description": "The risk level of this entity, on a scale between 1-10.",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"trust": {
"description": "The trust level of this entity, on a scale between 1-10.",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"complianceStatus": {
"description": "The compliance status of the entity, as a percentage of compliancy.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"status": {
"description": "Status of this entity set by the external source system or by a user, e.g. Active, Inactive, Decommissioned",
"type": "string",
"examples": [
"active",
"inactive",
"suspended",
"terminated",
"open",
"closed",
"pending",
"unknown",
"other"
]
},
"active": {
"description": "Indicates if this entity is currently active.",
"type": "boolean"
},
"public": {
"description": "Indicates if this is a public-facing resource (e.g. a public IP or public DNS record) or if the entity is publicly accessible. Default is false.",
"type": "boolean"
},
"validated": {
"description": "Indicates if this node has been validated as a known/valid Entity.",
"type": "boolean"
},
"temporary": {
"description": "Indicates if this node is a temporary resource, such as a lambda instance or an EC2 instance started by ECS.",
"type": "boolean"
},
"createdOn": {
"description": "The timestamp (in milliseconds since epoch) when the entity was created at the source. This is different than `_createdOn` which is the timestamp the entity was first ingested into JupiterOne.",
"type": "number",
"format": "date-time"
},
"updatedOn": {
"description": "The timestamp (in milliseconds since epoch) when the entity was last updated at the source.",
"type": "number",
"format": "date-time"
},
"expiresOn": {
"description": "If the entity is a temporary resource, optionally set the expiration date. For example, the expiration date of an SSL cert.",
"type": "number",
"format": "date-time"
},
"webLink": {
"description": "Web link to the source. For example: https://console.aws.amazon.com/iam/home#/roles/Administrator. This property is used by the UI to add a hyperlink to the entity.",
"type": "string",
"format": "uri"
},
"owner": {
"description": "The owner of this entity. This could reference the name of the owner, or as reference ID/key to another entity in the graph as the owner.",
"type": "string"
},
"tag.*": {
"description": "Named tags assigned to the entity (i.e., 'tag.Name', 'tag.OtherName')",
"type": "string",
"multiple": true
},
"tags": {
"description": "An array of unnamed tags",
"type": "array",
"items": {
"type": "string"
}
},
"notes": {
"description": "User provided notes about this entity",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["name", "displayName"]
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Entity",
"type": "object",
"allOf": [
{ "$ref": "#GraphObject" },
{
"properties": {
"name": {
"description": "Name of this entity",
"type": "string"
},
"displayName": {
"description": "Display name, e.g. a person's preferred name or an AWS account alias",
"type": "string"
},
"summary": {
"description": "A summary / short description of this entity.",
"type": "string"
},
"description": {
"description": "An extended description of this entity.",
"type": "string"
},
"classification": {
"description": "The sensitivity of the data; should match company data classification scheme",
"type": ["string", "null"],
"examples": ["critical", "confidential", "internal", "public"]
},
"criticality": {
"description": "A number that represents the value or criticality of this entity, on a scale between 1-10.",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"risk": {
"description": "The risk level of this entity, on a scale between 1-10.",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"trust": {
"description": "The trust level of this entity, on a scale between 1-10.",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"complianceStatus": {
"description": "The compliance status of the entity, as a percentage of compliancy.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"status": {
"description": "Status of this entity set by the external source system or by a user, e.g. Active, Inactive, Decommissioned",
"type": "string",
"examples": [
"active",
"inactive",
"suspended",
"terminated",
"open",
"closed",
"pending",
"unknown",
"other"
]
},
"active": {
"description": "Indicates if this entity is currently active.",
"type": "boolean"
},
"public": {
"description": "Indicates if this is a public-facing resource (e.g. a public IP or public DNS record) or if the entity is publicly accessible. Default is false.",
"type": "boolean"
},
"validated": {
"description": "Indicates if this node has been validated as a known/valid Entity.",
"type": "boolean"
},
"temporary": {
"description": "Indicates if this node is a temporary resource, such as a lambda instance or an EC2 instance started by ECS.",
"type": "boolean"
},
"createdOn": {
"description": "The timestamp (in milliseconds since epoch) when the entity was created at the source. This is different than `_createdOn` which is the timestamp the entity was first ingested into JupiterOne.",
"type": "number",
"format": "date-time"
},
"updatedOn": {
"description": "The timestamp (in milliseconds since epoch) when the entity was last updated at the source.",
"type": "number",
"format": "date-time"
},
"expiresOn": {
"description": "If the entity is a temporary resource, optionally set the expiration date. For example, the expiration date of an SSL cert.",
"type": "number",
"format": "date-time"
},
"webLink": {
"description": "Web link to the source. For example: https://console.aws.amazon.com/iam/home#/roles/Administrator. This property is used by the UI to add a hyperlink to the entity.",
"type": "string",
"format": "uri"
},
"owner": {
"description": "The owner of this entity. This could reference the name of the owner, or as reference ID/key to another entity in the graph as the owner.",
"type": "string"
},
"tag.*": {
"description": "Named tags assigned to the entity (i.e., 'tag.Name', 'tag.OtherName')",
"type": "string",
"multiple": true
},
"tags": {
"description": "An array of unnamed tags",
"type": "array",
"items": {
"type": "string"
}
},
"notes": {
"description": "User provided notes about this entity",
"type": "array",
"items": {
"type": "string"
}
}
]
},
"required": ["name", "displayName"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Firewall",
"description": "A piece of hardware or software that protects a network/host/application.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"category": {
"description": "The category of the Firewall. Indicates the scope that the Firewall applies to -- i.e. Network, Host, Application.",
"type": "array",
"items": {
"type": "string",
"enum": ["network", "host", "application", "other"]
}
},
"isStateful": {
"description": "Indicates if the rules in the firewall is stateful.",
"type": "boolean"
}
},
"required": ["category"]
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Firewall",
"description": "A piece of hardware or software that protects a network/host/application.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"category": {
"description": "The category of the Firewall. Indicates the scope that the Firewall applies to -- i.e. Network, Host, Application.",
"type": "array",
"items": {
"type": "string",
"enum": ["network", "host", "application", "other"]
}
},
"isStateful": {
"description": "Indicates if the rules in the firewall is stateful.",
"type": "boolean"
}
]
},
"required": ["category"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Gateway",
"description": "A gateway/proxy that can be a system/appliance or software service, such as a network router or application gateway.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"category": {
"description": "The category of the Gateway (corresponds to which OSI layer does the Proxy operates at).",
"type": "array",
"items": {
"type": "string",
"enum": ["network", "application", "data", "other"]
}
},
"function": {
"description": "The function of the Gateway",
"type": "array",
"items": {
"type": "string",
"enum": [
"routing",
"nat",
"api-gateway",
"content-filtering",
"content-distribution",
"load-balancing",
"firewall",
"ssl-termination",
"reverse-proxy",
"remote-access-gateway",
"application-protection",
"intrusion-detection",
"intrusion-prevention",
"mail-filtering",
"malware-protection",
"other"
]
}
},
"public": {
"description": "Indicates if the Gateway is open to public access",
"type": "boolean"
}
},
"required": ["category", "function", "public"]
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Gateway",
"description": "A gateway/proxy that can be a system/appliance or software service, such as a network router or application gateway.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"category": {
"description": "The category of the Gateway (corresponds to which OSI layer does the Proxy operates at).",
"type": "array",
"items": {
"type": "string",
"enum": ["network", "application", "data", "other"]
}
},
"function": {
"description": "The function of the Gateway",
"type": "array",
"items": {
"type": "string",
"enum": [
"routing",
"nat",
"api-gateway",
"content-filtering",
"content-distribution",
"load-balancing",
"firewall",
"ssl-termination",
"reverse-proxy",
"remote-access-gateway",
"application-protection",
"intrusion-detection",
"intrusion-prevention",
"mail-filtering",
"malware-protection",
"other"
]
}
},
"public": {
"description": "Indicates if the Gateway is open to public access",
"type": "boolean"
}
]
},
"required": ["category", "function", "public"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#GraphObject",
"description": "The standard metadata properties of a given entity/relationship. These properties are system generated (e.g. set by an integration). They are viewable in the UI but not directly editable by a user.",
"type": "object",
"propertyNames": {
"pattern": "^(_|tag\\.)?[A-Za-z0-9. -]+$"
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#GraphObject",
"description": "The standard metadata properties of a given entity/relationship. These properties are system generated (e.g. set by an integration). They are viewable in the UI but not directly editable by a user.",
"type": "object",
"propertyNames": {
"pattern": "^(_|tag\\.)?[A-Za-z0-9. -]+$"
},
"properties": {
"_key": {
"description": "A unique identifier of an entity/relationship within the scope of a single integration instance. For example, for a Bitbucket repo, this _id will be the GUID of the repo as assigned by Bitbucket. For an IAM Role, the _id will be the ARN of the role.",
"type": "string",
"minLength": 10
},
"properties": {
"_key": {
"description": "A unique identifier of an entity/relationship within the scope of a single integration instance. For example, for a Bitbucket repo, this _id will be the GUID of the repo as assigned by Bitbucket. For an IAM Role, the _id will be the ARN of the role.",
"type": "string",
"minLength": 10
"_class": {
"description": "Used to create an abstract security data model. For example, a EC2 instance will have '_class':'Host'. An integration can supply one or more classes which can be used to indicate if a particular entity/relationship conforms to one or more standard classifications. This property is similar to _type except that _class refers to a type that has been standardized while _type is an entity type that only has to be unique in the scope of the provider. It is possible that an entity/relationship has a _type value but no _class value in cases where there is no standard classification for a given entity/relationship.",
"oneOf": [
{
"type": "string",
"minLength": 2
},
"_class": {
"description": "Used to create an abstract security data model. For example, a EC2 instance will have '_class':'Host'. An integration can supply one or more classes which can be used to indicate if a particular entity/relationship conforms to one or more standard classifications. This property is similar to _type except that _class refers to a type that has been standardized while _type is an entity type that only has to be unique in the scope of the provider. It is possible that an entity/relationship has a _type value but no _class value in cases where there is no standard classification for a given entity/relationship.",
"oneOf": [
{
"type": "string",
"minLength": 2
},
{
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 2
}
}
]
},
"_type": {
"description": "Describes the type of entity/relationship as identified by the data source (often the integration or sometimes manual user input). The _class property is similar to _type but _class refers to a categorization that has been standardized and it is not unique to a single data integration.",
{
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"minLength": 5
"minLength": 2
}
}
]
},
"patternProperties": {
"^tag\\.": { "type": "string" }
},
"required": ["_key", "_class", "_type"]
"_type": {
"description": "Describes the type of entity/relationship as identified by the data source (often the integration or sometimes manual user input). The _class property is similar to _type but _class refers to a categorization that has been standardized and it is not unique to a single data integration.",
"type": "string",
"minLength": 5
}
},
"patternProperties": {
"^tag\\.": { "type": "string" }
},
"required": ["_key", "_class", "_type"]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Group",
"description": "A defined, generic group of Entities. This could represent a group of Resources, Users, Workloads, DataRepositories, etc.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {},
"required": []
}
]
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Group",
"description": "A defined, generic group of Entities. This could represent a group of Resources, Users, Workloads, DataRepositories, etc.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {},
"required": []
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Host",
"description": "A compute instance that itself owns a whole network stack and serves as an environment for workloads. Typically it runs an operating system. The exact host type is described in the _type property of the Entity. The UUID of the host should be captured in the _id property of the Entity",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"fqdn": {
"description": "Fully qualified domain name",
"type": "string"
},
"hostname": {
"description": "The primary/local hostname",
"type": "string"
},
"ipAddress": {
"description": "The main IP address. This property is usually used to store the primary IP address of a Host.",
"type": "string",
"format": "ip"
},
"publicDnsName": {
"description": "The public DNS name",
"type": "string",
"format": "hostname"
},
"privateDnsName": {
"description": "The private DNS name",
"type": "string",
"format": "hostname"
},
"publicIpAddress": {
"description": "The public IP address",
"type": "string",
"format": "ipv4"
},
"privateIpAddress": {
"description": "The private IP address",
"type": "string",
"format": "ipv4"
},
"ipAddresses": {
"description": "A listing of all IPv4 addresses associated with this Host",
"type": "array",
"items": {
"type": "string",
"format": "ipv4"
}
},
"ipv6Addresses": {
"description": "A listing of all IPv6 addresses associated with this Host",
"type": "array",
"items": {
"type": "string",
"format": "ipv6"
}
},
"macAddress": {
"description": "Primary MAC address",
"type": "string"
},
"platform": {
"description": "Operating System Platform",
"type": "string",
"enum": [
"darwin",
"linux",
"unix",
"windows",
"android",
"ios",
"embedded",
"other"
]
},
"osDetails": {
"description": "Operating System Full Details (e.g. macOS High Sierra version 10.13.6)",
"type": "string"
},
"osName": {
"description": "Operating System Name (e.g. macOS)",
"type": "string"
},
"osVersion": {
"description": "Operating System Version (e.g. 10.13.6)",
"type": "string"
},
"macAddresses": {
"description": "A listing of all MAC addresses associated with this Host",
"type": "array",
"items": {
"type": "string"
}
},
"physical": {
"description": "Indicates if this is a physical host, such as a physical server.",
"type": "boolean"
}
},
"required": ["hostname"]
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Host",
"description": "A compute instance that itself owns a whole network stack and serves as an environment for workloads. Typically it runs an operating system. The exact host type is described in the _type property of the Entity. The UUID of the host should be captured in the _id property of the Entity",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"fqdn": {
"description": "Fully qualified domain name",
"type": "string"
},
"hostname": {
"description": "The primary/local hostname",
"type": "string"
},
"ipAddress": {
"description": "The main IP address. This property is usually used to store the primary IP address of a Host.",
"type": "string",
"format": "ip"
},
"publicDnsName": {
"description": "The public DNS name",
"type": "string",
"format": "hostname"
},
"privateDnsName": {
"description": "The private DNS name",
"type": "string",
"format": "hostname"
},
"publicIpAddress": {
"description": "The public IP address",
"type": "string",
"format": "ipv4"
},
"privateIpAddress": {
"description": "The private IP address",
"type": "string",
"format": "ipv4"
},
"ipAddresses": {
"description": "A listing of all IPv4 addresses associated with this Host",
"type": "array",
"items": {
"type": "string",
"format": "ipv4"
}
},
"ipv6Addresses": {
"description": "A listing of all IPv6 addresses associated with this Host",
"type": "array",
"items": {
"type": "string",
"format": "ipv6"
}
},
"macAddress": {
"description": "Primary MAC address",
"type": "string"
},
"platform": {
"description": "Operating System Platform",
"type": "string",
"enum": [
"darwin",
"linux",
"unix",
"windows",
"android",
"ios",
"embedded",
"other"
]
},
"osDetails": {
"description": "Operating System Full Details (e.g. macOS High Sierra version 10.13.6)",
"type": "string"
},
"osName": {
"description": "Operating System Name (e.g. macOS)",
"type": "string"
},
"osVersion": {
"description": "Operating System Version (e.g. 10.13.6)",
"type": "string"
},
"macAddresses": {
"description": "A listing of all MAC addresses associated with this Host",
"type": "array",
"items": {
"type": "string"
}
},
"physical": {
"description": "Indicates if this is a physical host, such as a physical server.",
"type": "boolean"
}
]
},
"required": ["hostname"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#HostAgent",
"description": "A software agent or sensor that runs on a host/endpoint.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
},
{
"properties": {
"function": {
"description": "The function of sensor/agent",
"type": "array",
"items": {
"type": "string",
"enum": [
"endpoint-compliance",
"endpoint-configuration",
"endpoint-protection",
"anti-malware",
"DLP",
"FIM",
"host-firewall",
"HIDS",
"log-monitor",
"activity-monitor",
"vulnerability-detection",
"container-security",
"other"
]
}
}
},
"required": ["function"]
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#HostAgent",
"description": "A software agent or sensor that runs on a host/endpoint.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
},
{
"properties": {
"function": {
"description": "The function of sensor/agent",
"type": "array",
"items": {
"type": "string",
"enum": [
"endpoint-compliance",
"endpoint-configuration",
"endpoint-protection",
"anti-malware",
"DLP",
"FIM",
"host-firewall",
"HIDS",
"log-monitor",
"activity-monitor",
"vulnerability-detection",
"container-security",
"other"
]
}
}
]
},
"required": ["function"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Network",
"description": "A network, such as an aws-vpc, aws-subnet, cisco-meraki-vlan.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Network",
"description": "A network, such as an aws-vpc, aws-subnet, cisco-meraki-vlan.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
},
{
"properties": {
"environment": {
"description": "The environment of network",
"type": "string",
"examples": [
"development",
"test",
"staging",
"production",
"private",
"wireless",
"guest",
"remote-access",
"administrative",
"other"
]
},
{
"properties": {
"environment": {
"description": "The environment of network",
"type": "string",
"examples": [
"development",
"test",
"staging",
"production",
"private",
"wireless",
"guest",
"remote-access",
"administrative",
"other"
]
},
"CIDR": {
"description": "The IPv4 network CIDR block (e.g. 0.0.0.0/0)",
"type": "string",
"pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(/([0-9]|[1-2][0-9]|3[0-2]))?$"
},
"CIDRv6": {
"description": "The IPv6 network CIDR block (e.g. ::/0)",
"type": "string",
"format": "ipv6"
},
"public": {
"description": "Indicates if the network is publicly accessible.",
"type": "boolean"
},
"internal": {
"description": "Indicates if this is an internal/private network.",
"type": "boolean"
},
"wireless": {
"description": "Indicates if this is a wireless network.",
"type": "boolean"
}
},
"required": ["CIDR", "public", "internal"]
"CIDR": {
"description": "The IPv4 network CIDR block (e.g. 0.0.0.0/0)",
"type": "string",
"pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(/([0-9]|[1-2][0-9]|3[0-2]))?$"
},
"CIDRv6": {
"description": "The IPv6 network CIDR block (e.g. ::/0)",
"type": "string",
"format": "ipv6"
},
"public": {
"description": "Indicates if the network is publicly accessible.",
"type": "boolean"
},
"internal": {
"description": "Indicates if this is an internal/private network.",
"type": "boolean"
},
"wireless": {
"description": "Indicates if this is a wireless network.",
"type": "boolean"
}
]
},
"required": ["CIDR", "public", "internal"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Service",
"description": "A service provided by a vendor.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#Service",
"description": "A service provided by a vendor.",
"type": "object",
"allOf": [
{
"$ref": "#Entity"
},
{
"properties": {
"category": {
"description": "The category of service, e.g. software, platform, infrastructure, other",
"type": "array",
"items": {
"type": "string",
"enum": ["software", "platform", "infrastructure", "other"]
}
},
{
"properties": {
"category": {
"description": "The category of service, e.g. software, platform, infrastructure, other",
"type": "array",
"items": {
"type": "string",
"enum": ["software", "platform", "infrastructure", "other"]
}
},
"endpoints": {
"description": "Array of service endpoints, e.g. ec2.amazonaws.com",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["category", "endpoints"]
"endpoints": {
"description": "Array of service endpoints, e.g. ec2.amazonaws.com",
"type": "array",
"items": {
"type": "string"
}
}
]
},
"required": ["category", "endpoints"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#User",
"description": "A user account/login to access certain systems and/or services. Examples include okta-user, aws-iam-user, ssh-user, local-user (on a host), etc.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"username": {
"description": "Username",
"type": "string"
},
"email": {
"description": "The email address associated with the user account",
"type": "string",
"format": "email"
},
"shortLoginId": {
"description": "The shortened login Id. For example, if the username is the full email address (first.last@company.com), the shortLoginId would be the part before @ (first.last).",
"type": "string"
},
"mfaEnabled": {
"description": "Specifies whether multi-factor authentication (MFA) is enabled for this user.",
"type": "boolean"
}
},
"required": ["username"]
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#User",
"description": "A user account/login to access certain systems and/or services. Examples include okta-user, aws-iam-user, ssh-user, local-user (on a host), etc.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"username": {
"description": "Username",
"type": "string"
},
"email": {
"description": "The email address associated with the user account",
"type": "string",
"format": "email"
},
"shortLoginId": {
"description": "The shortened login Id. For example, if the username is the full email address (first.last@company.com), the shortLoginId would be the part before @ (first.last).",
"type": "string"
},
"mfaEnabled": {
"description": "Specifies whether multi-factor authentication (MFA) is enabled for this user.",
"type": "boolean"
}
]
},
"required": ["username"]
}
]
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#UserGroup",
"description": "A user group, typically associated with some type of access control, such as a group in Okta or in Office365. If a UserGroup has an access policy attached, and all member Users of the UserGroup would inherit the policy.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"email": {
"description": "The group email address",
"type": "string",
"format": "email"
}
},
"required": []
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "#UserGroup",
"description": "A user group, typically associated with some type of access control, such as a group in Okta or in Office365. If a UserGroup has an access policy attached, and all member Users of the UserGroup would inherit the policy.",
"type": "object",
"allOf": [
{ "$ref": "#Entity" },
{
"properties": {
"email": {
"description": "The group email address",
"type": "string",
"format": "email"
}
]
},
"required": []
}
]
}
{
"name": "@jupiterone/data-model",
"version": "0.1.0",
"version": "0.2.0",
"main": "dist/index.js",

@@ -16,3 +16,3 @@ "files": [

"prebuild": "rm -rf dist/*",
"build": "tsc --project tsconfig.dist.json --declaration",
"build": "tsc --project tsconfig.dist.json --declaration && cp -R ./src/schemas ./dist/schemas",
"test": "jest",

@@ -23,8 +23,6 @@ "lint": "eslint src --ext .ts,.js",

"dependencies": {
"ajv": "^6.12.0",
"lodash.camelcase": "^4.3.0"
"ajv": "^6.12.0"
},
"devDependencies": {
"@types/jest": "^25.1.5",
"@types/lodash.camelcase": "^4.3.6",
"@types/node": "^13.11.0",

@@ -31,0 +29,0 @@ "@typescript-eslint/eslint-plugin": "^2.26.0",

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