Data Pipeline Upgrade Overview and Compatibility
Overview
JupiterOne is upgrading the data pipeline used to bring data into JupiterOne. The project is intended to significantly improve data ingest performance, reducing the time needed to process incoming data and allow the graph to more quickly reflect the data sent from an integration.
There are very few functional changes that impact customers, but if you do make use of JupiterOne's APIs for sending custom data or manipulating data in the graph please review these documents carefully.
These changes will start rolling out to customers from Monday 28th April 2025
API Compatibility and Other Changes
The compatibility changes have been grouped into MAJOR, MEDIUM, and MINOR categories:
- MAJOR: Indicates a change in behavior that may significantly change API usage or APIs becoming unavailable
- MEDIUM: Covers changes where APIs change in behaviour but no particular actions are required from customers, or data in the graph may change in a way that impacts downstream processing
- MINOR: More minor changes, removal of undocumented or unused functionality, or additional metadata being added
CREATE_OR_UPDATE Sync Jobs MAJOR
The CREATE_OR_UPDATE
sync job mode will no longer be supported. Customers using the CREATE_OR_UPDATE
mode should use the PATCH
mode. More information on how to migrate to this mode is available here.
No Versioned Raw Data MEDIUM
The Persister APIs previously allowed fetching of Raw Data by version. This will no longer be supported, only the latest version of Raw Data is retained.
New UUIDv5 _id
Metadata MINOR
Existing objects _id
will be updated to a new, stable, deterministic UUIDv5. This UUID is derived from the _scope
and _key
of the object, i.e. the natural identifiers. Customers should not be relying on the _id
property being stable for a given entity prior to this change.
Duplicate _key
+ _scope
Constraints Enforced MINOR
Prior to this upgrade the system would partially tollerate entities that had duplicated _key
and _scope
combinations. The behaviour in this case was undefined. The new data pipeline will strictly enforce this constraint. Any duplicated _key
and _scope
data will be dropped at ingest time.
_scope
Required and Defaulted MINOR
The _scope
property was previously optional and the system would derive the scope through a combination of the data source and any _integrationInstanceId
that may have been provided. _scope
is now a required property, and will be set to a default value for certain routes, e.g. certain APIs will default to _scope = api
.
No PUT of Raw Data MINOR
It will no longer be possible to directly set the Raw Data for an entity using a PUT. The raw data must be ingested as part of a sync job and cannot be updated outside of that flow.
Invalid Relationships are Immediately Purged MINOR
Relationships that are no longer valid (i.e their source or target node is now deleted) will be immediately deleted from the graph and not retained as a "soft deleted" entity.
This change does not effect the data retention period of deleted entities, only relationships.
PATCH
Sync Jobs cannot target Relationships
PATCH
jobs will not support patching relationships. Either a full DIFF
mode sync job must be used or the updateRelationship
mutations via GraphQL.