mengw15 commented on code in PR #7935:
URL: https://github.com/apache/texera/pull/7935#discussion_r3847516804
##########
bin/single-node/docker-compose.yml:
##########
@@ -228,12 +228,19 @@ services:
# RESTException. Refresh the stored endpoint on every run (#6195).
echo "Lakekeeper Warehouse
'$$STORAGE_ICEBERG_CATALOG_REST_WAREHOUSE_NAME' already exists. Refreshing its
storage endpoint to '$$STORAGE_S3_ENDPOINT'..."
WAREHOUSE_ID=$$(jq -r --arg name
"$$STORAGE_ICEBERG_CATALOG_REST_WAREHOUSE_NAME" '.warehouses[]? | select(.name
== $$name) | .id' /tmp/warehouses.txt)
+
+ # Lakekeeper treats the key prefix as immutable and rejects a payload
+ # that would change it, taking the endpoint down with it. A warehouse
+ # created before the prefix was configured has none, so send back
what
+ # is stored. jq emits it as JSON, so it needs no quotes below.
+ STORED_KEY_PREFIX=$$(jq -c --arg name
"$$STORAGE_ICEBERG_CATALOG_REST_WAREHOUSE_NAME" '.warehouses[]? | select(.name
== $$name) | ."storage-profile"."key-prefix"' /tmp/warehouses.txt)
Review Comment:
The same shape applies one field over: `region` is immutable too —
Lakekeeper answers a changed value with ``Field `region` cannot be updated to
prevent loss of data.`` (verified against a throwaway warehouse; `bucket`,
`flavor`, `sts-enabled` and `path-style-access` all update fine). Since the
listing is already in hand, taking the stored profile wholesale and overriding
only the endpoint — `jq '... | ."storage-profile" | .endpoint = $ep'` — would
close the class rather than this one instance, and drops the hand-built payload
entirely. Not blocking.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]