feat: add nodeId to Dataset, DatasetVersion, and Job API response models#3102
Open
psaikaushik wants to merge 2 commits intoMarquezProject:mainfrom
Open
feat: add nodeId to Dataset, DatasetVersion, and Job API response models#3102psaikaushik wants to merge 2 commits intoMarquezProject:mainfrom
nodeId to Dataset, DatasetVersion, and Job API response models#3102psaikaushik wants to merge 2 commits intoMarquezProject:mainfrom
Conversation
Adds a computed `nodeId` field to the Dataset, DatasetVersion, and Job response models. This allows API consumers to directly use the nodeId to query the Lineage API without having to construct it manually. - Dataset: returns `dataset:<namespace>:<name>` - DatasetVersion: returns `dataset:<namespace>:<name>#<version>` - Job: returns `job:<namespace>:<name>` Closes MarquezProject#1461
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a computed
nodeIdfield to theDataset,DatasetVersion, andJobAPI response models. This allows API consumers to directly use thenodeIdto query the Lineage API without having to manually construct it.Closes #1461
Changes
Dataset.javaAdded
getNodeId()method that returnsNodeId.of(id), producing a nodeId in the format:DatasetVersion.javaAdded
getNodeId()method that returns a version-qualified nodeId:Job.javaAdded
getNodeId()method that returnsNodeId.of(id), producing a nodeId in the format:Example API Response (before vs. after)
Before:
{ "id": { "namespace": "my-namespace", "name": "my-dataset" }, "type": "DB_TABLE", "name": "my-dataset", ... }After:
{ "id": { "namespace": "my-namespace", "name": "my-dataset" }, "type": "DB_TABLE", "name": "my-dataset", "nodeId": "dataset:my-namespace:my-dataset", ... }Design Decisions
nodeIdis derived from existing fields (id,namespace,name,version) viagetNodeId(), so no database changes are needed.NodeIdclass: Leverages the existingNodeId.of()factory methods that are already used in the lineage graph construction.JobVersion, but there is no dedicatedJobVersionservice model — job version data is served through theJobmodel. ThenodeIdonJobcovers this use case.Tests
Added
NodeIdOnModelsTest.javawith tests verifying:dataset:namespace:namedataset:namespace:name#uuidjob:namespace:name