Skip to content

Repository files navigation

FIESTA

Framework for Integrated Earth Science and Technology Applications

FIESTA is the platform behind the EarthRef.org data repositories (nodes): MagIC, CDR, and KArAr.

One codebase serves any node. A deployment is fully described by a single YAML file in config/ — node name, branding colors, OpenSearch index, storage bucket, data model, controlled vocabularies, summarization hierarchy, and enabled features. Deploying a different node (or the public API) means pointing at a different YAML file.

Architecture

frontend Vite + React + TanStack Router/Query SPA (branding fetched from /api/config)
backend FastAPI + SQLAlchemy (async) + asyncpg + Pydantic v2 + Alembic → /api
public-api Same codebase, public /v1 REST surface across all nodes (api.earthref.org)
worker procrastinate (Postgres-native jobs): parse/validate/summarize/index, email
postgres Accounts + contribution workflow state (Postgres 16)
opensearch Denormalized search documents, one index per node
minio S3-compatible storage: canonical contribution files + manifests

Reproducibility: the storage bucket (canonical files + manifest.json per contribution) plus the YAML config are the durable record of a node. Postgres and OpenSearch are projections — fiesta rebuild regenerates both from the bucket.

Quick start

cp .env.example .env # FIESTA_NODE=magic or a list: magic,karar,erda
make up # one backend+worker+frontend per listed node

Run make for all targets (tests, linting, e2e, rebuild, local dev servers). Multiple nodes run side by side sharing Postgres/OpenSearch/MinIO — each node has its own search index, bucket, job queue, and node-scoped contributions.

Default ports per node (frontend / backend API docs at /api/docs):

NodeFrontendBackend
MagIC:8080:8000
KdD:8081:8001
CDR:8082:8002
KArAr:8083:8003
ERDA:8084:8004
OSU-MGR:8086:8006

Create an account in the UI (or docker compose run --rm backend fiesta create-user you@example.org "Your Name"), upload a contribution text file in the private workspace, validate, publish, and it becomes searchable.

Layout

config/ Deployment YAMLs + per-node data models / vocabularies (JSON)
backend/ Python package `fiesta` (both FastAPI apps, worker, CLI)
frontend/ SPA (one build serves any node)
docs/api.md API contract
old-backend/ Legacy Koa/OpenSearch API — reference for porting remaining features

See development.md and deployment.md.

License

FIESTA is released under the MIT License.

About

Framework for Integrated Earth Science and Technology Applications

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages