Metadata-Version: 2.1
Name: federated-collection-discovery
Version: 0.1.7
Summary: An application for discovering collections from multiple STAC APIs and/or CMRs
Author-email: Henry Rodman <henry@developmentseed.org>
License: MIT
Project-URL: homepage, https://github.com/developmentseed/federated-collection-discovery
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: pystac-client >=0.8.4
Requires-Dist: stac-fastapi-types >=3.0.0
Requires-Dist: pydantic-settings >=2.3.4
Requires-Dist: black >=24.4.2
Requires-Dist: httpx >=0.27.2
Requires-Dist: python-cmr >=0.11.0
Requires-Dist: fastapi >=0.111.1
Provides-Extra: aws_lambda
Requires-Dist: mangum >=0.17.0 ; extra == 'aws_lambda'
Provides-Extra: dev
Requires-Dist: jupyterlab >=4.2.5 ; extra == 'dev'
Requires-Dist: pre-commit >=4.0.1 ; extra == 'dev'
Requires-Dist: ruff >=0.6.9 ; extra == 'dev'
Requires-Dist: types-requests >=2.32.0.20241016 ; extra == 'dev'
Provides-Extra: test
Requires-Dist: pytest >=8.3.3 ; extra == 'test'
Requires-Dist: pytest-asyncio >=0.24.0 ; extra == 'test'
Requires-Dist: pytest-mock >=3.14.0 ; extra == 'test'
Requires-Dist: requests-mock >=1.12.1 ; extra == 'test'
Requires-Dist: asgi-lifespan >=2.1.0 ; extra == 'test'
Requires-Dist: pytest-recording >=0.13.2 ; extra == 'test'
Requires-Dist: pytest-cov >=5.0.0 ; extra == 'test'
Provides-Extra: uvicorn
Requires-Dist: uvicorn >=0.30.1 ; extra == 'uvicorn'

# Federated Collection Discovery

An application for discovering geospatial data collections from multiple
STAC APIs and/or CMRs.

## Installation

The package can be installed from pypi, optionally with `uvicorn` for
serving the application locally:

for `uvicorn`:

```shell
pip install federated-collection-discovery[uvicorn]
```

If you are going to run the application in an AWS Lambda function,
install the `aws_lambda` extras in the build context:

```shell
pip install federated-collection-discovery[aws_lambda]
```

## Usage

To run the FastAPI application, set the `FEDERATED_STAC_API_URLS` environment variable
and/or the `FEDERATED_CMR_URLS` environment variable, then launch it with `uvicorn`:

```shell
MAAP_API=https://stac.maap-project.org/
VEDA_API=https://openveda.cloud/api/stac/
ESA_API=https://catalogue.dataspace.copernicus.eu/stac
FEDERATED_STAC_API_URLS=${MAAP_API},${VEDA_API},${ESA_API} \
  uvicorn federated_collection_discovery.main:app --host 0.0.0.0 --port 8000
```

## Development

### Clone the repo

```shell
git clone git@github.com:developmentseed/federated-collection-discovery.git
cd federated-collection-discovery
```

### Install `uv`

Ensure you have uv installed. If not, install it:

```bash
# install uv

# unix
curl -LsSf https://astral.sh/uv/install.sh | sh

# or on windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
```

### Install `federated_collection_discovery`

Navigate to the `src/server` directory and install the dependencies (in a virtual
environment) using Poetry:

```bash
uv sync --all-extras
```
