* improve openai anthropic gemini
* moved to dynamic form v2
* fix: Not able to add V2 plugins
* fix the overflowing of test connection error
---------
Co-authored-by: Siddharthpl <siddharthpundir73@gmail.com>
Co-authored-by: Rudhra Deep Biswas <rudra21ultra@gmail.com>
Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
* feat: add QuickBooks Online marketplace plugin
Add a QuickBooks Online Accounting API plugin with OAuth2 authentication,
86 API operations via OpenAPI spec, and @spec/ convention for DB-stored
spec files. Includes server-side spec hosting infrastructure and a fix
for duplicate footer rendering on marketplace OAuth2 datasource config pages.
* chore: update submodule pointers
* fix: use parent transaction for spec file DB operations
storeSpecFiles and updateSpecFilesForReload were wrapping each file
insert/update in a separate dbTransactionWrap call, creating independent
transactions instead of participating in the outer install/upgrade
transaction. This could leave orphan File entities if the plugin save
failed. Now uses the parent manager directly.
* fix: use sandbox API URL, remove testConnection, add state param
- Default to sandbox-quickbooks.api.intuit.com (development apps require it)
- Remove testConnection and customTesting (OAuth flow validates connection)
- Add state parameter to auth URL (required by QuickBooks)
- Add access_token validation guard in run()
- Preserve existing refresh_token if provider doesn't reissue
- Remove environment dropdown and company_id from manifest
- Add debug logging for OAuth flow tracing
* feat: add Intercom marketplace plugin and fix path-level param rendering
Add Intercom API v2.15 marketplace plugin with 162 endpoints across 30
resource groups using react-component-api-endpoint with @spec/ convention.
Fix ApiEndpointInput widget to merge path-level OpenAPI parameters into
each operation's parameters per the OpenAPI 3.0 inheritance rule. This
ensures path params declared at the path-item level (used by Intercom,
AWS, Stripe, and many others) are rendered as input fields.
* fix: set customTesting to false so framework renders Test Connection button
customTesting: false tells the framework to render its standard Test
Connection button which calls testConnection() on the backend.
customTesting: true (counterintuitively) hides the standard button,
expecting the plugin to provide custom testing UI.
* Chore: Migrate all OpenAPI plugins from external URLs to @spec/ convention (#15904)
* chore: migrate all OpenAPI plugins from external URLs to @spec/ convention
Downloads 78 OpenAPI spec files from external URLs (7 plugins from
adishM98/base-repo-testing personal repo, 2 from official provider repos,
1 from S3) and stores them locally in openapi-specs/ directories. Updates
all operations.json files to use @spec/<kind>/<name> references, which
are resolved to DB-stored specs at install time.
Eliminates runtime dependency on external GitHub repos for spec rendering.
* chore: remove one-time spec migration script
* chore: update package-locks for intercom plugin
Adds @tooljet-marketplace/intercom workspace links and dependency
entries that were missing from the prior commits.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore: update intercom plugin description
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat: add QuickBooks Online marketplace plugin
Add a QuickBooks Online Accounting API plugin with OAuth2 authentication,
86 API operations via OpenAPI spec, and @spec/ convention for DB-stored
spec files. Includes server-side spec hosting infrastructure and a fix
for duplicate footer rendering on marketplace OAuth2 datasource config pages.
* chore: update submodule pointers
* fix: use parent transaction for spec file DB operations
storeSpecFiles and updateSpecFilesForReload were wrapping each file
insert/update in a separate dbTransactionWrap call, creating independent
transactions instead of participating in the outer install/upgrade
transaction. This could leave orphan File entities if the plugin save
failed. Now uses the parent manager directly.
* fix: use sandbox API URL, remove testConnection, add state param
- Default to sandbox-quickbooks.api.intuit.com (development apps require it)
- Remove testConnection and customTesting (OAuth flow validates connection)
- Add state parameter to auth URL (required by QuickBooks)
- Add access_token validation guard in run()
- Preserve existing refresh_token if provider doesn't reissue
- Remove environment dropdown and company_id from manifest
- Add debug logging for OAuth flow tracing
* Chore: Migrate all OpenAPI plugins from external URLs to @spec/ convention (#15904)
* chore: migrate all OpenAPI plugins from external URLs to @spec/ convention
Downloads 78 OpenAPI spec files from external URLs (7 plugins from
adishM98/base-repo-testing personal repo, 2 from official provider repos,
1 from S3) and stores them locally in openapi-specs/ directories. Updates
all operations.json files to use @spec/<kind>/<name> references, which
are resolved to DB-stored specs at install time.
Eliminates runtime dependency on external GitHub repos for spec rendering.
* chore: remove one-time spec migration script
* POST string body
---------
Co-authored-by: Rudhra Deep Biswas <rudra21ultra@gmail.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* fix reload marketplace
* Feat: Added version info to marketplace plugins (#15729)
* added version to salesforce manifest
* add version info icon and tooltip to data source selection
* fix: design review changes
---------
Co-authored-by: Sahil Dewangan <123866478+sahil7303@users.noreply.github.com>
Co-authored-by: sahil7303 <sahildewangan73@gmail.com>
* Feature/add couchbase support (#14518)
* Add support for couchbase
* Update readme
* Update query operation
---------
Co-authored-by: Midhun G S <gsmithun4@gmail.com>
* Fix: Couchbase UI fixes (#15194)
* Fix: couchbase ui fixes
* Feature/add couchbase support (#14518)
* Add support for couchbase
* Update readme
* Update query operation
---------
Co-authored-by: Midhun G S <gsmithun4@gmail.com>
* Fix: couchbase ui fixes
* ui-fix: removed AI tag from couchbase
---------
Co-authored-by: Rudhra Deep Biswas <rudra21ultra@gmail.com>
Co-authored-by: Prajwal Pai <108796209+prajwal-pai77@users.noreply.github.com>
Co-authored-by: Midhun G S <gsmithun4@gmail.com>
* Feat: Add S3 upload script and command to package.json
* auto redirect has been enabled
---------
Co-authored-by: Prajwal Pai <108796209+prajwal-pai77@users.noreply.github.com>
Co-authored-by: Sahil Dewangan <123866478+sahil7303@users.noreply.github.com>
Co-authored-by: Rudhra Deep Biswas <rudra21ultra@gmail.com>
Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
* fix(grpcv2): use loadSync for filesystem proto loading to prevent server crash
protobufjs has an unfixed bug (protobufjs/protobuf.js#1098) where
async Root.load() calls resolveAll() outside its try-catch in the
finish() callback. When resolveAll() throws (e.g. unresolvable types),
the error becomes an uncaught exception that crashes the Node.js
process — the Promise never resolves/rejects.
Switch from protoLoader.load() to protoLoader.loadSync() for all
filesystem-based proto loading. With loadSync, resolveAll() errors
propagate as normal synchronous throws caught by existing try-catch
blocks. This is consistent with loadProtoFromRemoteUrl() which
already uses loadSync.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(grpcv2): add filesystem proto discovery with lightweight scanning
Add discoverServiceNames and discoverMethodsForServices to support
two-phase service discovery from filesystem proto files. Uses
protobufjs.parse() for lightweight name scanning (~30KB/file) and
only loads full gRPC definitions for selected services, preventing
OOM on large proto directories.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(DynamicSelector): add multi-select and autoFetch for grpcv2 filesystem services
Add isMulti and autoFetch props to DynamicSelector. autoFetch triggers
service discovery on mount without requiring a manual button click,
and skips cache persistence to avoid false "Unsaved Changes" prompts.
Multi-select renders services as chips with custom styles.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(data-sources): handle non-array elements in resolveKeyValuePair
resolveKeyValuePair assumed all array option elements are sub-arrays
(like metadata key-value pairs). Options like selected_services contain
plain strings, causing arr.map crash during test connection. Guard with
Array.isArray check and fall back to resolveValue for scalar elements.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(grpcv2): require service selection for filesystem mode in query manager
Filesystem mode without selected services would fall back to full
proto discovery (loading every file), defeating the purpose of the
two-phase discovery. Now shows an error asking the user to select
services in the datasource config instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(grpcv2): require selected services for filesystem test connection
Test connection in filesystem mode now validates that at least one
service is selected and uses a selected service for the connectivity
check instead of picking an arbitrary one from the proto directory.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(grpcv2): simplify filesystem test connection to validate proto parsing
Test connection for filesystem mode now just validates that proto files
can be parsed and services discovered — no service selection required.
Removes the meaningless waitForReady check which only tested TCP
connectivity without validating anything about the proto definitions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(grpcv2): remove filesystem branch from discoverServices
Filesystem mode never flows through discoverServices — it uses the
two-phase discoverServiceNames + discoverMethodsForServices path.
Remove the dead branch and add a comment documenting the filesystem
flow for clarity.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs(grpcv2): add comment documenting test connection behavior per mode
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(grpcv2): add TCP connectivity check for filesystem mode test connection
Filesystem mode now falls through to checkFirstServiceConnection (waitForReady)
like reflection and URL modes, instead of returning early after proto parsing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* cleanup(DynamicForm): remove unused snake_case prop aliases for isMulti and autoFetch
No plugin manifest uses is_multi or auto_fetch — the gRPC v2 manifest
(the only consumer of these props) uses camelCase exclusively, and there
is no transformation layer in the pipeline.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(DynamicSelector): suppress noAccessError flash during loading
The no-access warning and red border briefly flashed on page reload
because validateSelectedValue ran with an empty array before the
fetch completed. Gate both on !isLoading so they only appear after
data is actually loaded.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(DynamicSelector): skip cache validation for autoFetch on unrelated prop changes
When autoFetch is enabled, cache is never persisted to options (to avoid
"Unsaved Changes"). So every time selectedDataSource changes for
unrelated reasons (e.g. title edit), the cache-checking useEffect finds
no cache and calls validateSelectedValue([]), falsely triggering the
no-access warning. Skip this effect for autoFetch since it has its own
dedicated fetch/validation lifecycle.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(grpcv2): remove QueryResult wrapping from plugin invokeMethod returns
grpcv2 plugin methods (discoverServiceNames, discoverMethodsForServices)
were returning QueryResult-wrapped responses which got double-wrapped by
DataSourcesService.invokeMethod, causing GRPCv2Component to crash with
"servicesData.services.map is not a function" when opening filesystem
proto queries.
Plugin invokeMethod now returns raw data (arrays) instead of QueryResult
objects. The server's invokeMethod always wraps with { status: 'ok', data }
consistently. DynamicSelector adds an Array.isArray guard for plugins
that return raw arrays vs { data: [...] }.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(DynamicSelector): skip access validation for autoFetch fields
autoFetch fields (e.g. gRPC services) are discovered from proto files,
not OAuth-scoped resources — "no access" warnings don't apply.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(grpcv2): unify service discovery into single getServiceDefinitions entry point
Consolidate discoverServices, discoverServiceNames, and discoverMethodsForServices
into two clear methods: listServices (lightweight name scan for DS config) and
getServiceDefinitions (full method discovery for query editor, all modes).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(grpcv2): prevent OOM on filesystem test connection and query fallback
Filesystem test connection no longer parses proto files — just counts
them with fast-glob and checks TCP connectivity via a raw gRPC client.
Query execution fallback after server restart now uses the lightweight
protobufjs.parse() scanner instead of the heavy protoLoader.loadSync()
path. Removes two dead functions (discoverServicesIndividually,
discoverServicesUsingFilesystem).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: update version to 3.20.95-lts across all components
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* fix for salesforce query becomes empty
* salesforce fix updated
* fix for dynamic form changes reverting how props are passed to element component
* Bump version to 3.20.93-lts across all components
---------
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* Feat: Dynamic Selector (#14685)
* feat: introduce the dynamic-selector abstracted component with support for caching dependent dropdowns
* feat: introduce fx toggle option to enable fx editor in the dynamic-selector component
* feat: set `fxEnabled` prop default to `false` in DynamicSelector.
* fix(DynamicForm): fix fxEnabled prop handling to support snake_case
* refactor: rename variables and clean code
* refactor: rename cache key from `__default` to `nonDependentCache` in DynamicSelector.
* feat: Simplify dynamic selector data handling by removing transformation logic.
* refactor: simplify DynamicSelector error log by removing data source ID.
* fix: Throw an error when multi-user authentication is enabled but no user ID is found.
* refactor: rename iteration variables for improved readability
* perf: memoize composite dependency key calculation using `useMemo` hook.
* refactor: simplify `isFxMode` state initialization by removing dynamic value checks and `useEffect`
* refactor: remove unused `responsePath` prop from `DynamicForm` component
* refactor(DynamicForm): remove unused `rest` prop from `getElementProps`.
* fix(DynamicForm): fix support for snake and camel case props
* feat: Add support for passing arguments when invoking data source methods.
* Feat: Xero plugin integration with dynamic-selector (#1)
* Xero Plugin Intergration
* improvement after review comments
* added more Entity
* Au spec sheet update
* after review
* 'xero'
* added latest changes in the xero
* Changes in operations.json
* feat: introduce the dynamic-selector abstracted component with support for caching dependent dropdowns
* feat: introduce fx toggle option to enable fx editor in the dynamic-selector component
* feat: set `fxEnabled` prop default to `false` in DynamicSelector.
* fix(DynamicForm): fix fxEnabled prop handling to support snake_case
* feat: Add dynamic tenant selection and fetching for Xero plugin using dynamic-selector component
* refactor: rename variables and clean code
* refactor: rename cache key from `__default` to `nonDependentCache` in DynamicSelector.
* feat: Simplify dynamic selector data handling by removing transformation logic.
* refactor: simplify DynamicSelector error log by removing data source ID.
* fix: Throw an error when multi-user authentication is enabled but no user ID is found.
* refactor: rename iteration variables for improved readability
* perf: memoize composite dependency key calculation using `useMemo` hook.
* refactor: simplify `isFxMode` state initialization by removing dynamic value checks and `useEffect`
* refactor: remove unused `responsePath` prop from `DynamicForm` component
* refactor(DynamicForm): remove unused `rest` prop from `getElementProps`.
* fix(DynamicForm): fix support for snake and camel case props
* feat: Add support for passing arguments when invoking data source methods.
---------
Co-authored-by: Pratush613 <pratushsinha619@gmail.com>
Co-authored-by: Parth <108089718+parthy007@users.noreply.github.com>
Co-authored-by: parthy007 <parthadhikari1812@gmail.com>
* fix: correct FxButton import path
* feat: Implement OAuth token refresh and retry for data sources.
* fix(xero default scopes): ensure offline_access scope for Xero plugin to get refresh_token.
* chore: remove import comment from DynamicSelector
* fix: remove redundant oauth_type field from xero manifest.json
* fix: Update Xero tenant label to use ID.
* fix: use correct dataSourceOptions object for dataSource options in invokeMethod
* feat: persist DynamicSelector's fx mode.
* fix: correct Xero tenant ID display in label.
* fix: update Xero plugin dependencies
* feat: add userId argument to invoke method
* fix: xero getTenants in multi auth enabled environment
* refactor: simplify DynamicSelector caching logic to remove userId caching in multi-auth environments
* fix: remove layout shift when toggling fx editor
* chore: remove obsolete useStore call from DynamicSelector component
* Revert "refactor: simplify DynamicSelector caching logic to remove userId caching in multi-auth environments"
This reverts commit 307e62f48a.
* Revert "chore: remove obsolete useStore call from DynamicSelector component"
This reverts commit a2471a975b.
* feat: Add 'no access' warning to DynamicSelector for multi-user shared environments
* style: Update DynamicSelector button variant from secondary to tertiary.
* fix: trigger Xero OAuth token refresh in run method
* fix: enable token refresh logic in xero plugin
* xero design review changes
* Pass .env
* bug fixes
* refreshtoken (#15107)
* Bugs
* remove webhooks
* openAPiSpec improvements
---------
Co-authored-by: Pratush613 <pratushsinha619@gmail.com>
Co-authored-by: Parth <108089718+parthy007@users.noreply.github.com>
Co-authored-by: parthy007 <parthadhikari1812@gmail.com>
Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
Co-authored-by: Adish M <adish.madhu@gmail.com>
Co-authored-by: Rudhra Deep Biswas <rudra21ultra@gmail.com>
Co-authored-by: abhijeet760 <abhijeet@tooljet.com>
* chore: update bcrypt to version 6.0.0 in package.json
* chore: remove unused devDependencies from package.json
* Refactor code structure for improved readability and maintainability
* Refactor code structure for improved readability and maintainability
* Adding latest models to AI plugins
* Add new OpenAI models
Added new OpenAI models (GPT-5.2, GPT-5.1, GPT-5, GPT-5 Mini) to operations.json with corresponding parameters.
* update gemini models
* Change 'prompt' to 'history' in operations.json
* Update history field descriptions in operations.json
* Fix user_prompt field in operations.json
Updated user_prompt field with new properties and corrected duplicate mandatory entries.
* Refactor user_prompt fields in operations.json
Removed redundant 'description' and 'mandatory' fields from user_prompt in operations.json.
* Add GPT Image 1 option to OpenAI operations
* Update Claude model options in operations.json
Added new Claude models and marked discontinued ones.
* Fix formatting of claude-haiku entry in operations.json
* Rename max_tokens to max_completion_tokens
* Fix formatting in operations.json
* Fix formatting in operations.json
* Update OpenAI dependency version to 6.15.0
* Remove default max_completion_tokens from completions
Removed default max_completion_tokens value from OpenAI API calls.
* Fixing gpt models
* Added the deprecated tag on claude haiku 3-5 model
* Updating the model for test connection
* Fix the embedding for open ai
* Update deprecated model name in operations.json for gemini 2.0 flash exp
---------
Co-authored-by: Shubham Gupta <22.shubhamgupta@gmail.com>
Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
* Authorise net source code files
* fix for the claude genereted code for the authorizenet
* Removed repeted code
* Resolved review Commits
* Logo Changed
* parsing and some review comments
* fixed transaction key
* Fixed Error Messages for config Page
* chore: update version to 3.20.49-lts across all components
---------
Co-authored-by: Pratush <pratush@Pratushs-MacBook-Pro.local>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* Lint issues fixed
* test connection flow updated
* submodule reference updated
* bump version to 3.20.32-lts across all components
---------
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* submodule ref updated
* fix for test connection in Gemini plugin
* bump version to 3.20.27-lts across all components
---------
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* microsoft graph refresh token flow
* Handled unauthorised error
* marketplace dev mode will be picked from public config
* for microsoft graph when datasource is updated clear the token details
* added migration to backfill values for scope in Microsoft graph datasource
* version bump
- Updated `AbilityGuard` to utilize `TransactionLogger` for logging execution time and errors.
- Enhanced `ResponseInterceptor` to include transaction metadata in logs.
- Modified `QueryAuthGuard`, `ValidateQueryAppGuard`, and `ValidateQuerySourceGuard` to log completion times and transaction IDs.
- Introduced `TransactionLogger` service for structured logging with transaction context.
- Added transaction ID and route information to request context in `RequestContextMiddleware`.
- Updated `JwtStrategy` to log validation completion times.
- Refactored logging configuration in `AppModuleLoader` to support pretty printing in non-production environments.
- Removed console logs in favor of structured logging for better traceability.
* feat: add FedEx plugin with datasource integration, implemented testConnection function
* feat: implement run function to enable query operations
* feat: add base_url option to FedEx plugin for configurable API endpoints
* chore: update plugin icon
* fix: correct capitalization of FedEx plugin name in plugins.json
* fix: set allowed_scope_field to false in FedEx plugin manifest
* feat: enhance FedEx plugin to support child key and secret, and update customer type handling to support standard customers in the selection dropdown
* fix: remove duplicate child_key from FedEx plugin manifest and clean up defaults
* fix: enhance error response handling in FedEx plugin abstracting potentially sensitive information from the error responses
* fix: remove duplicate child_secret field from FedEx plugin manifest
* fix: correct customer type dropdown label case
* fix: update child key description in FedEx plugin manifest
* ee commit
* merge commit
* feat: updated openapi operation component
* updated query operation sepctype
* fix: updated query dropdown style
* feat: config dropdown update
* feat: add Gmail plugin with API integration and initial setup
* refactor: enhance type definitions
* refactor: clean up code and refactor variable names
* fix: update Gmail OAuth scope to allow full access to Gmail
* feat: standardize error handling for Gmail plugin
* fix: include oauth_type handling in Gmail plugin for cloud environment
* fix: update spec_url for Gmail operations
* refactor: remove unused fields in gmail manifest.json
* fix: update Content-Type header to application/x-www-form-urlencoded for token requests
* feat: add environment variable prefix for Gmail in OAuth handling
* fix: remove encryption requirement for client_id in Gmail manifest
* fix: update Gmail plugin to use form data for token requests and simplify response handling
* fix: add Gmail to OAuth data sources in DataSourceManager
* fix: encode path parameters in Gmail plugin URL construction
* fix: add back margin to Client ID label in CommonOAuthFields component
* fix: adjust width of input field in RenderParameterFields for better alignment
* fix: set response type to 'json' in requestOptions for Gmail service
---------
Co-authored-by: Devanshu Gupta <devanshuguptaknp@gmail.com>
* ee commit
* merge commit
* feat: updated openapi operation component
* updated query operation sepctype
* feat(ups): add UPS datasource integration with OAuth token generation and API operations
- Implemented the main UPS class for handling API requests and responses.
- Added manifest.json to define the UPS datasource schema and options.
- Created operations.json to specify available UPS API operations using OpenAPI Spec files.
- Defined types for source options, query options, and OpenAPI operations in types.ts.
- Updated plugins.json to include the new UPS integration with metadata.
* fix(ups): standardize error messages for query completion failures
* refactor(ups): replace environment option with base_url for UPS datasource
* refactor(DyamicForm): update label from 'Spec Type' to 'Entity' for clarity
* feat(DynamicForm): select the first operation by default in ApiEndpointInput.jsx
* feat(ups): integrate 'got' for HTTP requests and improve error handling
* fix(ups): replace btoa with Buffer for base64 encoding in authorization header
* feat(ups): enhance testConnection method with error handling and HTTP request using 'got'
* refactor(ups): streamline error handling in run and testConnection methods
* chore(theme): update datasource icon styling to match sizes for marketplace plugins
* fix(ups): enhance error handling in testConnection function to improve UX on the config page
* fix(DynamicForm): initialize computedProps for new data sources; fix unresponsive cancel button for encrypted fields
* Revert "feat(DynamicForm): select the first operation by default in ApiEndpointInput.jsx"
This reverts commit 5d940ceaca.
* fix(manifest): correct label casing for base_url and client_id properties
* fix(Ups): conditionally set Content-Type header based on request method
* fix(DataSourceManager): adjust padding for selected data source images and add targeted class for better scoping
* fix(Ups): update OAuth token request to use form data and set response type to JSON
* fix(Ups): set response type to JSON and adjust response data handling
* fix(UPS): fix unresponsive edit/cancel button on encrypted fields
* Revert "fix(DynamicForm): initialize computedProps for new data sources; fix unresponsive cancel button for encrypted fields"
This reverts commit 8e1b160588.
* fix(ApiEndpointInput): revert operation validation changes
---------
Co-authored-by: Devanshu Gupta <devanshuguptaknp@gmail.com>
* feat(spanner): add Google Cloud Spanner plugin with initial implementation
- Developed core functionality in lib/index.ts, including methods for running queries and testing connections.
- Defined manifest.json for plugin configuration and required properties.
- Created operations.json to specify query options and parameters.
- Introduced types.ts for source and query options definitions.
- Updated plugins.json to include the new Google Cloud Spanner plugin.
* chore(server): add @google-cloud/spanner dependency for Spanner plugin
* fix(DynamicForm): unify buttonText and editorType props for marketplace plugins
* fix(spanner): standardize error handling in index.ts
* refactor(spanner): simplify source options by removing client_email and project_id
* fix(spanner): standardize label casing in manifest and operations JSON files
* refactor(spanner): update parameters label
* refactor(spanner): update buttonText prop for query params
* refactor(spanner): change dialect type from dropdown-component-flip to dropdown to move it upwards in the frontend
* feat(DynamicForm): add HintText component to display hints for form fields
* refactor(spanner): rename hint to helpText for consistency in DynamicForm and manifest/operations JSON files
* Revert "feat(DynamicForm): add HintText component to display hints for form fields"
This reverts commit 79b48284f1.
* fix(Spanner): improve error handling for private key JSON parsing
* refactor(Spanner): rename getPrivateKey to parsePrivateKey for clarity
* fix(Spanner): enhance error handling with QueryError for better clarity and consistency
* refactor(Spanner): standardize label casing for consistency in manifest and operations JSON files
* feat(Spanner): add query mode support for executing queries and update operations schema
* Enhance: Extract the general OAuth flow for plugins [PRE-RELEASE] (#13291)
* Feature: Prometheus plugin (#13161)
* prometheus plugin
* added existing props
* Host and database can be dynamically configured in query builder for PostgreSQL and MySQL data sources (#13163)
* Fix: Postgresql datasource tries to connect via ssl even when ssl toggle is off (#13167)
* The ability to provide a partition key for deleting items in CosmosDB datasource has been enabled (#13166)
* Feature: Ability to configure the database name in Redis datasource (#13165)
* Fix: Avoid setting Content-Type header for requests without body and configure different host for all environments in OpenAPI [PRE-RELEASE] (#13230)
* Send content-type only with body in request
* Persist OpenAPI parameters per operation only
* Configure different host
* Add disable styles to the select input
* Feat: New fields 'client id' and 'client secret' have been introduced in the Slack datasource configuration page in pre-release (#13162)
* Update slack frontend
* Update slack backend to handle custom creds
* Add backfill migrations
* Dynamically change dropdown according to versions
* Change migration file name
* Correctly access scope in chat:write logic
* Extract general OAuth flow
* Render save button correctly
* Update the dropdown labels
* Fix dropdown according to tooljet editions
---------
Co-authored-by: Ganesh Kumar <40178541+ganesh8056@users.noreply.github.com>
Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
* Feat/google calendar plugin pre release (#13361)
* ee commit
* Feature: Prometheus plugin (#13161)
* prometheus plugin
* added existing props
* Host and database can be dynamically configured in query builder for PostgreSQL and MySQL data sources (#13163)
* Fix: Postgresql datasource tries to connect via ssl even when ssl toggle is off (#13167)
* The ability to provide a partition key for deleting items in CosmosDB datasource has been enabled (#13166)
* Feature: Ability to configure the database name in Redis datasource (#13165)
* merge commit
* feat: updated openapi operation component
* Fix: Avoid setting Content-Type header for requests without body and configure different host for all environments in OpenAPI [PRE-RELEASE] (#13230)
* Send content-type only with body in request
* Persist OpenAPI parameters per operation only
* Configure different host
* Add disable styles to the select input
* Feat: New fields 'client id' and 'client secret' have been introduced in the Slack datasource configuration page in pre-release (#13162)
* Update slack frontend
* Update slack backend to handle custom creds
* Add backfill migrations
* Dynamically change dropdown according to versions
* Change migration file name
* Correctly access scope in chat:write logic
* Extract general OAuth flow
* Render save button correctly
* Update the dropdown labels
* feat: added google calendar
* fix: option styling
* fix: removed test connection
* Fix dropdown according to tooljet editions
* fix: updated oauth type
* fix: added env variable helper
* fix: environment fetch
* feat: added default scope
* Remove connect button when multi-auth true
* Make scope configurable
* Hardcode google calendar scope
---------
Co-authored-by: Ganesh Kumar <40178541+ganesh8056@users.noreply.github.com>
Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: Parth <108089718+parthy007@users.noreply.github.com>
Co-authored-by: parthy007 <parthadhikari1812@gmail.com>
---------
Co-authored-by: Parth <108089718+parthy007@users.noreply.github.com>
Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: Devanshu Gupta <devanshuguptaknp@gmail.com>
Co-authored-by: parthy007 <parthadhikari1812@gmail.com>
* Feature: Prometheus plugin (#13161)
* prometheus plugin
* added existing props
* Host and database can be dynamically configured in query builder for PostgreSQL and MySQL data sources (#13163)
* Fix: Postgresql datasource tries to connect via ssl even when ssl toggle is off (#13167)
* The ability to provide a partition key for deleting items in CosmosDB datasource has been enabled (#13166)
* Feature: Ability to configure the database name in Redis datasource (#13165)
* Fix: Avoid setting Content-Type header for requests without body and configure different host for all environments in OpenAPI [PRE-RELEASE] (#13230)
* Send content-type only with body in request
* Persist OpenAPI parameters per operation only
* Configure different host
* Add disable styles to the select input
* Feat: New fields 'client id' and 'client secret' have been introduced in the Slack datasource configuration page in pre-release (#13162)
* Update slack frontend
* Update slack backend to handle custom creds
* Add backfill migrations
* Dynamically change dropdown according to versions
* Change migration file name
* Correctly access scope in chat:write logic
---------
Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: Parth <108089718+parthy007@users.noreply.github.com>
Co-authored-by: Akshay <akshaysasidrn@gmail.com>
Signed-off-by: thesynthax <kushagra1403@gmail.com>
In Qdrant datasource, for the operation "Query Points", a property label has been updated from "Include metadata" to "Include payload"