Task Summary
Part of #6870. The backend that lets a user manage warehouses and pick one for a run. Everything
here is gated by warehousesEnabled, so it stays invisible while the flag is off.
- Warehouse management API — REST endpoints on the central web service (
WarehouseResource,
registered in TexeraWebApplication): list your warehouses + the flag state
(GET /warehouse/status), create one (POST /warehouse, Local/MinIO flavor here), delete one
(DELETE /warehouse/{whid}). Guards return 403 when the flag is off.
- Lakekeeper management client — a new
LakekeeperClient that creates the warehouse via
Lakekeeper's management API, and deletes it empty-first (Lakekeeper refuses to drop a
non-empty warehouse): drop each table with purgeRequested=false → drop namespaces → delete the
warehouse, so the S3 data files are kept.
- Per-execution warehouse resolution —
WorkflowService.resolveWarehouseName(whid, uid) maps
the chosen whid to its warehouse name, checks the requesting user owns it, and injects it into
the run's WorkflowContext — only when warehousesEnabled; otherwise runs use the shared
default warehouse exactly as today.
Task Type
Task Summary
Part of #6870. The backend that lets a user manage warehouses and pick one for a run. Everything
here is gated by
warehousesEnabled, so it stays invisible while the flag is off.WarehouseResource,registered in
TexeraWebApplication): list your warehouses + the flag state(
GET /warehouse/status), create one (POST /warehouse, Local/MinIO flavor here), delete one(
DELETE /warehouse/{whid}). Guards return403when the flag is off.LakekeeperClientthat creates the warehouse viaLakekeeper's management API, and deletes it empty-first (Lakekeeper refuses to drop a
non-empty warehouse): drop each table with
purgeRequested=false→ drop namespaces → delete thewarehouse, so the S3 data files are kept.
WorkflowService.resolveWarehouseName(whid, uid)mapsthe chosen
whidto its warehouse name, checks the requesting user owns it, and injects it intothe run's
WorkflowContext— only whenwarehousesEnabled; otherwise runs use the shareddefault warehouse exactly as today.
Task Type