Download OpenAPI specification:
Relation types use relation_type:{kn_id}/{relation_type_id}. Reads and
lists require view_detail; data reads require query_data; updates and
deletes use modify and delete. Lists and searches are filtered before
total and pagination. See ../knowledge-network-authorization.md.
Resource IDs use lowercase letters, digits, underscores, and hyphens, start with a letter or digit, and contain at most 128 characters. Resource names contain at most 128 Unicode characters.
With strict_mode=true, indirect relation mappings read the backing Vega schema under the
source contract's query_data operation; they do not introduce an implicit view_detail
requirement. Main-branch publication reuses the effective delegator selected by Proxy
preflight. Missing bindings return 400; a current-user denial returns 403; controlled lookup
failures return 502, and timeout/unavailable dependencies return 503 without exposing the
downstream response body.
| kn_id required | string Business knowledge network ID |
| name_pattern | string Fuzzy-match by relation type name. Empty by default. |
| sort | string Enum: "update_time" "name" Sort field. Defaults to update_time. |
| direction | string Enum: "asc" "desc" Sort direction. Supported values are asc and desc. Defaults to desc. |
| offset | integer <int64> Offset of the first returned item. Must be greater than or equal to 0. Defaults to 0. |
| limit | integer <int64> Maximum number of returned items per page. Supported paginated values are 1 to 1000; -1 disables pagination. Defaults to 10. |
| tag | string Exact-match by tag. Empty by default. |
| source_object_type_id | string Source object type ID |
| target_object_type_id | string Target object type ID |
| bound_object_type_id | Array of strings Bound object type ID. Finds relation types whose source or target equals this object type. Multiple values are supported. |
| branch | string Default: "main" Branch. Defaults to main. |
{- "entries": [
- {
- "id": "string",
- "name": "string",
- "tags": [
- "string"
], - "comment": "string",
- "icon": "string",
- "color": "string",
- "branch": "string",
- "kn_id": "string",
- "source_object_type_id": "string",
- "target_object_type_id": "string",
- "type": "direct",
- "mapping_rules": [
- {
- "target_property": {
- "name": "string",
- "display_name": "string"
}, - "source_property": {
- "name": "string",
- "display_name": "string"
}
}
], - "reverse_name": "string",
- "aliases": [
- "string"
], - "cardinality": "one_to_one",
- "constraints": {
- "required": [
- "source"
], - "characteristics": [
- "symmetric"
]
}, - "lifecycle": {
- "status": "active",
- "reason": "string",
- "replaced_by": "string"
}, - "importance": "primary",
- "fallback_for": "string",
- "verification": "confirmed",
- "creator": {
- "id": "a0f02238-6cec-11f0-82bb-fa1c4529a151",
- "type": "user",
- "name": "Administrator"
}, - "create_time": 0,
- "updater": {
- "id": "a0f02238-6cec-11f0-82bb-fa1c4529a151",
- "type": "user",
- "name": "Administrator"
}, - "update_time": 0,
- "source_object_type": {
- "id": "string",
- "name": "string",
- "branch": "string",
- "icon": "string",
- "color": "string"
}, - "target_object_type": {
- "id": "string",
- "name": "string",
- "branch": "string",
- "icon": "string",
- "color": "string"
}, - "module_type": "string",
- "operations": [
- "string"
]
}
], - "total_count": 0
}| kn_id required | string Business knowledge network ID |
| branch | string Default: "main" Branch. Defaults to main. |
| import_mode | string Default: "normal" Enum: "normal" "overwrite" "ignore" Import mode. normal returns an error for a concept with the same name; overwrite replaces it; ignore skips it. Defaults to normal. |
| confirm_clear_declarations | boolean Default: false With overwrite, a file that does not carry the BKN spec 3.0 declarations of an existing relation type,
such as a 2.x package or an old JSON export, would clear them. Without this parameter the request is
refused with 409 BknBackend.RelationType.DeclarationsWouldBeCleared, whose details list the cleared
declarations ( |
| strict_mode | boolean Default: true Whether to validate dependency existence. Defaults to true. When unset, falls back to the deprecated validate_dependency. |
| x-http-method-override required | string Enum: "POST" "GET" Override request headers |
required | Array of objects (ReqRelationType) Relation type details |
[- {
- "id": "service_2_pod",
- "name": "contains",
- "tags": [
- "topology"
], - "comment": "Relationship from a service to a pod; the service contains the pod",
- "icon": "",
- "color": "",
- "branch": "main",
- "source_object_type_id": "service",
- "target_object_type_id": "pod",
- "type": "direct",
- "mapping_rules": [
- {
- "source_property": {
- "name": "service_name"
}, - "target_property": {
- "name": "service_name"
}
}
], - "module_type": "relation_type"
}, - {
- "id": "pod_2_node",
- "name": "belongs to",
- "tags": [
- "topology"
], - "comment": "Relationship from a pod to a node; the pod belongs to the node",
- "icon": "",
- "color": "",
- "branch": "main",
- "source_object_type_id": "pod",
- "target_object_type_id": "node",
- "type": "direct",
- "mapping_rules": [
- {
- "source_property": {
- "name": "pod_node_name"
}, - "target_property": {
- "name": "node_name"
}
}
], - "module_type": "relation_type"
}
]{- "entries": [
- {
- "id": "pod_2_node_test",
- "name": "belongs to 2",
- "tags": [
- "topology"
], - "comment": "Relationship from a pod to a node; the pod belongs to the node",
- "icon": "",
- "color": "",
- "branch": "main",
- "detail": "",
- "creator": "a0f02238-6cec-11f0-82bb-fa1c4529a151",
- "create_time": 1758339660119,
- "updater": "a0f02238-6cec-11f0-82bb-fa1c4529a151",
- "update_time": 1758339660119,
- "kn_id": "kn_system_incident_event_network",
- "source_object_type_id": "pod",
- "source_object_type": {
- "id": "",
- "name": "",
- "icon": "",
- "color": ""
}, - "target_object_type_id": "node",
- "target_object_type": {
- "id": "",
- "name": "",
- "icon": "",
- "color": ""
}, - "type": "direct",
- "mapping_rules": [
- {
- "source_property": {
- "name": "pod_node_name"
}, - "target_property": {
- "name": "node_name"
}
}
], - "IfNameModify": false,
- "module_type": "relation_type"
}
], - "total_count": 2,
- "next_cursor": "cursor-relation-types-1"
}| kn_id required | string Business knowledge network ID |
| rt_id required | string Relation type ID |
| branch | string Branch. Uses main when omitted. |
| strict_mode | boolean Default: true Whether to strictly validate dependencies. When true, validates dependencies such as related object types and data views. When false, skips this validation. |
| name required | string <= 128 characters Name |
| tags | Array of strings Tags used for business identification |
| comment | string Comment |
| icon | string Icon |
| color | string Color |
| branch required | string Branch ID |
| source_object_type_id | string <= 128 characters ^[a-z0-9][a-z0-9_-]{0,127}$ Source object type ID |
| target_object_type_id | string <= 128 characters ^[a-z0-9][a-z0-9_-]{0,127}$ Target object type ID |
| type | string Enum: "direct" "indirect" "filtered_cross_join" Relation type |
Array of DirectMappingRules (objects) or IndirectMappingRule (object) or FilteredCrossJoinMappingRule (object) Associated matching rule. For direct, this is a Mapping array; for filtered_cross_join, this is a FilteredCrossJoinMappingRule. | |
| reverse_name | string BKN spec 3.0. The name of the relation read from the target to the source, with the rules of name. Empty is none. |
| aliases | Array of strings BKN spec 3.0. Other names of the relation type. Empty is none. |
| cardinality | string Enum: "one_to_one" "one_to_many" "many_to_one" "many_to_many" BKN spec 3.0. How many counterparts an instance of each end has, from source to target. Empty is not declared; a filtered_cross_join relation can only be many_to_many. |
object (RelationConstraints) BKN spec 3.0. The Relation Constraints section of the relation type. | |
object (Lifecycle) BKN spec 3.0. Whether the definition is still in use. Without it the definition is active. status deprecated needs a reason; replaced_by names an active definition of the same kind. | |
| importance | string Enum: "primary" "secondary" BKN spec 3.0. primary (the default, returned as empty) or secondary. |
| fallback_for | string BKN spec 3.0. On a secondary relation, the ID of the primary relation it stands in for when a source instance has no primary counterpart. Empty is none. |
| verification | string Enum: "confirmed" "unconfirmed" BKN spec 3.0. confirmed when the relation joins on real identifiers, unconfirmed when it joins by inferred rules. Empty is not declared. |
{- "name": "string",
- "tags": [
- "string"
], - "comment": "string",
- "icon": "string",
- "color": "string",
- "branch": "string",
- "source_object_type_id": "string",
- "target_object_type_id": "string",
- "type": "direct",
- "mapping_rules": [
- {
- "target_property": {
- "name": "string",
- "display_name": "string"
}, - "source_property": {
- "name": "string",
- "display_name": "string"
}
}
], - "reverse_name": "string",
- "aliases": [
- "string"
], - "cardinality": "one_to_one",
- "constraints": {
- "required": [
- "source"
], - "characteristics": [
- "symmetric"
]
}, - "lifecycle": {
- "status": "active",
- "reason": "string",
- "replaced_by": "string"
}, - "importance": "primary",
- "fallback_for": "string",
- "verification": "confirmed"
}{- "error_code": "string",
- "description": "string",
- "error_details": null,
- "metadata": { }
}| rt_ids required | Array of strings Relation type ID |
| kn_id required | string Business knowledge network ID |
| branch | string Default: "main" Branch. Defaults to main. |
{- "entries": [
- {
- "id": "string",
- "name": "string",
- "tags": [
- "string"
], - "comment": "string",
- "icon": "string",
- "color": "string",
- "branch": "string",
- "kn_id": "string",
- "source_object_type_id": "string",
- "source_object_type": {
- "id": "string",
- "name": "string",
- "icon": "string",
- "color": "string",
- "branch": "string"
}, - "target_object_type_id": "string",
- "target_object_type": {
- "id": "string",
- "name": "string",
- "icon": "string",
- "color": "string",
- "branch": "string"
}, - "type": "direct",
- "mapping_rules": [
- {
- "target_property": {
- "name": "string",
- "display_name": "string"
}, - "source_property": {
- "name": "string",
- "display_name": "string"
}
}
], - "reverse_name": "string",
- "aliases": [
- "string"
], - "cardinality": "one_to_one",
- "constraints": {
- "required": [
- "source"
], - "characteristics": [
- "symmetric"
]
}, - "lifecycle": {
- "status": "active",
- "reason": "string",
- "replaced_by": "string"
}, - "importance": "primary",
- "fallback_for": "string",
- "verification": "confirmed",
- "creator": {
- "id": "a0f02238-6cec-11f0-82bb-fa1c4529a151",
- "type": "user",
- "name": "Administrator"
}, - "create_time": 0,
- "updater": {
- "id": "a0f02238-6cec-11f0-82bb-fa1c4529a151",
- "type": "user",
- "name": "Administrator"
}, - "update_time": 0,
- "module_type": "string",
- "operations": [
- "string"
]
}
]
}| kn_id required | string Business knowledge network ID |
| rt_ids required | Array of strings Relation type ID |
| branch | string Default: "main" Branch. Defaults to main. |
{- "error_code": "string",
- "description": "string",
- "error_details": null,
- "metadata": { }
}Explore concept paths from a source
| kn_id required | any |
| branch | string Default: "main" Branch. Defaults to main. |
| x-http-method-override required | string Value: "GET" Must be GET. The request is sent as POST so the query can be carried in the body. |
| concept_groups | Array of strings Concept group ID array |
| source_object_type_id required | string Source object type ID |
| path_length required | integer Path length. Must not exceed 3. |
| direction required | string Enum: "forward" "backward" "bidirectional" Direction: forward, backward, or bidirectional. |
{- "source_object_type_id": "comment",
- "direction": "backward",
- "path_length": 1
}[- {
- "object_types": [
- {
- "id": "comment",
- "name": "comment",
- "data_source": {
- "type": "resource",
- "id": "1995407615886381058",
- "name": "comment table"
}, - "data_properties": [
- {
- "name": "c_browserused",
- "display_name": "c_browserused",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "c_browserused",
- "type": "text",
- "display_name": "c_browserused"
}, - "condition_operations": [
- "==",
- "!=",
- "in",
- "not_in",
- "match"
]
}, - {
- "name": "c_commentid",
- "display_name": "c_commentid",
- "type": "integer",
- "comment": "",
- "mapped_field": {
- "name": "c_commentid",
- "type": "integer",
- "display_name": "c_commentid"
}
}, - {
- "name": "c_content",
- "display_name": "c_content",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "c_content",
- "type": "text",
- "display_name": "c_content"
}, - "condition_operations": [
- "!=",
- "in",
- "not_in",
- "match",
- "=="
]
}, - {
- "name": "c_creationdate",
- "display_name": "c_creationdate",
- "type": "datetime",
- "comment": "",
- "mapped_field": {
- "name": "c_creationdate",
- "type": "datetime",
- "display_name": "c_creationdate"
}
}, - {
- "name": "c_length",
- "display_name": "c_length",
- "type": "integer",
- "comment": "",
- "mapped_field": {
- "name": "c_length",
- "type": "integer",
- "display_name": "c_length"
}
}, - {
- "name": "c_locationip",
- "display_name": "c_locationip",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "c_locationip",
- "type": "text",
- "display_name": "c_locationip"
}, - "condition_operations": [
- "match",
- "==",
- "!=",
- "in",
- "not_in"
]
}
], - "primary_keys": [
- "c_commentid"
], - "display_key": "c_browserused"
}, - {
- "id": "comment",
- "name": "comment",
- "data_source": {
- "type": "resource",
- "id": "1995407615886381058",
- "name": ""
}, - "data_properties": [
- {
- "name": "c_browserused",
- "display_name": "c_browserused",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "c_browserused"
}
}, - {
- "name": "c_commentid",
- "display_name": "c_commentid",
- "type": "integer",
- "comment": "",
- "mapped_field": {
- "name": "c_commentid"
}
}, - {
- "name": "c_content",
- "display_name": "c_content",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "c_content"
}
}, - {
- "name": "c_creationdate",
- "display_name": "c_creationdate",
- "type": "datetime",
- "comment": "",
- "mapped_field": {
- "name": "c_creationdate"
}
}, - {
- "name": "c_length",
- "display_name": "c_length",
- "type": "integer",
- "comment": "",
- "mapped_field": {
- "name": "c_length"
}
}, - {
- "name": "c_locationip",
- "display_name": "c_locationip",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "c_locationip"
}
}
], - "primary_keys": [
- "c_commentid"
], - "display_key": "c_browserused"
}
], - "relation_types": [
- {
- "relation_type_id": "comment_replyof_comment",
- "relation_type": {
- "id": "comment_replyof_comment",
- "name": "comment_replyof_comment",
- "source_object_type_id": "comment",
- "target_object_type_id": "comment",
- "type": "indirect",
- "mapping_rules": {
- "backing_data_source": {
- "type": "resource",
- "id": "1995407615768940546"
}, - "source_mapping_rules": [
- {
- "source_property": {
- "name": "c_commentid"
}, - "target_property": {
- "name": "c_commentid1"
}
}
], - "target_mapping_rules": [
- {
- "target_property": {
- "name": "c_commentid"
}, - "source_property": {
- "name": "c_commentid2"
}
}
]
}
}, - "source_object_type_id": "comment",
- "target_object_type_id": "comment",
- "direction": "backward"
}
], - "length": 1
}, - {
- "object_types": [
- {
- "id": "comment",
- "name": "comment",
- "data_source": {
- "type": "resource",
- "id": "1995407615886381058",
- "name": "comment table"
}, - "data_properties": [
- {
- "name": "c_browserused",
- "display_name": "c_browserused",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "c_browserused",
- "type": "text",
- "display_name": "c_browserused"
}, - "condition_operations": [
- "==",
- "!=",
- "in",
- "not_in",
- "match"
]
}, - {
- "name": "c_commentid",
- "display_name": "c_commentid",
- "type": "integer",
- "comment": "",
- "mapped_field": {
- "name": "c_commentid",
- "type": "integer",
- "display_name": "c_commentid"
}
}, - {
- "name": "c_content",
- "display_name": "c_content",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "c_content",
- "type": "text",
- "display_name": "c_content"
}, - "condition_operations": [
- "!=",
- "in",
- "not_in",
- "match",
- "=="
]
}, - {
- "name": "c_creationdate",
- "display_name": "c_creationdate",
- "type": "datetime",
- "comment": "",
- "mapped_field": {
- "name": "c_creationdate",
- "type": "datetime",
- "display_name": "c_creationdate"
}
}, - {
- "name": "c_length",
- "display_name": "c_length",
- "type": "integer",
- "comment": "",
- "mapped_field": {
- "name": "c_length",
- "type": "integer",
- "display_name": "c_length"
}
}, - {
- "name": "c_locationip",
- "display_name": "c_locationip",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "c_locationip",
- "type": "text",
- "display_name": "c_locationip"
}, - "condition_operations": [
- "match",
- "==",
- "!=",
- "in",
- "not_in"
]
}
], - "primary_keys": [
- "c_commentid"
], - "display_key": "c_browserused"
}, - {
- "id": "person",
- "name": "person",
- "data_source": {
- "type": "resource",
- "id": "1995407615877992449",
- "name": ""
}, - "data_properties": [
- {
- "name": "p_birthday",
- "display_name": "p_birthday",
- "type": "date",
- "comment": "",
- "mapped_field": {
- "name": "p_birthday",
- "type": "date",
- "display_name": "p_birthday"
}
}, - {
- "name": "p_browserused",
- "display_name": "p_browserused",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "p_browserused",
- "type": "text",
- "display_name": "p_browserused"
}, - "condition_operations": [
- "==",
- "!=",
- "match"
]
}, - {
- "name": "p_creationdate",
- "display_name": "p_creationdate",
- "type": "datetime",
- "comment": "",
- "mapped_field": {
- "name": "p_creationdate",
- "type": "datetime",
- "display_name": "p_creationdate"
}
}, - {
- "name": "p_firstname",
- "display_name": "p_firstname",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "p_firstname",
- "type": "text",
- "display_name": "p_firstname"
}, - "condition_operations": [
- "==",
- "!=",
- "match"
]
}, - {
- "name": "p_gender",
- "display_name": "p_gender",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "p_gender",
- "type": "text",
- "display_name": "p_gender"
}, - "condition_operations": [
- "==",
- "!=",
- "match"
]
}, - {
- "name": "p_lastname",
- "display_name": "p_lastname",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "p_lastname",
- "type": "text",
- "display_name": "p_lastname"
}, - "condition_operations": [
- "==",
- "!=",
- "match"
]
}, - {
- "name": "p_locationip",
- "display_name": "p_locationip",
- "type": "text",
- "comment": "",
- "mapped_field": {
- "name": "p_locationip",
- "type": "text",
- "display_name": "p_locationip"
}, - "condition_operations": [
- "==",
- "!=",
- "match"
]
}, - {
- "name": "p_personid",
- "display_name": "p_personid",
- "type": "integer",
- "comment": "",
- "mapped_field": {
- "name": "p_personid",
- "type": "integer",
- "display_name": "p_personid"
}
}
], - "primary_keys": [
- "p_personid"
], - "display_key": "p_birthday"
}
], - "relation_types": [
- {
- "relation_type_id": "person_likes_comment",
- "relation_type": {
- "id": "person_likes_comment",
- "name": "person_likes_comment",
- "source_object_type_id": "person",
- "target_object_type_id": "comment",
- "type": "indirect",
- "mapping_rules": {
- "source_mapping_rules": [
- {
- "target_property": {
- "name": "p_personid"
}, - "source_property": {
- "name": "p_personid"
}
}
], - "target_mapping_rules": [
- {
- "source_property": {
- "name": "c_commentid"
}, - "target_property": {
- "name": "c_commentid"
}
}
], - "backing_data_source": {
- "type": "resource",
- "id": "1995407615873798146"
}
}
}, - "source_object_type_id": "comment",
- "target_object_type_id": "person",
- "direction": "backward"
}
], - "length": 1
}
]Validates relation type dependency existence only and does not write data. It verifies dependencies such as source and target object types and indirect data views.
Response: HTTP 200 uses valid and detail for ordinary model validation. Strict dependency failures return the documented 400/403/502/503 error envelope, whose error_details includes a safe dependency_kind.
Internal API: POST /api/bkn-backend/in/v1/.../relation-types/validation. The caller is resolved from headers and OAuth is not required.
| kn_id required | string Business knowledge network ID |
| branch | string Branch. Uses main when omitted. |
| strict_mode | boolean Default: true Whether to strictly validate dependencies. Defaults to true. |
| import_mode | string Default: "normal" Enum: "normal" "ignore" "overwrite" Same as the create relation type API. Defines validation semantics for existing relation type ID conflicts; name conflicts follow create behavior. |
| confirm_clear_declarations | boolean Default: false With overwrite, a file that does not carry the BKN spec 3.0 declarations of an existing relation type,
such as a 2.x package or an old JSON export, would clear them. Without this parameter the request is
refused with 409 BknBackend.RelationType.DeclarationsWouldBeCleared, whose details list the cleared
declarations ( |
| entries | Array of objects Relation type list to validate. Its structure is the same as the create API. |
{- "entries": [
- { }
]
}{- "valid": true,
- "detail": "string"
}