back to home

stac-utils / stac-fastapi-elasticsearch-opensearch

Elasticsearch backend for stac-fastapi with Opensearch support.

66 stars
41 forks
38 issues
PythonShellGo Template

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing stac-utils/stac-fastapi-elasticsearch-opensearch in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/stac-utils/stac-fastapi-elasticsearch-opensearch)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

**Jump to:** Project Introduction | Quick Start | Table of Contents Sponsors & Supporters The following organizations have contributed time and/or funding to support the development of this project: Latest News • **01/11/2026: Hierarchical Catalog Support.** Sub-catalogs are now fully supported! Catalogs can now contain other catalogs for unlimited nesting levels. This enables complex organizational hierarchies with multi-parent support for both catalogs and collections. • **01/09/2026: Custom Index Mappings.** You can now customize Elasticsearch/OpenSearch index mappings directly via environment variables without changing source code. Use to merge custom field definitions (e.g., for STAC extensions like SAR or Cube) or to load mappings from a JSON file. See Custom Index Mappings for details. • **12/09/2025: Multi-Tenant Catalogs.** The is now in main! This enables a registry of catalogs and supports **poly-hierarchy** (collections belonging to multiple catalogs simultaneously). Enable it via . _Coming next: Support for nested sub-catalogs._ • **11/07/2025:** 🌍 The SFEOS STAC Viewer is now available at: https://healy-hyperspatial.github.io/sfeos-web. Use this site to examine your data and test your STAC API! • **10/24/2025:** Added pagination using Redis for efficient navigation. This feature allows users to navigate backwards through large result sets by storing pagination state in Redis. To use this feature, ensure Redis is configured (see Redis for navigation) and set in your environment. • **10/23/2025:** The environment variable was added to exclude fields from the endpoint. See docs. • **10/15/2025:** 🚀 SFEOS Tools v0.1.0 Released! - The new CLI is now available on PyPI • **10/15/2025:** Added command to **SFEOS-tools** for zero-downtime index updates when changing mappings or settings. The new command makes it easy to apply mapping changes, update index settings, or migrate to new index structures without any service interruption, ensuring high availability of your STAC API during maintenance operations. View Older News (Click to Expand) ------------- • **10/12/2025:** Collections search **bbox** functionality added! The collections search extension now supports bbox queries. Collections will need to be updated via the API or with the new **SFEOS-tools** CLI package to support geospatial discoverability. 🙏 Thanks again to **CloudFerro** for their sponsorship of this work! • **10/04/2025:** The **CloudFerro** logo has been added to the sponsors and supporters list above. Their sponsorship of the ongoing collections search extension work has been invaluable. This is in addition to the many other important changes and updates their developers have added to the project. • **09/25/2025:** v6.5.0 adds a new GET/POST /collections-search endpoint (disabled by default via ENABLE_COLLECTIONS_SEARCH_ROUTE) to avoid conflicts with the Transactions Extension, and enhances collections search with structured filtering (CQL2 JSON/text), query, and datetime filtering. These changes make collection discovery more powerful and configurable while preserving compatibility with transaction-enabled deployments. Project Introduction - What is SFEOS? SFEOS (stac-fastapi-elasticsearch-opensearch) is a high-performance, scalable API implementation for serving SpatioTemporal Asset Catalog (STAC) data - an enhanced GeoJSON format designed specifically for geospatial assets like satellite imagery, aerial photography, and other Earth observation data. This project enables organizations to: • **Efficiently catalog and search geospatial data** such as satellite imagery, aerial photography, DEMs, and other geospatial assets using Elasticsearch or OpenSearch as the database backend • **Implement standardized STAC APIs** that support complex spatial, temporal, and property-based queries across large collections of geospatial data • **Scale to millions of geospatial assets** with fast search performance through optimized spatial indexing and query capabilities • **Support OGC-compliant filtering** including spatial operations (intersects, contains, etc.) and temporal queries • **Perform geospatial aggregations** to analyze data distribution across space and time • **Enhanced collection search capabilities** with support for sorting and field selection This implementation builds on the STAC-FastAPI framework, providing a production-ready solution specifically optimized for Elasticsearch and OpenSearch databases. It's ideal for organizations managing large geospatial data catalogs who need efficient discovery and access capabilities through standardized APIs. Common Deployment Patterns stac-fastapi-elasticsearch-opensearch can be deployed in several ways depending on your needs: • **Containerized Application**: Run as a Docker container with connections to Elasticsearch/OpenSearch databases • **Serverless Function**: Deploy as AWS Lambda or similar serverless function with API Gateway • **Traditional Server**: Run on virtual machines or bare metal servers in your infrastructure • **Kubernetes**: Deploy as part of a larger microservices architecture with container orchestration The implementation is flexible and can scale from small local deployments to large production environments serving millions of geospatial assets. Technologies This project is built on the following technologies: STAC, stac-fastapi, FastAPI, Elasticsearch, Python, OpenSearch Table of Contents • stac-fastapi-elasticsearch-opensearch • Sponsors & Supporters • Latest News • Project Introduction - What is SFEOS? • Common Deployment Patterns • Technologies • Table of Contents • Collection Search Extensions • Catalogs Route • Documentation & Resources • SFEOS STAC Viewer • Package Structure • Examples • Performance • Direct Response Mode • Quick Start • Installation • Running Locally • Using Pre-built Docker Images • Using Docker Compose • Configuration Reference • Free-Text Search ( parameter) • Excluding Fields from Queryables • Date…