feat(frontend): add the warehouse dashboard tab - #8005
Conversation
Automated Reviewer SuggestionsBased on the
|
There was a problem hiding this comment.
Pull request overview
Adds reusable warehouse creation/details dialogs and a dashboard row card for the upcoming warehouse management page.
Changes:
- Adds warehouse creation with loading, error, and cancellation handling.
- Adds a read-only warehouse metadata dialog.
- Adds a tested warehouse list-item card with delete and metadata actions.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
warehouse-create-modal.component.ts |
Implements warehouse creation behavior. |
warehouse-create-modal.component.html |
Defines the creation dialog UI. |
warehouse-create-modal.component.scss |
Styles the creation form. |
warehouse-create-modal.component.spec.ts |
Tests creation and cancellation flows. |
warehouse-metadata.component.ts |
Implements the metadata dialog. |
warehouse-metadata.component.spec.ts |
Tests displayed metadata. |
user-warehouse-list-item.component.ts |
Implements row-card behavior. |
user-warehouse-list-item.component.html |
Defines row content and actions. |
user-warehouse-list-item.component.scss |
Styles the warehouse row. |
user-warehouse-list-item.component.spec.ts |
Tests rendering and interactions. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8005 +/- ##
============================================
+ Coverage 93.42% 93.43% +0.01%
Complexity 4703 4703
============================================
Files 1180 1187 +7
Lines 47766 47954 +188
Branches 5321 5329 +8
============================================
+ Hits 44623 44808 +185
- Misses 1699 1702 +3
Partials 1444 1444
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
kunwp1
left a comment
There was a problem hiding this comment.
Can you add a screenshot or a video since it's introducing a GUI?
This is the second of three PRs. It introduces the GUI components, but they aren't wired into the dashboard yet, so they won't be visible from this PR alone. The third PR will assemble and render them on the page. I can add the screenshot/video here from the full implementation if that's more helpful. |
898cf1e to
dcc6796
Compare
|
I think it's better to assemble the second and third PR if you have the implementation. |
|
Assembled — this PR now carries the whole tab: the page, sidebar entry and route on top of the components, all gated behind the warehouse feature flag. Screenshots and a video are in the description above. |
dc0527a to
c5e28f9
Compare
The three presentational pieces of the warehouse tab (apache#6933), each mirroring its computing-unit counterpart: the create dialog, embedded through [(visible)] like ComputingUnitCreateModalComponent — kept open on failure, guarded against double submission, and abandoning its attempt when closed so Cancel actually cancels; the read-only details dialog the row name opens; and the row card itself, matched to the computing-unit row down to its content height and hover-revealed delete. Second of three parts, on top of the API client (apache#7820); the page that renders them follows. Nothing reaches these components yet.
c5e28f9 to
a26c81a
Compare
a26c81a to
fd441de
Compare
The page that assembles the warehouse components (apache#6933): a Warehouses sidebar entry and route, shown only while the backend's warehouse flag is on, and the page itself — virtual-scrolled rows, a Create button opening the shared dialog, delete via the confirmation flow, and a retry path when the status request fails, mirroring the computing-unit page throughout.
fd441de to
a106b6d
Compare
What changes were proposed in this PR?
The warehouse dashboard tab (#6933), mirroring the computing-unit tab throughout. It sits on top of the merged API client (#7820) and ships the components and the page together, per review.
Everything is gated behind the backend's warehouse feature flag:
GET /warehouse/statusdrives both the sidebar entry and the page, so deployments with the flag off (the default) see no change at all.user-warehousepage + routing — a "Warehouses" sidebar entry, shown only while the flag is on, plus the route. The route itself is unguarded on purpose: a deep link with the flag off lands on the page's disabled notice instead of silently redirecting, and the backend enforces the flag on every endpoint regardless. The page lists the user's warehouses in a virtual-scrolled list, opens the create dialog, refreshes after create/delete, and distinguishes the three states the flag request can leave it in: enabled (the list), disabled (a notice that the deployment has the feature off), and failed (a retry button, instead of the misleading "disabled" notice).warehouse-create-modal— embedded through[(visible)]and returning its result through(warehouseCreated), the same contract asComputingUnitCreateModalComponent. It disables Create on an empty name, guards against double submission, stays open on failure so the name can be corrected, and abandons the attempt when the dialog closes — Cancel actually cancels, and a late response cannot close a dialog the user has already reopened.warehouse-metadata— the read-only details dialog the row name opens: name, owner, flavor, created. The Lakekeeper catalog name is deliberately absent; it locates data inside storage the user has no access to until warehouses live in their own bucket (Per-user BYO-S3 warehouses #6870, Phase 1).user-warehouse-list-item— the row card, matched to the computing-unit row down to its 64px content height, hover-revealed delete, id column and metadata columns. Warehouses have no status, metrics, rename or sharing, so the computing-unit row's badge, progress bars, inline rename and share control have no counterpart.Screenshots and Videos:
Screen.Recording.2026-08-27.at.1.25.59.PM.mov
Any related issues, documentation, discussions?
Closes #6933. Part of #6870; the on-canvas picker follows in #7817.
How was this PR tested?
yarn test:cing test --watch=false --include "src/app/common/component/warehouse-*/**/*.spec.ts" --include "src/app/dashboard/component/user/user-warehouse/**/*.spec.ts" --include "src/app/dashboard/component/dashboard.component.spec.ts"Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (claude-opus-5, claude-fable-5)