ToolJet/plugins/packages/common/lib/query_service.interface.ts
Akshay ca71355d8e
Feature[LTS]: GRPC Plugin revamp (#13894)
* feat: Add new gRPC v2 plugin

- Enhanced DataSourcesController to support invoking methods on data sources.
- Introduced InvokeDataSourceMethodDto for method invocation requests.
- Added WhitelistPluginGuard to restrict method invocation based on data source kind.
- Updated IDataSourcesController and IDataSourcesService interfaces to include invoke method functionality.
- Implemented invokeMethod in DataSourcesService to handle method calls for gRPC v2.
- Added method whitelisting for gRPC v2 in the service layer.

* refactor: invokeMethod to use method dispatch pattern

* fix: improve error handling in testConnection method

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor: update types and interface

* fix: remove unnecessary border styles for improved UI consistency

* refactor: simplify error handling

- Introduced a new SCSS file for styling the gRPC v2 query editor components.
- Styled request sections, server URL input, dropdown menus, and method buttons for better user experience.

refactor(grpcv2): enhance error handling and type safety

- Updated error handling in gRPC query service to use a new `toError` utility function for consistent error conversion.
- Improved type definitions for gRPC client and service methods to ensure better type safety.
- Refactored method existence validation and gRPC call execution to handle errors more gracefully.

fix(grpcv2): improve service discovery and proto file loading

- Enhanced service discovery logic to handle reflection and proto file clients more robustly.
- Added checks for valid service constructors and improved error messages for better debugging.
- Updated the `loadProtoFromRemoteUrl` function to handle HTTP errors more effectively.

chore(grpcv2): add utility functions for type checks

- Introduced utility functions `isRecord`, `hasProperty`, and `toError` for better type checking and error handling throughout the codebase.

* feat: add LegacyBanner component for gRPC legacy tag display

* fix: styling changes

* fix: correct text in LegacyBanner component

* feat: enhance GRPCv2 component with request handling and state management improvements

* refactor: update metadata handling in GRPCv2 component and service

* refactor: update GRPCv2 component to use raw_message instead of requestData

* fix: Styling issues and labels

* refactor: gRPC test connection checks for proto file and url

* fix: improve error handling in service discovery

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-21 16:39:31 +05:30

16 lines
676 B
TypeScript

import { App } from './app.type';
import { ConnectionTestResult } from './connection_test_result.type';
import { QueryResult } from './query_result.type';
import { User } from './user.type';
export interface QueryService {
run(
sourceOptions: object,
queryOptions: object,
dataSourceId?: string,
dataSourceUpdatedAt?: string,
context?: { user?: User; app?: App }
): Promise<QueryResult>;
getConnection?(queryOptions: object, options: any, checkCache: boolean, dataSourceId: string): Promise<object>;
testConnection?(sourceOptions: object): Promise<ConnectionTestResult>;
invokeMethod?(methodName: string, ...args: any[]): Promise<QueryResult>;
}