Repository navigation
feat: add empty table catalog disable action - #258
Merged
Merged
Conversation
GatewayJ
marked this pull request as draft
October 7, 2026 03:14
GatewayJ
marked this pull request as ready for review
October 7, 2026 05:06
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The automated test only inspects source text and does not verify failure-state preservation or retry behavior.
Review effort: Balanced
Findings: 1
What changed in this PR
Adds a confirmed, capability-gated action for disabling empty table catalogs while preserving objects and supporting retries.
Changes:
- Adds DELETE support and updates UI state only on success.
- Gates the action by capability and
SetTableBucketpermission. - Adds translations, source assertions, and UI evidence documentation.
| File | Description |
|---|---|
app/(dashboard)/table-catalog/page.tsx |
Adds the confirmed disable action and UI control. |
hooks/use-table-catalog.ts |
Parses capability and exposes the DELETE request. |
tests/lib/table-catalog-source.test.js |
Adds static assertions for the feature. |
docs/ui-review/register.md |
Records UI review evidence. |
i18n/locales/ar-MA.json |
Adds Arabic translations. |
i18n/locales/de-DE.json |
Adds German translations. |
i18n/locales/en-US.json |
Adds English strings. |
i18n/locales/es-ES.json |
Adds Spanish translations. |
i18n/locales/fr-FR.json |
Adds French translations. |
i18n/locales/id-ID.json |
Adds Indonesian translations. |
i18n/locales/it-IT.json |
Adds Italian translations. |
i18n/locales/ja-JP.json |
Adds Japanese translations. |
i18n/locales/ko-KR.json |
Adds Korean translations. |
i18n/locales/pt-BR.json |
Adds Portuguese translations. |
i18n/locales/ru-RU.json |
Adds Russian translations. |
i18n/locales/tr-TR.json |
Adds Turkish translations. |
i18n/locales/vi-VN.json |
Adds Vietnamese translations. |
i18n/locales/zh-CN.json |
Adds Simplified Chinese translations. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Pull Request
Description
Add a confirmed action to disable an empty table catalog. Show it when the server advertises
disable-supportedand requireSetTableBucketpermission. Preserve the enabled state after a failed request and allow retry. The confirmation explains object preservation and lifecycle expiration, with translations for all supported locales.Type of Change
Testing
Passed
pnpm install --frozen-lockfile,pnpm type-check,pnpm lint,pnpm format:check,pnpm test:run(632 tests), andgit diff --checkusing Node 22.Automated behavior tests execute the same disable callback used by the page through
runDialogAction: failed DELETE preserves enabled state and the open dialog, retry updates state only after success, pending submissions reject duplicates, and capability/permission/status gates prevent requests.Exercised the actual Next.js page with deterministic S3/catalog responses: absent/false/true capability, missing permission, cancellation, 409 and retry, successful disable, re-enable, mobile, dark mode, and German mobile confirmation. These fixtures do not constitute live RustFS integration testing. Independent reviewer, tester, UX, and simplification checks completed.
Checklist
Related Issues
Refs rustfs/backlog#2729. Backend companion: rustfs/rustfs#8376, which adds the DELETE endpoint and capability advertisement. rustfs/rustfs#8116
Screenshots (if applicable)
UI evidence manifest
Additional Notes
Servers without the capability keep the existing controls. The server remains responsible for rejecting nonempty catalogs. Reverting this change removes the UI action without changing bucket state.