Registry V3 Tree View
V3 tree view endpoints for hierarchical navigation
Lists immediate children of a specific node (package/version/folder). Returns child nodes for tree navigation.
Unique identifier for the node.
Unique identifier for the Harness account.
Unique identifier for the organization within the account.
Example: default or engineering_org
Unique identifier for the project within the organization.
Example: my_project or frontend_services
Cursor for pagination in tree view endpoints. Base64-encoded JSON containing pagination state.
Number of items to return per page in tree view.
50Filter for deleted items in tree view. Applied at the root (registry) level only,
where registries.registry_deleted_at is authoritative. Levels below the root always
return every node regardless of soft-delete state - use isDeleted on each node to
render deleted state. See TreeNodeItemV3.isDeleted for why per-node filtering is not
supported yet.
exclude_deletedPossible values: Collapses a run of single-child folders into one row, e.g. io/harness/platform/api
renders as one node instead of four levels. A collapsed row carries the deepest
folder's id (what an expand call must use) and a display name joining every segment
in the run. Collapsing stops at the first node with more than one child, and never
absorbs a file - the chain always ends at the last folder.
No-op for Docker and Helm: those tiers are synthetic (built from images/tags/manifest
references) and cannot form a single-child folder chain, so the parameter is accepted
and ignored rather than rejected. Not declared on /tree/roots - registries are never
collapsed into each other - and ignored if sent there.
falseResponse for tree view endpoints
Response body for tree view endpoints
Error response.
GET /api/v3/tree/nodes/{node_id}/children?account_identifier=text HTTP/1.1
Accept: */*
{
"items": [
{
"createdAt": 1,
"deletedAt": 1,
"hasChildren": true,
"id": "text",
"isDeleted": true,
"name": "text",
"packageType": "text",
"path": "text",
"type": "registry"
}
],
"pagination": {
"hasMore": true,
"nextCursor": "text",
"size": 1,
"total": 1
}
}Lists top-level packages/folders under a specific registry. Returns immediate children of the registry for tree navigation.
Unique identifier for the registry.
Unique identifier for the Harness account.
Unique identifier for the organization within the account.
Example: default or engineering_org
Unique identifier for the project within the organization.
Example: my_project or frontend_services
Cursor for pagination in tree view endpoints. Base64-encoded JSON containing pagination state.
Number of items to return per page in tree view.
50Filter for deleted items in tree view. Applied at the root (registry) level only,
where registries.registry_deleted_at is authoritative. Levels below the root always
return every node regardless of soft-delete state - use isDeleted on each node to
render deleted state. See TreeNodeItemV3.isDeleted for why per-node filtering is not
supported yet.
exclude_deletedPossible values: Collapses a run of single-child folders into one row, e.g. io/harness/platform/api
renders as one node instead of four levels. A collapsed row carries the deepest
folder's id (what an expand call must use) and a display name joining every segment
in the run. Collapsing stops at the first node with more than one child, and never
absorbs a file - the chain always ends at the last folder.
No-op for Docker and Helm: those tiers are synthetic (built from images/tags/manifest
references) and cannot form a single-child folder chain, so the parameter is accepted
and ignored rather than rejected. Not declared on /tree/roots - registries are never
collapsed into each other - and ignored if sent there.
falseResponse for tree view endpoints
Response body for tree view endpoints
Error response.
GET /api/v3/tree/registries/{registry_id}/nodes?account_identifier=text HTTP/1.1
Accept: */*
{
"items": [
{
"createdAt": 1,
"deletedAt": 1,
"hasChildren": true,
"id": "text",
"isDeleted": true,
"name": "text",
"packageType": "text",
"path": "text",
"type": "registry"
}
],
"pagination": {
"hasMore": true,
"nextCursor": "text",
"size": 1,
"total": 1
}
}Lists all registries at the root level with optional search and filters. Returns a hierarchical view of registries for tree navigation.
scope is only accepted here, and is resolved exactly as it is for ListRegistriesV3: the current space, plus its ancestors or descendants. It has no equivalent on the levels below, because those are already bounded to the single registry named in the path.
Unique identifier for the Harness account.
Unique identifier for the organization within the account.
Example: default or engineering_org
Unique identifier for the project within the organization.
Example: my_project or frontend_services
Scope of registries to list
- none – current space only (default) * ancestors – current space plus all parent spaces * descendants – current space plus all child spaces
If omitted,noneis assumed.
Cursor for pagination in tree view endpoints. Base64-encoded JSON containing pagination state.
Number of items to return per page in tree view.
50Filter for deleted items in tree view. Applied at the root (registry) level only,
where registries.registry_deleted_at is authoritative. Levels below the root always
return every node regardless of soft-delete state - use isDeleted on each node to
render deleted state. See TreeNodeItemV3.isDeleted for why per-node filtering is not
supported yet.
exclude_deletedPossible values: Search term to filter registries by name (case-insensitive substring match). Search is supported at the root (registry) level only - there is no search across artifacts, images, versions or files, since that requires scanning unbounded subtrees. Cross-node search is planned via the Elasticsearch-backed index.
Filter by registry type
Filter by package type
Response for tree view endpoints
Response body for tree view endpoints
Error response.
GET /api/v3/tree/roots?account_identifier=text HTTP/1.1
Accept: */*
{
"items": [
{
"createdAt": 1,
"deletedAt": 1,
"hasChildren": true,
"id": "text",
"isDeleted": true,
"name": "text",
"packageType": "text",
"path": "text",
"type": "registry"
}
],
"pagination": {
"hasMore": true,
"nextCursor": "text",
"size": 1,
"total": 1
}
}Last updated
Was this helpful?