Skip to content

Conversation

@PetrBulanek
Copy link
Contributor

Summary

Adds temporary UI for connectors for better clarity until the final design is ready.

Linked Issues

Refs: #1442

Documentation

  • No Docs Needed:

@dosubot dosubot bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Dec 10, 2025
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @PetrBulanek, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a temporary user interface for managing connectors within the application. The primary goal is to provide better clarity and functionality for connector interactions until a final design is implemented. This involves creating new UI components for listing, adding, and managing connector states, along with refactoring existing table views to support search and action buttons. The changes also include updates to the underlying API interactions and state management for connectors.

Highlights

  • New UI for Connectors: A temporary user interface has been implemented for managing connectors, providing views for listing, adding, connecting, disconnecting, and deleting connectors. This replaces a basic form-based approach with a more structured table view.
  • Refactored Table Views: The TableView component now accepts a className prop for better styling flexibility, and a new TableViewWithSearch component has been introduced. This new component standardizes the display of data tables with built-in search functionality, headers, entries, and toolbar actions, including proper loading states.
  • API and Hook Updates for Connectors: Connector API functions and their corresponding React Query hooks (useConnectConnector, useCreateConnector, useDisconnect) have been updated. This includes using more consistent path parameter handling, improved state management for authorization flows, and better invalidation of cached data after mutations.
  • Dependency Update: The @hookform/resolvers package has been added to the project dependencies, enabling integration with schema validation libraries like Zod for form handling in new UI components.
  • Code Structure Improvements: Several components related to secrets and variables have been reorganized into dedicated components and hooks subdirectories, enhancing modularity and maintainability within the runs and providers modules.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new TableViewWithSearch component to standardize table displays with search functionality across the application, replacing manual table implementations in ConnectorsView, ProvidersView, and VariablesView. It refactors connector-related API calls and hooks for improved type safety and state management, including adding a new AddConnectorModal and dedicated action buttons for connectors. The PR also updates various import paths, particularly for secret management components, and introduces Zod schemas for form validation. Review comments highlight a critical security vulnerability in [email protected] and a deprecated mintlify package, recommending immediate upgrades. Additionally, feedback suggests aligning @hookform/resolvers major version with react-hook-form v7, considering a more flexible generic constraint for TableViewWithSearch, making the redirect_url in connector API calls potentially dynamic, ensuring all queries are updated for the connectorKeys.all change, and improving the handling of OAuth popup closures.

Signed-off-by: Petr Bulánek <[email protected]>
state: 'disconnected';
}
export async function deleteConnector(path: DeleteConnectorPath) {
const response = await api.DELETE('/api/v1/connectors/{connector_id}', { params: { path } });
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we want to implement all api calls in the SDK and use them from there from now on. But we can leave that for #1692 .

authorizeOauth(result.auth_request.authorization_endpoint, handleAuthorizeCallback);
const result = await connectConnector({ connector_id: connectorId });

if (result && result.auth_request) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if (result?.auth_request)

Comment on lines 25 to 29
<IconButton
label="Delete"
kind="ghost"
size="sm"
onClick={() =>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could create a DeleteButton abstraction (not necessarily in this PR 😊 )

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🙌

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Dec 11, 2025
@PetrBulanek PetrBulanek merged commit eaa37db into main Dec 11, 2025
8 checks passed
@PetrBulanek PetrBulanek deleted the ui/style-connectors branch December 11, 2025 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants