Message handler for eoAPI components. A middleware tool that listens to sources for messages and forwards them to output receivers.
- Python 3.12 or higher
Install using uv:
uv add eoapi-notifierThe notifier provides a CLI tool to run the message handler with a YAML configuration file.
Run the notifier with a configuration file:
eoapi-notifier config.yamlSet logging level:
eoapi-notifier --log-level DEBUG config.yamlShow help:
eoapi-notifier --helpShow version:
eoapi-notifier --versionCreate a YAML configuration file to specify sources (where messages come from) and outputs (where messages are sent). Here's a basic example:
# Sources: Define where notifications come from
sources:
- type: pgstac
config:
host: localhost
port: 5432
database: postgis
user: postgres
password: password
# Outputs: Define where notifications are sent
outputs:
- type: mqtt
config:
broker_host: localhost
broker_port: 1883Both outputs publish OGC PubSub CloudEvents-JSON messages (types such as org.ogc.api.collection.item.create). The pgSTAC source can enrich events with item geometry (include_geometry: true, default). Optional top-level filters restrict forwarding by collection, operation (create/replace/delete), and bbox.
See examples/config.yaml for configuration and examples/output-create.json / examples/output-delete.json for sample MQTT and CloudEvents payloads.
# Install with Helm
helm install eoapi-notifier oci://ghcr.io/developmentseed/charts/eoapi-notifier
# With custom values
helm install eoapi-notifier oci://ghcr.io/developmentseed/charts/eoapi-notifier -f values.yamlSee Helm Chart README for configuration options.
pgstac: Monitor PostgreSQL/pgSTAC database changes
mqtt: Publish OGC CloudEvents-JSON to an MQTT brokercloudevents: POST OGC CloudEvents-JSON to an HTTP endpoint (or KnativeK_SINK)
For development setup, testing, and creating new plugins, see the Development Guide.
We welcome contributions to eoAPI-notifier! Whether you want to fix a bug, add a new feature, or create a custom plugin, your contributions are appreciated.
- Found a bug or have a feature request? Open an issue.
- Have a fix, improvement, or you want to add a new plugin? Submit a pull request with your changes.
Please make sure to read the Development Guide for setup instructions and coding standards.
This project is licensed under the MIT License - see the LICENSE file for details.