Global Search (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

Search for objects in an application using a combination of keyword matching, tag filters, insight filters, object type filters, property filters, transaction filters, and sorting options.

URI

POST /rest/applications/{name}/search

Path parameters

name (string)

The application name. Must be properly encoded; back-quote character is not allowed.

Query parameters

date (string)

Optional. ISO-8601 datetime (e.g. 2024-01-15T00:00:00). When provided, restricts results to objects that were active at that point in time.

Request body

Content-Type: application/json

Minimal example

{
  "keyword": "getUserById",
  "pos": "any",
  "searchBy": ["Name"],
  "skip": 0,
  "limit": 25,
  "sortKey": "name",
  "sortOrder": "asc"
}

Full example

{
  "keyword": "UserService",
  "pos": "any",
  "searchBy": ["Name", "FullName"],
  "ignoreCase": true,
  "isRegex": false,
  "skip": 0,
  "limit": 25,
  "all": false,
  "sortKey": "name",
  "sortOrder": "asc",
  "objectSearchBy": "internal",
  "labels": ["critical"],
  "forceAllTags": 0,
  "objectTypes": ["Java Method", "Java Class"],
  "isTagsAndObjectTypes": false,
  "insightFilters": [
    { "category": "iso-5055-high", "rules": ["Avoid using SELECT *"] }
  ],
  "forceAllInsight": 1,
  "transactions": [
    { "value": "10000001", "label": "Login Transaction" }
  ],
  "forceAllTransactions": 0,
  "module": ["AuthModule"],
  "roles": ["persist"],
  "forceAllProperties": 1,
  "operations": [
    {
      "type": "integer",
      "description": "Cyclomatic Complexity",
      "id": "prop-cc-id",
      "operationValue": 10,
      "operation": "greaterThan"
    }
  ]
}

Request body fields

Field Type Required Description
keyword string No Text to search for. Empty string matches all objects.
searchBy []string Yes Properties to search in. Valid values: "Name", "FullName". At least one must be provided.
pos string No Keyword match position. One of: "any" (contains, default), "start" (starts with), "end" (ends with).
ignoreCase boolean No If true, the keyword match is case-insensitive. Default: false.
isRegex boolean No If true, keyword is treated as a regular expression. pos is ignored when regex is active. Default: false.

Pagination and sorting

Field Type Required Description
skip integer No* Number of results to skip. Must be ≥ 0. Required unless all is true.
limit integer No* Maximum number of results to return. Must be > 0. Required unless all is true.
all boolean No If true, bypasses skip/limit and returns all matching objects. Default: false.
sortKey string No Field to sort by. One of: "name", "fullname", "type". Default: "name".
sortOrder string No Sort direction: "asc" or "desc". Default: "asc".

Scope filters

Field Type Required Description
objectSearchBy string No Restricts to internal or external objects. One of: "internal" (objects with External = false or null), "external" (objects with External = true). Omit to include all objects.

Tag filters

Field Type Required Description
labels []string No List of tag names to filter by.
forceAllTags integer No Logical operator applied to labels. 0 = OR (any tag), 1 = AND (all tags), 2 = NOT (no matching tag). Default: 0.

Object type filters

Field Type Required Description
objectTypes []string No Filter to objects of the listed types (e.g. "Java Method", "SQL Table").
isTagsAndObjectTypes boolean No If true, both tag and object type conditions must hold (AND). If false, either condition is sufficient (OR). Default: false.

Insight filters

Field Type Required Description
insightFilters []InsightsFilter or []string No Insight categories (and optionally specific rules) to filter by. Accepts the new object format or legacy string array.
forceAllInsight integer No Logical operator applied to insightFilters. 0 = OR, 1 = AND, 2 = NOT. Default: 0.

InsightsFilter object:

Field Type Description
category string Insight category identifier (e.g. "iso-5055-high", "structural-flaw-critical").
rules []string Optional. Specific rule names within the category.

Transaction filters

Field Type Required Description
transactions []Transaction No List of transactions to scope the search to.
forceAllTransactions integer No Logical operator applied to transactions. 0 = OR (in any transaction), 1 = AND (in all transactions), 2 = NOT (in none of the transactions). Default: 0.

Transaction object:

Field Type Description
value string The transaction AipId.
label string The transaction display name.

Module and role filters

Field Type Required Description
module []string No Filter to objects belonging to the listed modules. Only active when forceAllProperties is 1 (AND).
roles []string No Filter to objects whose RoleName is one of the listed values.

Property (operations) filters

Field Type Required Description
operations []Operations No Property-level filter conditions.
forceAllProperties integer No Logical operator applied to operations and module filters. 0 = OR, 1 = AND. Default: 0.

Operations object:

Field Type Description
type string Property value type. One of: "string", "integer", "boolean", "enum".
description string Display name of the property.
id string Property identifier. Used when matching a single property.
IDs []string Alternative to id. Matches any property whose ID is in this list.
operationValue any The value to compare against. Type must match the type field. For "boolean", true maps to > 0 and false maps to = 0.
operation string Comparison operator. String: "contains", "beginsWith", "endsWith", "=". Integer: "lessThan", "greaterThan", "lessThanEqualTo", "greaterThanEqualTo", "=". Boolean/Enum: "=".
existence boolean If true, checks whether the property exists on the object regardless of its value.

Responses

application/json

Returns the total count of matching objects and the paginated result list.

{
  "count": 120,
  "objects": [
    {
      "id": "12345678",
      "data": {
        "Name": "getUserById",
        "FullName": "com.example.service.UserService.getUserById",
        "Type": "Java Method",
        "AipId": "12345678",
        "External": false,
        "RoleName": "select"
      }
    }
  ]
}

JSON representation

Property Type Description
count integer Total number of objects matching all filters, before pagination.
objects[].id string The internal node identifier.
objects[].data.Name string The object short name.
objects[].data.FullName string The fully-qualified object name (usually includes file path or package).
objects[].data.Type string The object type display name (e.g. "Java Method").
objects[].data.AipId string The AIP object identifier.
objects[].data.External boolean true if the object is external to the application; false or null if internal.
objects[].data.RoleName string The role assigned to the object, or null if none.

Error responses

Status Description
400 searchBy is missing or null.
400 pos is not one of "start", "end", "any", or "".
400 skip is negative (when all is false).
400 limit is zero or negative (when all is false).
404 Application not found.