-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Description
Problem
delta_scan ignores properly configured GCS secrets and attempts anonymous access, while read_parquet with the same secrets works correctly.
Environment
- DuckDB version: 1.4.1
- duckdb-delta extension: Latest
- Platform: macOS
- Authentication: Google Cloud Application Default Credentials + Bearer Token
Working vs Not Working
✅ WORKS: read_parquet with GCS secret
import duckdb
import subprocess
# Get access token
result = subprocess.run(['gcloud', 'auth', 'application-default', 'print-access-token'],
capture_output=True, text=True)
access_token = result.stdout.strip()
con = duckdb.connect()
con.execute("INSTALL httpfs")
con.execute("LOAD httpfs")
con.execute("DROP SECRET IF EXISTS gcs_secret")
con.execute(f"CREATE SECRET gcs_secret (TYPE GCS, bearer_token '{access_token}')")
# This works perfectly
result = con.execute("SELECT count(*) FROM read_parquet('gs://bucket/path/*.parquet')").fetchone()
print(f"Success: {result[0]} rows")❌ FAILS: delta_scan with same GCS secret
# Same setup as above, but using delta_scan
con.execute("INSTALL delta")
con.execute("LOAD delta")
# This fails with anonymous access error
result = con.execute("SELECT count(*) FROM delta_scan('gs://bucket/path/delta-table')").fetchone()Error Message
IO Error: DeltaKernel ObjectStoreError (8): Error interacting with object store:
The operation lacked the necessary privileges to complete for path [...]:
Error performing GET https://storage.googleapis.com/[...] - Server returned
non-2xx status code: 403 Forbidden: Access denied. Anonymous caller does not
have storage.objects.get access to the Google Cloud Storage object.
Key Observations
- GCS secret is created successfully - verified with
SELECT * FROM duckdb_secrets() - Individual file access works -
read_parquetuses the secret correctly - Delta table structure is valid -
gsutil ls gs://bucket/path/_delta_log/shows proper Delta log files - Authentication is valid -
gsutilandgcloudcommands work fine - delta_scan attempts anonymous access - ignores the configured secret
Related Issues
- Similar to duckdb 1.1 delta reader ignore azure secret #83 (Azure secrets ignored by delta_scan)
- Different from register_filesystem has no effect after v1.1.0 upgrade #87 (which is about filesystem registration)
Expected Behavior
delta_scan should use the configured GCS secret for authentication, just like read_parquet does.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels