Skip to content

Conversation

wietzesuijker
Copy link
Collaborator

STAC registration, augmentation, and workflow submission scripts.

⚠️ Depends on infrastructure - merge #2 first

Stack: Part 2 of 5

What's included

  • register_stac.py: STAC item registration with S3→HTTPS rewriting
    • Automatic retry with exponential backoff
    • Configurable timeouts via HTTP_TIMEOUT, RETRY_ATTEMPTS, RETRY_MAX_WAIT
    • Supports create/update/upsert modes
  • augment_stac_item.py: Adds visualization links (XYZ tiles, TileJSON)
    • Configurable timeout via HTTP_TIMEOUT
  • submit_via_api.py: Submit workflows via Argo API for testing
    • Configurable timeout via HTTP_TIMEOUT

Reliability features

  • Retry with exponential backoff on transient failures (tenacity)
  • Configurable timeouts via environment variables
  • Workflow step timeouts: 1h convert, 5min register/augment

Review notes

These scripts are called by the Argo Workflows from PR #2

Add complete Argo Workflows infrastructure for geozarr pipeline with automated AMQP event triggering.

Workflow pipeline:
- Convert: Sentinel-2 Zarr → GeoZarr (cloud-optimized)
- Register: Create STAC item with metadata
- Augment: Add visualization links (XYZ tiles, TileJSON)

Event-driven automation:
- AMQP EventSource subscribes to RabbitMQ queue
- Sensor triggers workflows on incoming messages
- RBAC configuration for secure execution

Configuration:
- Python dependencies (pyproject.toml, uv.lock)
- Pre-commit hooks (ruff, mypy, yaml validation)
- TTL cleanup (24h auto-delete completed workflows)
Add STAC registration, augmentation, and workflow submission scripts.

- register_stac.py: Create/update STAC items with S3→HTTPS rewriting
- augment_stac_item.py: Add visualization links (XYZ tiles, TileJSON)
- submit_via_api.py: Submit workflows via Argo API for testing
- Retry with exponential backoff on transient failures
- Configurable timeouts via HTTP_TIMEOUT, RETRY_ATTEMPTS, RETRY_MAX_WAIT
- Workflow step timeouts: 1h convert, 5min register/augment
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