Skip to content

Conversation

@jonhealy1
Copy link
Collaborator

@jonhealy1 jonhealy1 commented Dec 15, 2025

Related Issue(s):

  • None

Description:

Added

  • Environment variable VALIDATE_QUERYABLES to enable/disable validation of queryables in search/filter requests. When set to true, search requests will be validated against the defined queryables, returning an error for any unsupported fields. Defaults to false for backward compatibility.#532
  • Environment variable QUERYABLES_CACHE_TTL to configure the TTL (in seconds) for caching queryables. Default is 1800 seconds (30 minutes) to balance performance and freshness of queryables data. #532
  • Added optional /catalogs route support to enable federated hierarchical catalog browsing and navigation. #547
  • Added DELETE /catalogs/{catalog_id}/collections/{collection_id} endpoint to support removing collections from catalogs. When a collection belongs to multiple catalogs, it removes only the specified catalog from the collection's parent_ids. When a collection belongs to only one catalog, the collection is deleted entirely. #554
  • Added parent_ids internal field to collections to support multi-catalog hierarchies. Collections can now belong to multiple catalogs, with parent catalog IDs stored in this field for efficient querying and management. #554
  • Added GET /catalogs/{catalog_id}/children endpoint implementing the STAC Children extension for efficient hierarchical catalog browsing. Supports type filtering (?type=Catalog|Collection), pagination, and returns numberReturned/numberMatched counts at the top level. #558
  • Implemented context-aware dynamic linking: catalogs use dynamic rel="children" links pointing to the /catalogs/{id}/children endpoint, and collections have context-dependent rel="parent" links (pointing to catalog when accessed via /catalogs/{id}/collections/{id}, or root when accessed via /collections/{id}). Catalog links are only injected in catalog context. This eliminates race conditions and ensures consistency with parent_ids relationships. #559

Changed

  • Have opensearch datetime, geometry and collections fields defined as constant strings #553

Fixed

  • Fix unawaited coroutine in stac_fastapi.core.core. #551
  • Parse ES_TIMEOUT environment variable as an integer. #556
  • Implemented "Smart Unlink" logic in delete_catalog: when cascade=False (default), collections are unlinked from the catalog and become root-level orphans if they have no other parents, rather than being deleted. When cascade=True, collections are deleted entirely. This prevents accidental data loss and supports poly-hierarchy scenarios where collections belong to multiple catalogs. #557
  • Fixed delete_catalog to use reverse lookup query on parent_ids field instead of fragile link parsing. This ensures all collections are found and updated correctly, preventing ghost relationships where collections remain tagged with deleted catalogs, especially in large catalogs or pagination scenarios. #557

PR Checklist:

  • Code is formatted and linted (run pre-commit run --all-files)
  • Tests pass (run make test)
  • Documentation has been updated to reflect changes, if applicable
  • Changes are added to the changelog

@jonhealy1 jonhealy1 changed the title Minor version update version to v6.8.0 Minor version update to v6.8.0 Dec 15, 2025
@jonhealy1 jonhealy1 marked this pull request as ready for review December 15, 2025 06:36
@jonhealy1 jonhealy1 merged commit 2b8cb54 into stac-utils:main Dec 15, 2025
8 checks passed
@jonhealy1 jonhealy1 deleted the v6.8.0 branch December 15, 2025 06:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant