Skip to main content

CLI tools for managing stac-fastapi-elasticsearch-opensearch deployments

Project description

SFEOS Tools

CLI tools for managing stac-fastapi-elasticsearch-opensearch deployments.

Downloads GitHub contributors GitHub stars GitHub forks PyPI version STAC

Table of Contents

Installation

For Elasticsearch

pip install sfeos-tools[elasticsearch]

Or for local development:

pip install -e sfeos_tools[elasticsearch]

For OpenSearch

pip install sfeos-tools[opensearch]

Or for local development:

pip install -e sfeos_tools[opensearch]

For Development (both backends)

pip install sfeos-tools[dev]

Or for local development:

pip install -e sfeos_tools[dev]

Usage

After installation, the sfeos-tools command will be available:

# View available commands
sfeos-tools --help

# View version
sfeos-tools --version

Commands

add-bbox-shape

Adds a bbox_shape field to existing collections for spatial search support. This migration is required for collections created before spatial search was added. Collections created or updated after this feature will automatically have the bbox_shape field.

sfeos-tools add-bbox-shape --backend [elasticsearch|opensearch] [options]

Options:

  • --backend: Database backend to use (required, choices: elasticsearch, opensearch)
  • --host: Database host (default: localhost or ES_HOST env var)
  • --port: Database port (default: 9200 for ES, 9202 for OS, or ES_PORT env var)
  • --use-ssl/--no-ssl: Use SSL connection (default: true or ES_USE_SSL env var)
  • --user: Database username (default: ES_USER env var)
  • --password: Database password (default: ES_PASS env var)

reindex

Reindexes all STAC indexes to the next version and updates aliases. This command performs the following actions:

  • Creates/updates index templates
  • Reindexes collections and item indexes to a new version
  • Applies asset migration script for compatibility
  • Switches aliases to the new indexes
sfeos-tools reindex --backend [elasticsearch|opensearch] [options]

Options:

  • --backend: Database backend to use (required, choices: elasticsearch, opensearch)
  • --host: Database host (default: localhost or ES_HOST env var)
  • --port: Database port (default: 9200 for ES, 9202 for OS, or ES_PORT env var)
  • --use-ssl/--no-ssl: Use SSL connection (default: true or ES_USE_SSL env var)
  • --user: Database username (default: ES_USER env var)
  • --password: Database password (default: ES_PASS env var)
  • --yes: Skip confirmation prompt

Examples:

# Reindex Elasticsearch with custom host and no SSL
sfeos-tools reindex --backend elasticsearch --host localhost --port 9200 --no-ssl --yes

# Reindex OpenSearch with default settings
sfeos-tools reindex --backend opensearch --yes

load-data

Load STAC collections and items from local JSON files into a STAC API instance. This command is useful for:

  • Populating a new STAC API deployment with test data
  • Migrating data between STAC API instances
  • Bulk loading STAC collections and items
sfeos-tools load-data --base-url <stac-api-url> [options]

Options:

  • --base-url: Base URL of the STAC API (required)
  • --collection-id: ID of the collection to create/update (default: test-collection)
  • --data-dir: Directory containing collection.json and feature collection files (default: sample_data/)
  • --use-bulk: Use bulk insert method for items (faster for large datasets)

Data Directory Structure:

Your data directory should contain:

  • collection.json: STAC collection definition
  • One or more .json files: Feature collections with STAC items

Examples:

# Load data from default directory
sfeos-tools load-data --base-url http://localhost:8080

# Load with custom collection ID and bulk insert
sfeos-tools load-data \
  --base-url http://localhost:8080 \
  --collection-id my-collection \
  --use-bulk

# Load from custom directory
sfeos-tools load-data \
  --base-url http://localhost:8080 \
  --data-dir /path/to/stac/data \
  --collection-id production-data

Development

To develop sfeos-tools locally:

# Install in editable mode with dev dependencies
pip install -e ./sfeos_tools[dev]

# Run the CLI
sfeos-tools --help

# Run tests
pytest

# Format code
pre-commit install
pre-commit run --all-files

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sfeos_tools-0.2.0.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sfeos_tools-0.2.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file sfeos_tools-0.2.0.tar.gz.

File metadata

  • Download URL: sfeos_tools-0.2.0.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for sfeos_tools-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c429bac5244841c2b2c674fef5b2dfbf5db4ee5e501b4f14b29229b008186761
MD5 a6dacb2fb504cb61c846c3b7f270cb51
BLAKE2b-256 682f3530d3e61a9a8ac948c500dcccdcf8d623cf9f8d0d744b2263cd111e52f5

See more details on using hashes here.

File details

Details for the file sfeos_tools-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: sfeos_tools-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for sfeos_tools-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 733063f35392d5387640a9e805174d39780018f91daa443cc7a148fb0e105ee4
MD5 cda17f28c639498c054f56fcf21dfa3f
BLAKE2b-256 19c01bd44845f31cac5dad25481df64a7eec0e921dd0d3d78cb8db54010d2bf8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page