Repository navigation
Service Iceberg Rest
Apache Iceberg REST Catalog provides Atlas' table catalog for the data-engineering lakehouse path. It stores Iceberg catalog metadata in Supabase Postgres through Iceberg's JDBC catalog implementation and points table data at MinIO.
In-stack clients use http://iceberg-rest:8181. Compose also publishes ICEBERG_REST_PORT on the host, loopback-only by default (HOST_BIND_IP=127.0.0.1:). The Compose-network API is unauthenticated, and the host-published API runs without Atlas authentication.
Loopback does not stop web pages in your browser. Until open issue #1455 is fixed, the catalog accepts cross-site text/plain POSTs (table renames, metadata commits) from any origin. Remove the ports: entry in services/iceberg-rest/compose.yml when no host client needs it. Before you expose the stack on a shared network, firewall the port or remove the entry.
-
ICEBERG_REST_SOURCE=disabledkeeps the catalog off by default. -
ICEBERG_REST_SOURCE=containerruns the REST catalog and its Postgres init companion. -
ICEBERG_REST_PORTis assigned by the topology port allocator. -
ICEBERG_DB_USERandICEBERG_DB_PASSWORDdefine the dedicated Supabase Postgres role. -
MINIO_BUCKET_ICEBERG_LAKEHOUSE,MINIO_BUCKET_ICEBERG_JARS,MINIO_BUCKET_ICEBERG_CHECKPOINTS, andMINIO_BUCKET_ICEBERG_LANDINGdefine the lakehouse buckets created byminio-init.
supabase-db-init creates the iceberg database and role (services/supabase/db/scripts/05-scoped-roles.sh). iceberg-rest-init checks the login before iceberg-rest starts. iceberg-rest then exposes the Apache Iceberg REST API backed by Supabase JDBC catalog metadata and MinIO object storage.
The catalog warehouse is s3://${MINIO_BUCKET_ICEBERG_LAKEHOUSE}/ (default s3://lakehouse/). The catalog reads and writes it through S3FileIO at http://minio:9000 with the iceberg MinIO service account (MINIO_ICEBERG_ACCESS_KEY). Spark, Trino, Airflow, JupyterHub and Zeppelin derive their warehouse from the same variable.
To exercise MERGE, time travel, branching, schema evolution, streaming and maintenance procedures against a running catalog, run the opt-in scripts/smoke-iceberg-advanced-sql.sh. Its --help lists the services it needs.
Atlas builds a small local image from ICEBERG_REST_IMAGE. The upstream fixture image has the Iceberg JDBC catalog but not the PostgreSQL JDBC driver that Supabase persistence needs. ICEBERG_REST_POSTGRES_JDBC_VERSION pins that driver.
Support tier: experimental — Capability contract declared; no cited cold-start, workflow, or upgrade qualification run yet (evidence at v0.1.0).
| Capability | Status | Verification | Notes |
|---|---|---|---|
| Persistent Iceberg REST catalog | supported | tested | Atlas layers the PostgreSQL JDBC driver into the catalog image and persists catalog metadata in Supabase with warehouse objects in MinIO. |
| Advanced Iceberg table operations | partial | untested | Atlas provides opt-in smoke scripts for merge, time travel, branching, evolution, streaming, and maintenance, but CI does not execute those operations against a live catalog. |
| External catalog and warehouse sources | not-supported | documented | The stock manifest supports only the in-stack container and requires Atlas Supabase plus MinIO rather than selectable external catalog or object-store modes. |
| Authenticated Iceberg REST API access | not-supported | documented | The Compose-network API and host-published ICEBERG_REST_PORT have no Atlas authentication. Keep the default HOST_BIND_IP=127.0.0.1:, or remove the iceberg-rest ports: publish, before use on shared hosts. |
-
curl -fsS http://localhost:${ICEBERG_REST_PORT}/v1/config(host) orhttp://iceberg-rest:8181/v1/config(from a container) returns the catalog configuration when the service is healthy. - If metadata disappears after restart, verify
CATALOG_URIpoints atjdbc:postgresql://supabase-db:5432/icebergand not the fixture image's SQLite default. - If object writes fail, verify the
icebergMinIO service account exists and has access to the configured lakehouse buckets.
| Service | Category |
|---|---|
| minio | data |
| supabase | data |
| Service | Category |
|---|---|
| spark | data |
| trino | data |
| airflow | agents |
| jupyterhub | apps |
| zeppelin | apps |

Open the full-size diagram for a full-screen view.
No high-confidence opportunities identified.
No high-confidence opportunities identified.
No high-confidence opportunities identified.
Atlas documentation.
- 1. Overview
- 2. Quick Start
- 3. Core Concepts
- 4. Tracks
-
5. Services
- 5.1. Service Catalog
-
5.2. Service Guides
- 5.2.1. airflow
- 5.2.2. asset-baker
- 5.2.3. asset-worker
- 5.2.4. backend
- 5.2.5. backup
- 5.2.6. blender-mcp
- 5.2.7. celery
- 5.2.8. chatterbox
- 5.2.9. cloud-providers
- 5.2.10. cloudflared
- 5.2.11. comfyui
- 5.2.12. crawl4ai
- 5.2.13. doc-processor
- 5.2.14. docling
- 5.2.15. docling-lightrag-adapter
- 5.2.16. fal
- 5.2.17. globals
- 5.2.18. grafana
- 5.2.19. hermes
- 5.2.20. iceberg-rest
- 5.2.21. jenkins
- 5.2.22. jupyterhub
- 5.2.23. kong
- 5.2.24. label-studio
- 5.2.25. langfuse
- 5.2.26. lightrag
- 5.2.27. litellm
- 5.2.28. llm-graph-builder
- 5.2.29. local-deep-researcher
- 5.2.30. loki
- 5.2.31. mcp-servers
- 5.2.32. minio
- 5.2.33. mlflow
- 5.2.34. multi2vec-clip
- 5.2.35. n8n
- 5.2.36. neo4j
- 5.2.37. ollama
- 5.2.38. open-webui
- 5.2.39. openclaw
- 5.2.40. otel-collector
- 5.2.41. parakeet
- 5.2.42. prometheus
- 5.2.43. ray
- 5.2.44. redis
- 5.2.45. redpanda
- 5.2.46. searxng
- 5.2.47. spark
- 5.2.48. speaches
- 5.2.49. stt-provider
- 5.2.50. supabase
- 5.2.51. supavisor
- 5.2.52. tei-reranker
- 5.2.53. tempo
- 5.2.54. tika
- 5.2.55. trino
- 5.2.56. trueforge
- 5.2.57. tts-provider
- 5.2.58. verba
- 5.2.59. vllm-metal
- 5.2.60. weaviate
- 5.2.61. zeppelin
- 5.3. Provider And Extension Guides
- 6. Configuration
- 7. Operations
- 8. Architecture
- 9. Development
- 10. Reference