Rabun owns warehouse ETL. Burton publishes change data from Postgres; companions write JSONL; rabun etl ingest loads it.

rabun etl publications
rabun etl run --dry-run
rabun etl status
rabun etl ingest --dry-run

Use a direct postgresql:// URL. Prisma Accelerate URLs are rejected.

Slack and the semantic crawler write the same JSONL contract under .rabun/etl, then you ingest. SMS is not warehouse ingest — that worker claims Burton outbox rows. See companions.