diff --git a/docs/ice-rest-catalog-gcs.md b/docs/ice-rest-catalog-gcs.md new file mode 100644 index 0000000..f05634c --- /dev/null +++ b/docs/ice-rest-catalog-gcs.md @@ -0,0 +1,49 @@ +# Setting up ice-rest-catalog with Google Cloud Storage + +This guide covers configuring `ice-rest-catalog` to use GCS buckets as the warehouse location. + +## Prerequisites + +- A GCS bucket with appropriate permissions +- Service account with Storage Object Admin role (`roles/storage.objectAdmin`) +- Service account JSON key file + +## Configuration + +Create `.ice-rest-catalog.yaml`: + +```yaml +uri: jdbc:sqlite:file:data/ice-rest-catalog/db.sqlite?journal_mode=WAL&synchronous=OFF&journal_size_limit=500 +warehouse: gs://your-bucket-name/warehouse + +iceberg: + gcs.project-id: your-gcp-project-id + +bearerTokens: +- value: your-secret-token + +anonymousAccess: + enabled: true + accessConfig: {} +``` + +## Authentication + +Set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to your service account key file: + +```bash +export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account-key.json" +``` + +## Running + +```bash +ice-rest-catalog -c .ice-rest-catalog.yaml +``` + +## Configuration Options + +| Property | Description | +|----------|-------------| +| `warehouse` | GCS bucket path (`gs://bucket-name/path`) | +| `iceberg.gcs.project-id` | GCP project ID | diff --git a/ice-rest-catalog/pom.xml b/ice-rest-catalog/pom.xml index dd1b71b..21009d9 100644 --- a/ice-rest-catalog/pom.xml +++ b/ice-rest-catalog/pom.xml @@ -215,6 +215,85 @@ + + + org.apache.iceberg + iceberg-gcp + ${iceberg.version} + + + org.slf4j + slf4j-api + + + + + com.google.cloud + google-cloud-storage + 2.43.1 + + + com.google.guava + guava + + + com.google.code.gson + gson + + + com.fasterxml.jackson.core + jackson-core + + + com.google.errorprone + error_prone_annotations + + + org.slf4j + slf4j-api + + + com.google.re2j + re2j + + + io.grpc + grpc-grpclb + + + io.grpc + grpc-stub + + + io.grpc + grpc-util + + + io.grpc + grpc-core + + + io.grpc + grpc-api + + + io.grpc + grpc-protobuf + + + com.google.api.grpc + proto-google-common-protos + + + io.grpc + grpc-context + + + io.grpc + grpc-protobuf-lite + + + org.eclipse.jetty diff --git a/ice/pom.xml b/ice/pom.xml index feb357a..2556c56 100644 --- a/ice/pom.xml +++ b/ice/pom.xml @@ -135,6 +135,45 @@ + + + org.apache.iceberg + iceberg-gcp + ${iceberg.version} + + + org.slf4j + slf4j-api + + + + + com.google.cloud + google-cloud-storage + 2.43.1 + + + com.google.code.gson + gson + + + com.fasterxml.jackson.core + jackson-core + + + com.google.errorprone + error_prone_annotations + + + org.slf4j + slf4j-api + + + com.google.re2j + re2j + + + software.amazon.awssdk s3