feat: add topic and table forms#3909
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: abe059d7ea
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6ac16c7631
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 935240fc89
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f5c76827c6
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b2ac17d715
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c036ec0b4
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 51166dbe76
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 10d6ce7e40
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f3eec5953f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 80bfdf8a49
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: eece85b50c
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
astandrik
left a comment
There was a problem hiding this comment.
Reviewed the current head 11b577803e66a0f28e86e9cec17c29c18625081f against base 838e82e6f28f8e9d9cd6cd85a4d9517556756f0d.
Checked:
- table/topic create and update forms, reducers, query builders, validation, and tests;
- previously raised points around date/time literals, topic auto-partitioning defaults, 2048 MB partition size, split points, and rename validation;
SchemaTreeaction wiring,ObjectSummary/CreateDirectoryDialog,TreeKeyProvidermove, and refresh behavior;- SCSS/layout changes for ObjectSummary, create-directory breadcrumbs, table/topic dialogs,
RangeInputPicker, and column selector; - relevant YDB source/docs for backend contracts and lightweight Arcadia/YDB EM probes for wrapper/package impact.
Verification:
npm run typecheckpassed;npm run lint:stylespassed;npm test -- src/containers/Tenant/TableFormDialog src/containers/Tenant/TopicFormDialogpassed: 6 suites, 94 tests;- focused earlier Jest pass for table validation/query paths passed: 3 suites, 96 tests;
git diff --check 838e82e6f28f8e9d9cd6cd85a4d9517556756f0d..HEADpassed;- GitHub checks are green for Verify Files, Unit Tests, Check Bundle Size, Merge Playwright Reports, and Playwright shards 1/8 through 8/8. The remaining failed
Update PR Descriptionjob is the fork/reporting write step, not a product check.
Result: no remaining blocking findings from my side. Approving.
Known limit: I did not run a separate local browser screenshot pass for the new dialogs; CI Playwright is the current interaction smoke.
Stand
Greptile Summary
This PR introduces GUI-based create/update dialogs for YDB topics (
TopicFormDialog) and tables (TableFormDialog), along with a reusableRangeInputPickercomponent. It also refactors the topic store reducer from a flat file into a directory with separate concerns (topic.ts,utils.ts), and adds a newtableApiwith RTK Query endpoints for describe/create/update operations.topicApiquery result (via a newselectTopicFormValuesselector) to pre-populate the update form.TreeKeyProvidercontext is moved up fromObjectSummarytoTenantso that schema tree refreshes triggered by dialog success callbacks share the right context boundary.Confidence Score: 4/5
The PR is safe to merge; the form dialogs work correctly end-to-end and all current callers always pass
onSuccess, so the inconsistency noted is latent rather than immediately observable.The bulk of the change is well-structured new UI code backed by tests for the query builders and validation. The issues found are non-blocking: the
TopicFormDialogmissingonClosefallback is not exercised by any current caller, the date-regex allowing00only affects client-side pre-validation (server rejects invalid dates), and the multi-statement ALTER TABLE batch is an accepted pattern for similar operations in this codebase. The unusedexpirefield is a minor type cleanliness issue.src/containers/Tenant/TopicFormDialog/TopicFormDialog.tsx(missing close fallback),src/containers/Tenant/TableFormDialog/columnValueValidation.ts(date regex), andsrc/store/reducers/table/table.ts(multi-statement batch ordering)Important Files Changed
handleTopicSubmitlacks a fallbackonClose()call whenonSuccessis not provided (unlikeTableFormDialog)onSuccessoronClosefallbackbuildRenameQueryandbuildResetQuerycan be sequenced in the same request without transactional guaranteesselectTopicFormValuesselector; migration from flattopic.tsfile is cleanexpire?: numberfield that is unused in the form and query builderSequence Diagram
sequenceDiagram participant User participant SchemaTree participant Dialog as TopicFormDialog / TableFormDialog participant RTKQuery as RTK Query API participant YDB User->>SchemaTree: Right-click node → "Create/Update Table/Topic" SchemaTree->>Dialog: openTableFormDialog / openTopicFormDialog (NiceModal) Note over Dialog: Loads existing data (update mode)<br/>via useGetTableQuery / useGetTopicQuery Dialog-->>User: Renders pre-populated form User->>Dialog: Submits form Dialog->>RTKQuery: createTable / updateTable / createTopic / updateTopic RTKQuery->>YDB: sendQuery (CREATE / ALTER TABLE/TOPIC) alt update table — multiple statements YDB-->>RTKQuery: RESET TTL result YDB-->>RTKQuery: ALTER TABLE (add/drop/set) result YDB-->>RTKQuery: RENAME TABLE result end YDB-->>RTKQuery: Response RTKQuery-->>Dialog: success / error Dialog-->>SchemaTree: onSuccess(newPath) SchemaTree->>SchemaTree: onActivePathUpdate + setSchemaTreeKey (tree refresh)Prompt To Fix All With AI
Reviews (1): Last reviewed commit: "feat: add topic and table forms" | Re-trigger Greptile
Context used:
Learned From
ydb-platform/ydb-embedded-ui#2729