This KB and attached document is intended for DXO2 customers and advanced users who want to leverage advanced service modeling capabilities using REST APIs. Specifically, it explains:
• How to enable Manual Discovery in a DXO2 Service definition
• How to control graph traversal behavior using traverseQueries
• How to enable Transaction discovery using followTransactions
• How these configurations fit into a complete DXO2 Service definition
DX O2
This approach is typically used when:
• Auto-discovery is not sufficient
• Customers want precise control over CI relationships
• Services must be built programmatically or via automation
Manual Discovery allows users to explicitly define how DXO2 should traverse inventory
relationships to build a service topology.
Instead of relying purely on automatic discovery, the user specifies:
• Which relationships to follow
• In which direction
• How deep the traversal should go
• Whether traversal steps are optional or mandatory
This is configured using the traverseQueries block inside a service's serviceContent.
The traverseQueries array defines graph traversal rules used during service discovery
3.1 Supported Traversal Parameters
Parameter Required Description
semantic Yes Semantic relationship name as defined in inventory (e.g.,contains, runs_on)
displayName No Human-readable name for the traversal step
direction No Direction of traversal: FORWARD (default), BACKWARD, ANY
repeat No Number of times this traversal step is repeated (default: 1)
repeatMin No Minimum number of repeats that must satisfy filters (default =
repeat)
optional No If true, traversal behaves like a LEFT JOIN; otherwise
INNER JOIN
keepBaseContent No Retains base-level entities in service content
keepLevelContent No Retains intermediate-level entities
next No Nested traversal steps (array of traverseQueries)
3.2 Direction Semantics
Direction Behavior
FORWARD Traverse from source → target (default)
BACKWARD Traverse from target → source
ANY Traverse in both directions
3.3 Optional Traversal Behavior
• optional = false (default)
o Traversal works like an INNER JOIN
o All traversal steps from leaf to root must match
• optional = true
o Traversal works like a LEFT JOIN
o Only parent rules up to root must match
This is useful when some relationships may not exist for all entities.
"traverseQueries": [
{
"displayName": "App to System",
"semantic": "contains",
"repeat": 1,
"direction": "BACKWARD",
"keepBaseContent": true,
"keepLevelContent": true,
"next": null
}
]
Explanation
• Traverses the contains relationship
• Moves backward in the inventory graph
• Includes both base and intermediate entities in service topology
DXO2 allows services to automatically discover transactions associated with discovered
entities.
5.1 Configuration Option
Transaction discovery is enabled using the options block:
"options": {
"followTransactions": true,
"includeExperience": false
}
Option Details
Option Description
followTransactions Enables transaction discovery for the service
includeExperience Enables experience-level modeling (optional)
Setting followTransactions: true is sufficient to enable transaction discovery
Below is a complete Service definition with Manual Discovery and Transaction Enablement clearly highlighted.
"vertices": [
{
"attributes": {
"type": "saService",
"name": "my_custom_service",
"serviceType": "Service",
"state": "ACTIVE",
"maintenance": false,
"situationsIncludeChildServices": false,
"serviceContent": [
{
"query": [
{
"attributeName": "app_name",
"attributeValue": "my_custom_app",
"operator": "IN"
}
],
// ===== MANUAL DISCOVERY CONFIGURATION =====
"traverseQueries": [
{
"displayName": "App to System",
"semantic": "contains",
"repeat": 1,
"direction": "BACKWARD",
"keepBaseContent": true,
"keepLevelContent": true,
"next": null
}
],
// ===== TRANSACTION ENABLEMENT =====
"options": {
"followTransactions": true,
"includeExperience": false
}
}
],
"root_service": null,
"tags": [],
"location": "",
"description": "",
"customProperties": [],
"customMetrics": [],
"metrics": []
}
}
],
"edges": []
}
• Manual Discovery gives full control over service topology creation
• traverseQueries define how inventory relationships are traversed
• direction, repeat, and optional control traversal precision
• Transactions are enabled simply by setting followTransactions: true
• This approach is ideal for advanced service modeling, automation, and custom onboarding flows