Skip to content

DataHub Service

Purpose: Aggregate and schedule data collection from all registered providers, storing OHLC/tick data in TimescaleDB.

Run locally

  • Docker Compose: docker compose up datahub
  • Direct: set env vars (DATABASE_URL, provider keys) then uvicorn quasar.services.datahub.app:app --reload --port 8081

Configuration

  • DATABASE_URL: PostgreSQL/TimescaleDB connection string
  • Provider credentials: set per provider (e.g., EODHD_API_KEY, KRAKEN_API_KEY)
  • Scheduling: handled in code via offset_cron; review quasar/lib/common/offset_cron.py

Endpoints

  • REST (FastAPI) served from quasar.services.datahub.app:app
  • API schema exposed via FastAPI /docs and /openapi.json

Tests

  • Run service tests: pytest tests/services/datahub
  • Add fixtures to tests/conftest.py if mocking external providers

Notes

  • Validate provider code via Registry before enabling subscriptions.
  • Keep docstrings up to date; see API reference section for autogenerated docs.