Skip to content

[BYO-S3] Warehouse REST endpoints + Lakekeeper client + per-execution injection #6932

Description

@mengw15

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 resolutionWorkflowService.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

  • Other (feature implementation)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions