I'd like to propose expanding the scope of the Children extension to support Item Interaction and Recursive Search on nodes.
The Problem: The "Leaf Node" Disconnect
Currently, the Children extension focuses on traversing the Containers (Catalogs/Collections).
- Workflow: User browses
Root -> Sub-Catalog -> Collection.
- The Break: Once the user reaches a
Collection (or a Catalog containing Items), the children paradigm stops. To see or search the data, the client must switch logic to the STAC API - Features endpoints (/items or /search).
The Missing Capability: "Search This Branch"
If a Catalog contains 100 sub-collections (e.g., a "Project" catalog), there is currently no standard way to "Search all items within this Project".
- Current Workaround: The client must crawl
/children, collect 100 Collection IDs, and send a massive POST /search query with collections: [id1, id2, ... id100]. This is inefficient and chatty.
Proposal: Child-Scoped Item Endpoints
We should define standard endpoints relative to any node (Catalog or Collection) that allow interacting with the Items contained within that branch of the tree.
1. Recursive Item Listing
GET .../{node}/children/items
- Behavior: Returns an ItemCollection of items contained in this node (and optionally its descendants).
- Use Case: "Show me a preview of data in this folder."
2. Recursive/Scoped Search
POST .../{node}/children/search
- Behavior: Performs a standard STAC Search, but implicitly scoped to the collections/items within the current node's hierarchy.
- Use Case: "Find all images with
cloud_cover < 10 inside the 'Forestry' catalog."
Why this is necessary
This transforms the extension from a simple "Link Lister" into a powerful Hierarchical Search Interface. It allows clients to treat any node in the tree as a "Virtual Root" for searching, without needing to know the complex graph structure underneath.
I'd like to propose expanding the scope of the Children extension to support Item Interaction and Recursive Search on nodes.
The Problem: The "Leaf Node" Disconnect
Currently, the Children extension focuses on traversing the Containers (Catalogs/Collections).
Root->Sub-Catalog->Collection.Collection(or a Catalog containing Items), thechildrenparadigm stops. To see or search the data, the client must switch logic to theSTAC API - Featuresendpoints (/itemsor/search).The Missing Capability: "Search This Branch"
If a Catalog contains 100 sub-collections (e.g., a "Project" catalog), there is currently no standard way to "Search all items within this Project".
/children, collect 100 Collection IDs, and send a massivePOST /searchquery withcollections: [id1, id2, ... id100]. This is inefficient and chatty.Proposal: Child-Scoped Item Endpoints
We should define standard endpoints relative to any node (Catalog or Collection) that allow interacting with the Items contained within that branch of the tree.
1. Recursive Item Listing
GET .../{node}/children/items2. Recursive/Scoped Search
POST .../{node}/children/searchcloud_cover < 10inside the 'Forestry' catalog."Why this is necessary
This transforms the extension from a simple "Link Lister" into a powerful Hierarchical Search Interface. It allows clients to treat any node in the tree as a "Virtual Root" for searching, without needing to know the complex graph structure underneath.