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]

Reply via email to