Bybit Launchpool Pipeline
Overview
Для Bybit Launchpool используется API pipeline (без Playwright scraping).
Текущая реализация:
- SyncBybitLaunchpoolWorkflow — вызывает Bybit history API, нормализует проекты и пишет snapshots в Timescale через SQL ingest.
Код:
- internal/worker/activities/sync_bybit_launchpool.go
- internal/worker/workflows/sync_bybit_launchpool.go
- internal/db/migrations/00011_bybit_launchpool_snapshot_schema.sql
- internal/db/migrations/00012_bybit_launchpool_aggregates_policies.sql
API Endpoint
POST https://www.bybit.com/x-api/spot/api/launchpool/v1/history
Request payload (default):
pageSize фиксирован на 100 внутри activity (детерминированный запрос).
Headers (минимально важные):
- Content-Type: application/json
- Accept: application/json, text/plain, */*
- Origin: https://www.bybit.com
- Referer: https://www.bybit.com/en/trade/spot/launchpool
- Lang: en
- Platform: pc
- Sec-Fetch-*, sec-ch-* — optional (только если нужны в вашем окружении)
Storage Contract
SQL ingestion entrypoint:
- ingest_bybit_launchpool_snapshot($1::jsonb)
Payload source:
- internal path /x-api/spot/api/launchpool/v1/history
- source marker api
- список projects[] после normalization в activity
Target tables:
- fct_bybit_launchpool_snapshot
- fct_bybit_launchpool_subpool_snapshot
- fct_bybit_launchpool_response_snapshot
- fct_bybit_launchpool_quarantine
- fct_bybit_launchpool_5min
- fct_bybit_launchpool_daily
Manual Run
docker compose exec -T temporal temporal workflow start \
--address temporal:7233 --namespace default --task-queue default \
--type SyncBybitLaunchpoolWorkflow \
--workflow-id sync-bybit-launchpool-manual-$(date +%s) \
--input '{"current":1}'
Notes
- Activity ожидает JSON payload с массивом проектов в одном из типичных полей (
data.list,result.list,rowsи т.д.). - При
403/access deniedошибка помечается как non-retryable (bybit_access_denied). - Для специфичных окружений поддерживаются optional env overrides:
BYBIT_LAUNCHPOOL_COOKIE,BYBIT_LAUNCHPOOL_TRACEPARENT,BYBIT_LAUNCHPOOL_SEC_*.