{"service":"sfc-datalake-sync","version":"1.0.0","endpoints":["POST /sync/trigger - Trigger sync for a database or table","GET /sync/status?jobId=xxx - Get sync job status","GET /admin/databases - List registered databases","POST /admin/databases - Register a new database","GET /admin/tables?databaseId=xxx - List tables for a database","POST /admin/tables - Register a table for sync","POST /admin/databases/:id/pause - Pause a database","POST /admin/databases/:id/resume - Resume a database","POST /admin/tables/:id/pause - Pause a table","POST /admin/tables/:id/resume - Resume a table","GET /admin/iceberg/status - Check R2 Data Catalog connectivity","GET /admin/iceberg/files?namespace=default&table=xxx - List data files in R2","POST /admin/iceberg/register - Register existing files with Iceberg","GET /admin/iceberg/namespaces - List Iceberg namespaces","GET /admin/iceberg/tables?namespace=xxx - List tables in a namespace","GET /admin/iceberg/snapshots?namespace=xxx&table=yyy - Get snapshots for time travel","GET /admin/iceberg/schema?namespace=xxx&table=yyy - Get table schema (columns)","GET /api/v1/q/:slug - Published query execution (via query-api worker)","GET /admin/monitoring/metrics?hours=168&pipeline=ingest - Monitoring metrics and health","POST /ingest/notify - Register an uploaded Parquet file from QB ETL","POST /ingest/push - Receive rows directly, write Parquet, register metadata","GET /ingest/status - Get ingest table state and recent files","POST /ingest/alert - Forward gateway alert through centralized AlertService","POST /ingest/sources - Register a QB company as an ingest source","GET /ingest/sources - List registered ingest sources with stats","POST /ingest/event - Record a gateway lifecycle event in the activity log","GET /health - Health check"]}