Skip to content

uc-apx search

uc-apx search <term> scans every node in the app for a case-insensitive substring match. It searches node IDs, all property values, and SQL/PL-SQL code blocks recursively. A single broad term can match hundreds of nodes; use --kind to narrow by construct type or --group to get a kind-level summary first.

uc-apx search <term> [flags]
FlagTypeDefaultDescription
--kindstringFilter results to a specific construct kind (e.g. region, lov, page, pageItem)
--limitint0Cap the number of flat results returned (0 = unlimited; ignored in grouped mode)
--groupReturn a grouped-by-kind summary instead of a flat list
FlagTypeDefaultDescription
--app-dirstring.Path to the APEX application directory
--jsonOutput in JSON format instead of TOON

--kind and --group are mutually exclusive — passing both returns an error.


A specific term that matches only a handful of nodes returns a flat array directly.

Terminal window
uc-apx --app-dir examples/brookstrut search food-types
[2]{kind,id,name,file,line}:
pageItem,P12_ITEM_TYPE,P12_ITEM_TYPE,pages/p00012.apx,140
lov,food-types,FOOD TYPES,shared-components/lovs.apx,62
JSON output
[
{
"kind": "pageItem",
"id": "P12_ITEM_TYPE",
"name": "P12_ITEM_TYPE",
"file": "pages/p00012.apx",
"line": 140
},
{
"kind": "lov",
"id": "food-types",
"name": "FOOD TYPES",
"file": "shared-components/lovs.apx",
"line": 62
}
]

A broad term like store matches 173 nodes across 24 kinds. The output switches automatically to a grouped summary — each group shows up to 3 example nodes.

Terminal window
uc-apx --app-dir examples/brookstrut search store
totalCount: 173
groups[24]:
- kind: column
count: 54
examples[3]{id,name,file,line}:
STORE,STORE,pages/p00002-sales-history-content-row.apx,344
STORE_ID,STORE_ID,pages/p00002-sales-history-content-row.apx,354
STORE_NAME,STORE_NAME,pages/p00003.apx,212
- kind: region
count: 31
examples[3]{id,name,file,line}:
sales-history,Sales History,pages/p00002-sales-history-content-row.apx,181
store-performance,Store Performance,pages/p00003.apx,52
store-products,Store Products,pages/p00003.apx,241
- kind: entry
count: 16
...
JSON output (truncated to top 2 groups)
{
"totalCount": 173,
"groups": [
{
"kind": "column",
"count": 54,
"examples": [
{ "id": "STORE", "name": "STORE", "file": "pages/p00002-sales-history-content-row.apx", "line": 344 },
{ "id": "STORE_ID", "name": "STORE_ID", "file": "pages/p00002-sales-history-content-row.apx", "line": 354 },
{ "id": "STORE_NAME", "name": "STORE_NAME", "file": "pages/p00003.apx", "line": 212 }
]
},
{
"kind": "region",
"count": 31,
"examples": [
{ "id": "sales-history", "name": "Sales History", "file": "pages/p00002-sales-history-content-row.apx", "line": 181 },
{ "id": "store-performance", "name": "Store Performance", "file": "pages/p00003.apx", "line": 52 },
{ "id": "store-products", "name": "Store Products", "file": "pages/p00003.apx", "line": 241 }
]
}
]
}

Once you know which kind you want from the grouped summary, use --kind to get all matching nodes of that type as a flat array.

Terminal window
uc-apx --app-dir examples/brookstrut search store --kind region
[31]{kind,id,name,file,line}:
region,sales-history,Sales History,pages/p00002-sales-history-content-row.apx,181
region,store-performance,Store Performance,pages/p00003.apx,52
region,store-products,Store Products,pages/p00003.apx,241
region,facets,Facets,pages/p00006-stores-report-content-row.apx,47
region,stores,Stores,pages/p00006-stores-report-content-row.apx,135
...
JSON output (first 3 results)
[
{ "kind": "region", "id": "sales-history", "name": "Sales History", "file": "pages/p00002-sales-history-content-row.apx", "line": 181 },
{ "kind": "region", "id": "store-performance", "name": "Store Performance", "file": "pages/p00003.apx", "line": 52 },
{ "kind": "region", "id": "store-products", "name": "Store Products", "file": "pages/p00003.apx", "line": 241 }
]

Use --group to explicitly request the grouped schema regardless of how many results there are. Useful for a quick kind breakdown before deciding where to look.

Terminal window
uc-apx --app-dir examples/brookstrut search food --group
totalCount: 4
groups[3]:
- kind: entry
count: 2
examples[2]{id,name,file,line}:
food,food,shared-components/lovs.apx,74
food,food,shared-components/lovs.apx,231
- kind: lov
count: 1
examples[1]{id,name,file,line}:
food-types,FOOD TYPES,shared-components/lovs.apx,62
- kind: pageItem
count: 1
examples[1]{id,name,file,line}:
P12_ITEM_TYPE,P12_ITEM_TYPE,pages/p00012.apx,140
JSON output
{
"totalCount": 4,
"groups": [
{
"kind": "entry",
"count": 2,
"examples": [
{ "id": "food", "name": "food", "file": "shared-components/lovs.apx", "line": 74 },
{ "id": "food", "name": "food", "file": "shared-components/lovs.apx", "line": 231 }
]
},
{
"kind": "lov",
"count": 1,
"examples": [
{ "id": "food-types", "name": "FOOD TYPES", "file": "shared-components/lovs.apx", "line": 62 }
]
},
{
"kind": "pageItem",
"count": 1,
"examples": [
{ "id": "P12_ITEM_TYPE", "name": "P12_ITEM_TYPE", "file": "pages/p00012.apx", "line": 140 }
]
}
]
}

Search scans inside code blocks, so it finds table names referenced in queries — not just component names or IDs.

Terminal window
uc-apx --app-dir examples/customers search eba_cust_customers --kind region
[38]{kind,id,name,file,line}:
region,customer-summary-with-references-no-products,Customer Summary (with References & No Products),pages/p00001-dashboard.apx,48
region,customer-summary-with-references-products-but-no-issues,"Customer Summary (with References, Products, But No Issues)",pages/p00001-dashboard.apx,173
region,customer-summary-with-references-products-issues,"Customer Summary (with References, Products, & Issues)",pages/p00001-dashboard.apx,313
...
JSON output (first 2 results)
[
{
"kind": "region",
"id": "customer-summary-with-references-no-products",
"name": "Customer Summary (with References & No Products)",
"file": "pages/p00001-dashboard.apx",
"line": 48
},
{
"kind": "region",
"id": "customer-summary-with-references-products-but-no-issues",
"name": "Customer Summary (with References, Products, But No Issues)",
"file": "pages/p00001-dashboard.apx",
"line": 173
}
]