Create, Save and Update Dataset Relationship JSON Examples

Create, Save and Update Dataset Relationship JSON Examples

Table of Contents

Complete JSON Example

This JSON example applies to Create Dataset Relationship, Save Dataset Relationship, and Update Dataset Relationship APIs and can be used as a reference for request body object.

JSON Body

{ "iro":{ "entityRepositDate":"", "ownerAppId":"398949229", "linkedEntityId":"", "type":"DRD_OBJECT", "specific":{ "drdObject":{ "layout":{ "nodes":[ { "top":"414.8125", "left":"80", "width":"200", "id":"17098110604382127032016158635163_6", "collapse":"false", "height":"300" }, { "top":"87.8125", "left":"285", "width":"200", "id":"17098114278439127077099135156813_2", "collapse":"false", "height":"300" }, { "top":"78.8125", "left":"21", "width":"200", "id":"17098107735558127085088197661322_1", "collapse":"false", "height":"300" }, { "top":"3.2125", "left":"561", "width":"200", "id":"17098107920041127081041159911730_5", "collapse":"false", "height":"300" } ] }, "panelProperties":{ }, "nodes":[ { "id":"17098110604382127032016158635163_6", "relDataset":{ "aliasName":"DimProduct Small", "id":"17098110604382127032016158635163", "type":"" } }, { "id":"17098114278439127077099135156813_2", "relDataset":{ "aliasName":"FactSales", "id":"17098114278439127077099135156813", "type":"FACT" } }, { "id":"17098107735558127085088197661322_1", "relDataset":{ "aliasName":"DimCustomer", "id":"17098107735558127085088197661322", "type":"" } }, { "id":"17098107920041127081041159911730_5", "relDataset":{ "aliasName":"DimDate", "id":"17098107920041127081041159911730", "type":"" } } ], "lineType":"NOODLE", "viewType":"GRAPHICAL", "relations":[ { "sourceId":"17098110604382127032016158635163_6", "name":"undefined", "join":{ "type":"INNER", "joinBy":[ { "node1Key":{ "id":"", "type":"", "content":"productkey" }, "node1SecondaryKey":{ "id":"", "type":"" }, "operator":"EQUAL_TO", "node2SecondaryKey":{ "id":"", "type":"" }, "node2Key":{ "id":"", "type":"", "content":"productkey" } } ] }, "type":"ONE_TO_MANY", "node2Id":"17098114278439127077099135156813_2", "node1Id":"17098110604382127032016158635163_6" }, { "sourceId":"17098114278439127077099135156813_2", "name":"undefined", "join":{ "type":"INNER", "joinBy":[ { "node1Key":{ "id":"", "type":"", "content":"customerkey" }, "node1SecondaryKey":{ "id":"", "type":"" }, "operator":"EQUAL_TO", "node2SecondaryKey":{ "id":"", "type":"" }, "node2Key":{ "id":"", "type":"", "content":"customerkey" } } ] }, "type":"ONE_TO_MANY", "node2Id":"17098107735558127085088197661322_1", "node1Id":"17098114278439127077099135156813_2" }, { "sourceId":"17098107920041127081041159911730_5", "name":"undefined", "join":{ "type":"INNER", "joinBy":[ { "node1Key":{ "id":"", "type":"", "content":"datekey" }, "node1SecondaryKey":{ "id":"", "type":"" }, "operator":"EQUAL_TO", "node2SecondaryKey":{ "id":"", "type":"" }, "node2Key":{ "id":"", "type":"", "content":"orderdatekey" } } ] }, "type":"ONE_TO_MANY", "node2Id":"17098114278439127077099135156813_2", "node1Id":"17098107920041127081041159911730_5" } ], "layoutProperty":{ "panelDetails":{ "files":{ "style":{ }, "id":"files" }, "datasets":{ "style":{ }, "id":"datasets" }, "properties":{ "style":{ }, "id":"properties" } }, "columnDetails":[ { "panels":[ ], "style":{ "width":224 } }, { "panels":[ ], "style":{ } } ] } } }, "folderId":"folder_17504177963919127045012149779917", "designSource":"DESIGNER", "ownerAppName":"parva.jain", "common":{ "compatibilityVersion":"1", "desc":"", "tags":"" }, "entityState":"", "name":"parva Relationship", "isPublic":true, "subType":"", "repositDate":"01/12/2026 17:06:02 IST", "id":"17504178000665127098015115855971", "folderName":"parvademo", "accessRights":"1", "categoryId":"folder_17504177963919127045012149779917" } }

JSON Field Definitions

Field

Type

Description

Possible Values

Example

iro

JSON Object

Root wrapper containing DRD objects

DRD JSONobject

{...}

iro.id

String

Unique system-generated identifier for the DRD. Used to reference this DRD in API calls, relationships, and semantic models

Any valid system-generated ID string

"17785818880175127014040150037850"

iro.name

String

Human-readable display name of the DRD. This name appears in the UI and is used for identification. Must be unique within a folder

Any valid non-empty string (no special characters like / \ : * ? " < > |)

"Sanity_DRD_ON_MultiFact copy 1"

iro.type

String

Internal entity classification. Used by the system to distinguish DRDs from other entity types

"DRD_OBJECT"

"DRD_OBJECT"

iro.subType

String

Further classification of the entity. Typically empty for DRDs

""

""

iro.folderId

String

Unique identifier of the folder containing this DRD

Folder GUID with folder_ prefix

"folder_16774887564612127062080176677386"

iro.folderName

String

Human-readable name of the folder containing this DRD

Any valid folder name

"Sanity_Suite"

iro.categoryId

String

Same as folderId. Used for categorization

Folder GUID with folder_ prefix

"folder_16774887564612127062080176677386"

iro.isPublic

Boolean

Indicates whether the DRD is publicly accessible to all users

true, false

true

iro.entityState

String

Current state of the entity in the workflow

"ACTIVE" - Entity is active,
"SUSPEND" - Entity is suspended

""

iro.designSource

String

Indicates how the DRD was created

"DESIGNER", "KYVOS_DIALOG", "QUICK_DATA_MODELLER"

"DESIGNER"

iro.ownerAppId

String

Unique identifier of the user who owns this DRD

User ID string

"351003706"

iro.ownerAppName

String

Username of the DRD owner

Username string

"admin"

iro.accessRights

String

Access permission level for the current user

-1 = DENIED ("Deny"),
0 = READ ("Read Only"),
1 = WRITE ("Read And Write"),
-2 = IMPLICIT_READ ("Implicit Read")

"1"

iro.repositDate

String

Stores the repository save timestamp of the DRD in formatted date-time string format along with timezone information.

Formatted date string

"05/12/2026 16:01:28 IST"

iro.entityRepositDate

String

Epoch timestamp of repository date

Epoch milliseconds or "null"

"1778502757348"

iro.linkedEntityId

String

ID of any linked entity (e.g., semantic model)

Entity ID or ""

""

iro.common

Object

Common metadata properties

Object with desc, tags, version

{...}

iro.common.compatibilityVersion

String

Schema version for backward compatibility

"1", "2", "3"

"3"

iro.common.desc

String

User-provided description of the DRD

Any text

""

iro.common.tags

String

User-defined tags for categorization and search

Comma-separated tags

""

iro.specific

Object

Container for DRD-specific configuration

Object containing drdObject

{...}

iro.specific.drdObject

Object

Main DRD configuration object containing nodes, relations, and layout

DRD configuration object

{...}

iro.specific.drdObject.lineType

String

Visual style of relationship lines in the designer

"NOODLE", "STRAIGHT"

"NOODLE"

iro.specific.drdObject.viewType

String

View mode of the DRD designer interface

"GRAPHICAL", "TABULAR"

"GRAPHICAL"

iro.specific.drdObject.panelProperties

Object

Configuration for UI panels in the designer

{} or panel config object

{}

iro.specific.drdObject.nodes

Array of Object

List of dataset nodes included in this DRD

Array of node objects

[...]

iro.specific.drdObject.nodes[].id

String

Unique identifier for the node within this DRD

Format: datasetId + "_" + index

"14697760002691127040031128139982_4"

iro.specific.drdObject.nodes[].relDataset

Object

Information about the related dataset

Dataset details object

{...}

iro.specific.drdObject.nodes[].relDataset.id

String

Unique identifier of the source dataset

Dataset GUID

"16087236856722127012014164522755"

iro.specific.drdObject.nodes[].relDataset.aliasName

String

Display name/alias for the dataset in this DRD

Any string

"Unit_History_Fact"

iro.specific.drdObject.nodes[].relDataset.type

String

Classification of the dataset node type

"FACT",
"BRIDGE",
"DIMENSION",
"FACT_PARTITIONED"

"FACT"

iro.specific.drdObject.relations

Array of Object

List of relationships (joins) between dataset nodes

Array of relation objects

[...]

iro.specific.drdObject.relations[].name

String

Optional name for the relationship

Any string or ""

""

iro.specific.drdObject.relations[].sourceId

String

Source node ID (typically same as node1Id)

Node ID

"14697760002691127040031128139982_4"

iro.specific.drdObject.relations[].node1Id

String

First/left node ID in the relationship

Node ID

"14697760002691127040031128139982_4"

iro.specific.drdObject.relations[].node2Id

String

Second/right node ID in the relationship

Node ID

"14701198255374127083010127448719_1"

iro.specific.drdObject.relations[].type

String

Cardinality type of the relationship

"ONE_TO_MANY", "MANY_TO_MANY"

"ONE_TO_MANY"

iro.specific.drdObject.relations[].join

Object

Join configuration details

Join object

{...}

iro.specific.drdObject.relations[].join.type

String

SQL join type for the relationship

"INNER", "LEFT_OUTER", "RIGHT_OUTER", "FULL_OUTER", "CROSS"

"INNER"

iro.specific.drdObject.relations[].join.joinBy

Array of Object

List of column mappings for the join

Array of joinBy objects

[...]

iro.specific.drdObject.relations[].join.joinBy[].operator

String

Comparison operator for the join condition

"EQUAL_TO", "BETWEEN", "GREATER_THAN", "LESS_THAN", "GREATER_THAN_EQUAL_TO", "LESS_THAN_EQUAL_TO"

"EQUAL_TO"

iro.specific.drdObject.relations[].join.joinBy[].node1Key

Object

Column key from the first/left node

Key object

{...}

iro.specific.drdObject.relations[].join.joinBy[].node1Key.id

String

Column ID (typically empty)

Column ID or ""

""

iro.specific.drdObject.relations[].join.joinBy[].node1Key.type

String

Column type (typically empty)

Type string or ""

""

iro.specific.drdObject.relations[].join.joinBy[].node1Key.content

String

Column name from the first dataset

Column name

"ship_to_id"

iro.specific.drdObject.relations[].join.joinBy[].node2Key

Object

Column key from the second/right node

Key object

{...}

iro.specific.drdObject.relations[].join.joinBy[].node2Key.id

String

Column ID (typically empty)

Column ID or ""

""

iro.specific.drdObject.relations[].join.joinBy[].node2Key.type

String

Column type (typically empty)

Type string or ""

""

iro.specific.drdObject.relations[].join.joinBy[].node2Key.content

String

Column name from the second dataset

Column name

"ship_to_id"

iro.specific.drdObject.relations[].join.joinBy[].node1SecondaryKey

Object

Secondary key from first node (used for BETWEEN operator)

Key object

{"id": "", "type": ""}

iro.specific.drdObject.relations[].join.joinBy[].node2SecondaryKey

Object

Secondary key from second node (used for BETWEEN operator)

Key object

{"id": "", "type": ""}

iro.specific.drdObject.layout

Object

Stores visual layout configuration for the DRD designer, such as node positions, dimensions, and collapse state. Applicable only for Graphical View mode and not used in Tabular View mode.

Layout object

{...}

iro.specific.drdObject.layout.nodes

Array of Object

Position and size information for each node

Array of layout node objects

[...]

iro.specific.drdObject.layout.nodes[].id

String

Node ID (must match a node in nodes[])

Node ID

"14697760002691127040031128139982_4"

iro.specific.drdObject.layout.nodes[].left

String

Horizontal position from left edge in pixels

Numeric string

"395"

iro.specific.drdObject.layout.nodes[].top

String

Vertical position from top edge in pixels

Numeric string

"24"

iro.specific.drdObject.layout.nodes[].width

String

Width of the node box in pixels

Numeric string

"200"

iro.specific.drdObject.layout.nodes[].height

String

Height of the node box in pixels

Numeric string

"222"

iro.specific.drdObject.layout.nodes[].collapse

String

Whether the node is collapsed in the UI

Copyright Kyvos, Inc. 2026. All rights reserved.