Create Custom Node (RESERVED)
RESERVED: The keyword RESERVED annotation means that the API is available for use but is not yet part of the officially supported specification. Its behavior, interface, or output may change in future releases without backward compatibility guarantees.
Overview
Create a custom node within a custom view. A custom node groups objects based on filter criteria such as transaction membership, object type, insight association, or name pattern. Multiple filters can be combined using AND logic.
This operation is supported for dynamic custom views only. Static custom views are retained in read-only mode.
URI
POST /rest/applications/{name}/custom-views/nodes
Path parameters
name (string)
This parameter identifies the analyzed application. The application name must be properly encoded if required. Character back-quote is not allowed.
Request Body
{
"name": "Cloud Blockers in Payment Service",
"modeId": "abc123-def456",
"searchQuery": {
"page": 1,
"limit": 100,
"name": "",
"fullName": "",
"mode": "child",
"labels": [],
"apiLevels": [],
"objectTypes": ["Java Method", "Java Class"],
"insightFilters": [
{
"category": "CloudReady - Blocker",
"rules": ["Avoid using java.lang.Runtime.exec()"]
}
],
"excludedIds": [],
"operations": [],
"forceAllTags": 0,
"forceAllInsight": 1,
"forceAllAPILevels": true,
"forceAllProperties": 1,
"forceAllDocuments": 0,
"isTagsAndObjectTypes": true,
"pos": "start",
"searchBy": ["Name"],
"isRegex": false,
"ignoreCase": true,
"searchType": "string",
"objectSearchBy": "",
"sortKey": "Name",
"sortOrder": "asc",
"documents": [],
"module": [],
"transactions": []
}
}
Request Body Properties
| Property | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Name for the custom node. |
| modeId | string | Yes | ID of the custom view to add the node to. The referenced view must be Dynamic. |
| searchQuery | object | Yes | Filter criteria defining which objects to include. |
Search Query Properties
| Property | Type | Description |
|---|---|---|
| objectTypes | []string | Filter by object types (e.g., “Java Method”, “Java Class”). |
| insightFilters | []object | Filter by insights. Each filter has category and rules. |
| transactions | []object | Filter by transaction membership. Each has label and value (transaction ID). |
| name | string | Filter by object name pattern. |
| objectSearchBy | string | Scope filter: “”, “internal”, “external”, or “all”. |
| forceAllInsight | integer | Set to 1 to require all insight filters to match (AND logic). |
| isTagsAndObjectTypes | boolean | Whether to combine tags and object types with AND logic. |
Insight Filter Object
| Property | Type | Description |
|---|---|---|
| category | string | Insight category in format “InsightType - Value”. |
| rules | []string | List of specific rule names within the insight category. |
Transaction Filter Object
| Property | Type | Description |
|---|---|---|
| label | string | Transaction identifier. |
| value | string | Transaction identifier (same). |
Responses
application/json
Example:
{
"success": {
"id": "node-xyz789",
"name": "Cloud Blockers in Payment Service",
"objectCount": 42
}
}
JSON representation
| Property | Type | Description |
|---|---|---|
| success.id | string | The unique identifier for the created node. |
| success.name | string | The node name. |
| success.objectCount | integer | Number of objects matching the filter criteria. |
Usage Examples
Filter by Object Type
{
"name": "All Java Methods",
"modeId": "view-123",
"searchQuery": {
"objectTypes": ["Java Method"],
"forceAllInsight": 0
}
}
Filter by Transaction
{
"name": "Payment Transaction Objects",
"modeId": "view-123",
"searchQuery": {
"transactions": [{"label": "12345", "value": "12345"}],
"forceAllInsight": 0
}
}
Filter by Insight
{
"name": "Cloud Migration Blockers",
"modeId": "view-123",
"searchQuery": {
"insightFilters": [
{
"category": "CloudReady - Blocker",
"rules": ["Avoid using java.lang.Runtime.exec()"]
}
],
"forceAllInsight": 1
}
}
Combined Filters (AND logic)
{
"name": "Java Methods with Cloud Issues",
"modeId": "view-123",
"searchQuery": {
"objectTypes": ["Java Method"],
"insightFilters": [
{
"category": "CloudReady - Medium",
"rules": ["Avoid hardcoded IP addresses"]
}
],
"forceAllInsight": 1,
"isTagsAndObjectTypes": true
}
}