After validating a workflow with the playground, run it through the full stack — API, database, Celery worker, and Langfuse if enabled — to confirm the pieces work together.Documentation Index
Fetch the complete documentation index at: https://launchpad.datalumina.com/llms.txt
Use this file to discover all available pages before exploring further.
Hit the /events endpoint
The generic events endpoint stores the payload, queues process_incoming_event, and returns HTTP 202 immediately. get_workflow_type() in app/launchpad/api/events.py currently returns WorkflowRegistry.QUICKSTART.name, so every event posted to /events/ runs through CustomerCareWorkflow.
curl
Python
Prerequisites
- Docker running —
docker psshows the api, celery_worker, redis, and db services. - API reachable at
http://localhost:8080. - Celery worker running — logs show it picking up
process_incoming_event. - Migrations applied — run
./migrate.shfromapp/launchpad/once.
Monitor results
Check worker logs
Run
docker compose logs celery_worker from docker/ and look for the process_incoming_event task completing.Inspect the database
Query the
events table with your preferred PostgreSQL client. Each row holds the raw payload in data and the final TaskContext in task_context once the worker finishes.Optional: use Supabase Studio
If you enabled
docker-compose.supabase.yml, open Studio at http://localhost:8000, authenticate with the dashboard credentials from docker/.env, and inspect the events table in the Table Editor.Troubleshooting
- Nothing processes — check Celery worker logs;
docker compose logs celery_workerwill show import errors immediately. - 422 from FastAPI — the endpoint accepts any JSON, but the workflow raises a Pydantic validation error when the payload does not match
CustomerCareEventSchema. Inspect the Celery logs for the stack trace. - Stuck on an older workflow — update
get_workflow_type()inapp/launchpad/api/events.pyto return a differentWorkflowRegistry.*.name, or add a dedicated router module underapp/launchpad/api/that mounts your workflow on its own path.