Skip to content

console: tenant detail static route, events resilience, RBAC, pre-commit frontend lint#94

Merged
GatewayJ merged 4 commits intorustfs:consolefrom
GatewayJ:console
Mar 8, 2026
Merged

console: tenant detail static route, events resilience, RBAC, pre-commit frontend lint#94
GatewayJ merged 4 commits intorustfs:consolefrom
GatewayJ:console

Conversation

@GatewayJ
Copy link
Member

@GatewayJ GatewayJ commented Mar 8, 2026

变更摘要

  • 租户详情页: 使用 /tenants/detail?namespace=&name= 静态路径以支持 static export;为 useSearchParams 增加 Suspense
  • 旧路径: /tenants/[ns]/[name] 重定向到 query 形式
  • Events API: 列表失败时返回 200 空列表,避免 500 导致详情页整页失败
  • 前端: 租户详情用 Promise.allSettled,events 失败不阻塞页面
  • RBAC: 为 console/operator 增加 pods/log get、pods delete、events get/list/watch
  • 控制台说明: 服务列表与存储池页增加说明文案
  • pre-commit: 增加 console-lint (ESLint) 与 console-fmt-check (Prettier)

Made with Cursor

GatewayJ added 4 commits March 8, 2026 18:15
- Add utoipa + utoipa-swagger-ui for Console API docs
- Add OpenAPI spec and Swagger UI at /swagger-ui
- Add Makefile with pre-commit (fmt-check, clippy, test)
- Fix clippy: collapsible_if, unwrap, unnecessary_map_or
- Apply cargo fmt

Made-with: Cursor
- Move deploy/cleanup/check scripts under scripts/ (deploy, cleanup, check, test)
- Move Kind 4-node config to deploy/kind/kind-rustfs-cluster.yaml
- Add PROJECT_ROOT resolution in scripts so they run from any cwd
- Update CLAUDE.md, README.md, deploy docs and k8s-dev comments with new paths
- Remove legacy root-level scripts and CONSOLE-DEVELOPMENT-PLAN.md

Made-with: Cursor
…mit frontend lint

- Tenant detail: use /tenants/detail?namespace=&name= for static export; add Suspense for useSearchParams
- Legacy /tenants/[ns]/[name] redirects to query-param URL
- Events API: return 200 with empty list on list failure to avoid 500 breaking detail page
- Frontend: Promise.allSettled for tenant detail so events failure does not block page
- RBAC: pods/log get, pods delete, events get/list/watch for console and operator
- Services copy: clarify only tenant-owned services are listed
- Pools tab: note that all pools are in use (unified cluster)
- pre-commit: add console-lint (ESLint) and console-fmt-check (Prettier); make console-fmt

Made-with: Cursor
@GatewayJ GatewayJ merged commit 2e7c2fe into rustfs:console Mar 8, 2026
GatewayJ added a commit that referenced this pull request Mar 8, 2026
* console

* console (#78)

* Console (#80)

* console

* feat(console):deployment console

* Console web (#81)

* feat: console web

* feat: console web

* feat:console-web tenantlist clusterlist (#85)

* style: cargo check fmt (#86)

* fix: resolve clippy warnings (empty_line_after_doc, collapsible_if, map, unwrap) (#87)

Made-with: Cursor

* Console (#88)

* console: same-origin /api/v1, nginx proxy, RBAC, CORS order, script/docs fixes

- console-web/nginx.conf: proxy /api/ to rustfs-operator-console:9090 so default
  apiBaseUrl /api/v1 works in-cluster; try_files $uri.html to avoid 301 to /cluster/
- deploy-rustfs.sh: build console-web without NEXT_PUBLIC_API_BASE_URL, use --no-cache;
  access info: same-origin hint, rustfs-operator token, recovery build without 9090
- operator-rbac: add create/delete tenants, create namespaces (Console login token)
- src/console/server.rs: put CorsLayer before auth so OPTIONS preflight gets CORS response;
  fix comment to match execution order (Trace -> Compression -> Cors -> auth)

Made-with: Cursor

* fix: 集群资源 allocatable 累加与展示; deploy-rustfs operator 构建加 --no-cache

Made-with: Cursor

* Console style change (#90)

* style:Modify the layout and component styles

* feat: i18n suppert

* feat: theme Switch

* feat : link

* style: change button style

* fix: link url

* fix: overflow style

* Console (#91)

* 4node deploy

* review

* feat: Add Swagger UI, Makefile with pre-commit, fix clippy/fmt

- Add utoipa + utoipa-swagger-ui for Console API docs
- Add OpenAPI spec and Swagger UI at /swagger-ui
- Add Makefile with pre-commit (fmt-check, clippy, test)
- Fix clippy: collapsible_if, unwrap, unnecessary_map_or
- Apply cargo fmt

Made-with: Cursor

* chore: reorganize scripts and config layout, update doc references (#93)

* review

* feat: Add Swagger UI, Makefile with pre-commit, fix clippy/fmt

- Add utoipa + utoipa-swagger-ui for Console API docs
- Add OpenAPI spec and Swagger UI at /swagger-ui
- Add Makefile with pre-commit (fmt-check, clippy, test)
- Fix clippy: collapsible_if, unwrap, unnecessary_map_or
- Apply cargo fmt

Made-with: Cursor

* chore: reorganize scripts and config layout, update doc references

- Move deploy/cleanup/check scripts under scripts/ (deploy, cleanup, check, test)
- Move Kind 4-node config to deploy/kind/kind-rustfs-cluster.yaml
- Add PROJECT_ROOT resolution in scripts so they run from any cwd
- Update CLAUDE.md, README.md, deploy docs and k8s-dev comments with new paths
- Remove legacy root-level scripts and CONSOLE-DEVELOPMENT-PLAN.md

Made-with: Cursor

* console: tenant detail static route, events resilience, RBAC, pre-commit frontend lint (#94)

* review

* feat: Add Swagger UI, Makefile with pre-commit, fix clippy/fmt

- Add utoipa + utoipa-swagger-ui for Console API docs
- Add OpenAPI spec and Swagger UI at /swagger-ui
- Add Makefile with pre-commit (fmt-check, clippy, test)
- Fix clippy: collapsible_if, unwrap, unnecessary_map_or
- Apply cargo fmt

Made-with: Cursor

* chore: reorganize scripts and config layout, update doc references

- Move deploy/cleanup/check scripts under scripts/ (deploy, cleanup, check, test)
- Move Kind 4-node config to deploy/kind/kind-rustfs-cluster.yaml
- Add PROJECT_ROOT resolution in scripts so they run from any cwd
- Update CLAUDE.md, README.md, deploy docs and k8s-dev comments with new paths
- Remove legacy root-level scripts and CONSOLE-DEVELOPMENT-PLAN.md

Made-with: Cursor

* console: tenant detail static route, events resilience, RBAC, pre-commit frontend lint

- Tenant detail: use /tenants/detail?namespace=&name= for static export; add Suspense for useSearchParams
- Legacy /tenants/[ns]/[name] redirects to query-param URL
- Events API: return 200 with empty list on list failure to avoid 500 breaking detail page
- Frontend: Promise.allSettled for tenant detail so events failure does not block page
- RBAC: pods/log get, pods delete, events get/list/watch for console and operator
- Services copy: clarify only tenant-owned services are listed
- Pools tab: note that all pools are in use (unified cluster)
- pre-commit: add console-lint (ESLint) and console-fmt-check (Prettier); make console-fmt

Made-with: Cursor

---------

Co-authored-by: cxymds <Cxymds@qq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant