Commit graph

104 commits

Author SHA1 Message Date
abhijeet760
7a10516ae4
improve openai anthropic gemini (#16296)
* 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>
2026-05-14 23:17:39 +05:30
Akshay
5f180c91c3
Feature: Add Intercom marketplace plugin (#15953)
* 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>
2026-05-13 17:41:38 +05:30
Akshay
8ef5f0682d
Feature: Add QuickBooks Online marketplace plugin (#15903)
* 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>
2026-05-13 09:16:38 +05:30
Rudhra Deep Biswas
468497f26e
Fix Marketplace Plugin Reload when upgrading the Version (#15755)
* 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>
2026-04-02 21:04:43 +05:30
Sahil Dewangan
a1c4b3d60b
refactor: datasource case inconsistencies (#15618) 2026-03-25 20:14:13 +05:30
Sahil Dewangan
278bb477b6
Fix: Datasource bug fixes (#15483)
* Added Edit button, encrypted label, Read documentation in Sharepoint config screen

* fix: throw appropriate error when SOQL query is empty
2026-03-10 21:16:12 +05:30
Midhun G S
5f13755993
Feature/add couchbase support (#14518) (#15147)
* 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>
2026-02-18 21:21:01 +05:30
Akshay
8c9d79c012
Fix: Use loadSync for gRPC filesystem proto loading and add lightweight service discovery (#15225)
* 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>
2026-02-17 17:52:48 +05:30
Ganesh Kumar
595d1e9554
Hotfix : Salesforce sql query becomes empty even when entering valid sql query (#15191)
* 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>
2026-02-12 20:52:47 +05:30
Priyansh Rai
5711f2bdda
Feat: Xero plugin integration with dynamic-selector (#14812)
* 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>
2026-02-05 20:17:37 +05:30
Midhun G S
c8fe500a1d
Migrated aws-sdk v2 to v3 (#15023)
* 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
2026-02-04 17:27:17 +05:30
Siddharth Pundir
1798ce8e3d
Feat/latest ai models (#15117)
* 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>
2026-02-03 13:51:49 +05:30
Sahil Dewangan
10de6a25f9
added label to deprecated gemini models (#15064) 2026-01-23 19:29:11 +05:30
Sahil Dewangan
da60d238a8
fix: remove completion operation from OpenAI plugin (#12487) (#15018) 2026-01-23 19:28:55 +05:30
Ganesh Kumar
8d2d2d18ab
Hotfix: Salesforce plugin refresh token flow (#14829)
* Salesforce refresh token flow

* Refresh token flow for Salesforce plugin

* Refresh token flow updates
2026-01-09 23:55:40 +05:30
Midhun G S
f68c8e1885
[Vulnerability] package upgrades (#14861)
* chore: update nestjs-otel to version 8.0.1 and add systeminformation override

* remove unused API metrics configuration from OpenTelemetry setup

* fixed ldap flaky case

* Update: Sendgrid package to 8.1.6 (#14833)

* updated sendgrid

* fix: update listBuckets function to use default options for ListBucketsCommand

---------

Co-authored-by: gsmithun4 <gsmithun4@gmail.com>

* Vulnerability Issues (#14834)

* Security Fixes

* set version

* utl harper db

* s3

* marketplace package-lock

* Remove package-lock.json files

* chore: update lerna to version 9.0.3 in package.json

* Implement code changes to enhance functionality and improve performance

* removing options from s3 bucket in markeplace

* supabase build type fixes

---------

Co-authored-by: Adish M <adish.madhu@gmail.com>
Co-authored-by: Yukti Goyal <yuktigoyal02@gmail.com>
Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com>
Co-authored-by: abhijeet760 <abhijeet@tooljet.com>
Co-authored-by: Rudhra Deep Biswas <98055396+rudeUltra@users.noreply.github.com>
Co-authored-by: Rudhra Deep Biswas <rudra21ultra@gmail.com>
2026-01-08 17:46:51 +05:30
Ganesh Kumar
8dbaa5e4e2
Feat: Authorise.net plugin (#14652)
* 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>
2025-12-04 22:26:36 +05:30
Ganesh Kumar
bc9aefb090
Hotfix: Fedex test connection issue (#14492)
* 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>
2025-11-04 19:06:38 +05:30
Ganesh Kumar
de952ea550
Hotfix: Ensure that the Gemini plugin test connection uses the latest Gemini model. (#14397)
* 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>
2025-10-27 20:07:58 +05:30
Parth
249d7a1135
Feature: Validate and save datasource OAuth creds in multi-tenant mode (#14043)
* fix: change schema to hide save button & add default value

* enhance: Show connect button in UI at data-config

* fix: extract source_options correctly

enhance: add userID in cache logic for snowflake

* enhance: add backend logic to save tokens correctly

fix: change IDataSourcesUtilService interface

* fix: add read docs button for oauth plugins

fix: shrink the connect button

* fix: remove extra code and fix comments

* fix: generate cache key correctly
2025-10-22 17:19:46 +05:30
Ganesh Kumar
ac5a65179d Merge branch 'lts-3.16' into release-lts/marketplace-sprint-13 2025-10-22 14:12:14 +05:30
Priyansh Rai
beb8bcfc65
Fix: Capitalisation inconsistencies in labels (#14174)
* fixed capitalization issue

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* updated changes

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* fix: standardize label casing and formatting in plugin manifests

* fix: standardize label casing in plugin manifests

---------

Signed-off-by: thesynthax <kushagra1403@gmail.com>
Co-authored-by: thesynthax <kushagra1403@gmail.com>
2025-10-22 13:59:18 +05:30
Devanshu Gupta
fb686e10d6
fix: added all scopes hubspot (#14025)
Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
2025-10-22 11:32:40 +05:30
Ganesh Kumar
4ede7110d6
Hotfix: Microsoft graph datasource refresh token flow (#14344)
* 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
2025-10-17 22:11:19 +05:30
Pratush Sinha
9e77d8affa
ClickUp [ openapi spec url changed ] (#14238)
* new commit

* spec url under tooljet account
2025-10-06 12:47:41 +05:30
Midhun G S
1c4c006da8
Merge pull request #14057 from ToolJet/debug/v3.16.27-lts-beta
refactor: enhance canActivate method in AbilityGuard for improved error handling and logging
2025-09-19 20:37:49 +05:30
gsmithun4
f40be5b1b5 feat(logging): integrate transaction logging across various guards and services
- 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.
2025-09-19 02:08:49 +05:30
Priyansh Rai
98ac90383b
Feat: Add FedEx plugin (#14012)
* 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
2025-09-15 15:42:01 +05:30
satyy2301
5cd0858c05
Feature/easypost plugin (#13494)
* add-feature-easypost

* error standardisation in easypost

* copyright name change

* connection fix

* implemented spec url functionslity and fixed connection issue

* prreview cahnges

* Removed authetication dropdown

* pr changes round 2

* Json body bug fixed

* change in spec url

* change in spec url

* test connection method fixed
2025-09-08 12:28:31 +05:30
Priyansh Rai
94e4a13043
Feat: Add Gmail plugin (#13843)
* 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>
2025-09-08 12:20:32 +05:30
Devanshu Gupta
6f572315c1
feat: added hubspot (#13854)
* feat: added hubspot

* fix: updated name

* feat: updated spec url

* fix: added options in manifest

* fix: resolved comments

* fix: added kind

* fix: updated query options check

* fix: kind index
2025-08-21 18:54:05 +05:30
Ganesh Kumar
eac053475c
Release : Marketplace plugins (#13846)
* Feature/aws bedrock changes (#13819)

* add aws bedrock plugin

* plugins.json conflict resolution

* error standardisation

* copyright name change

* -connection failure resolved
-AI tag included

* name correction

* Listfoundation model Fix

* info text addition

* aws-bedrock pr review 1 changes

* lock json change removed

* graph and ups plugin packages

* version bump

* added space back to package lock json file

---------

Co-authored-by: satyy2301 <101496785+satyy2301@users.noreply.github.com>
2025-08-19 21:05:22 +05:30
Priyansh Rai
a503443cfd
Feat: Add the UPS plugin to marketplace (#13805)
* 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>
2025-08-14 18:17:49 +05:30
Priyansh Rai
12f0713e7d
Feat: Add google cloud spanner marketplace plugin (#13818)
* 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
2025-08-14 17:18:52 +05:30
Ganesh Kumar
ea26db8a71
Aftership plugin api key variable name updated (#13764) 2025-08-12 12:29:23 +05:30
Pratush Sinha
27b6bad84b
Feat/aftership plugin (#13435)
* ee commit

* merge commit

* feat: updated openapi operation component

* updated query operation sepctype

* feat: add AfterShip plugin

* refactor: clean error structure and minor manifest updates

* Update AfterShip plugin: refine index.ts and operations.json

* fix: updated query dropdown style

* Changes in error blocks and optional Chaning

* Same Error Formate

* Changed openAPI spec account

* Error

* error 2

* Fixed Shipper ID and Error handeling

* apiendpoint component used for rendering openapi spec value are persisted

* fix: integrated old component

* removed log

* Key to key

---------

Co-authored-by: Devanshu Gupta <devanshuguptaknp@gmail.com>
Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
2025-08-11 19:23:24 +05:30
Devanshu Gupta
cb0a87e1a1
Feat/ms graph pre release (#13581)
* ee commit

* merge commit

* feat: updated openapi operation component

* updated query operation sepctype

* fix: updated query dropdown style

* init plugin

* init plugin

* feat: config dropdown update

* feat: added ms plugin

* fix: plugin connection name

* submodule reference updated

* plugin label updated

* added back margin top class

---------

Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
2025-08-11 18:59:49 +05:30
Ganesh Kumar
9a376aea7a
Fix: OpenAI datasource generate embedding operation and error standardisation (#13600)
* new operation for embedding and error standardisation

* submodule reference updated
2025-08-01 19:13:45 +05:30
Ganesh Kumar
c0a3c2cf74
Fix: Pocketbase datasource handle connection errors more gracefully. (#13601)
* try catch statement added for method which establishes connection

* submodulereference updated
2025-08-01 19:13:19 +05:30
Ganesh Kumar
f46340b477
Enhance: Extract OAuth 2.0 flow for Salesforce & Snowflake (#13529)
* salesforce & snowflake changes added to prerelease

* module import error fixes

* optional parameter for getAuthUrl method
2025-07-23 22:18:50 +05:30
Ganesh Kumar
1f1eb3f9b7
Release : Google Calendar plugin and Oauth component extraction for plugins (#13393)
* 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>
2025-07-14 22:18:06 +05:30
Ganesh Kumar
0eb2440023
Release: Marketplace sprint 12 (#13207)
* 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>
2025-07-11 12:15:39 +05:30
parthy007
956e6b4534 Merge branch 'main' into fix/workspace-constants-mapping 2025-07-01 17:01:08 +05:30
Parth
2051ed3279
Remove the helper text from clickup manifest.json (#12955) 2025-05-29 14:23:59 +05:30
Parth
afb27b8673
Feature: Add Clickup plugin (#12703)
* initialize clickup plugin, add getConnection and testConnection

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* including the openapi yaml

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* trying to attach the openapi spec

Signed-off-by: thesynthax <kushagra1403@gmail.com>

* Fix key casing mismatch

* Update copywriting

* Fix clickup logic

* Filter limited operation request

* Add error standardisation

* Fix asterik symbol position

* Fix copywriting

* Fix wrong URL

* Fix asterisk gapping

* Handle array types

* Update marketplace package-lock.json

* Add the same package-lock as release branch

* chore: update package-lock.json

---------

Signed-off-by: thesynthax <kushagra1403@gmail.com>
Co-authored-by: thesynthax <kushagra1403@gmail.com>
Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2025-05-27 21:03:15 +05:30
parthy007
fd1d0becf4 Merge branch 'release/marketplace-sprint-11' into fix/workspace-constants-mapping 2025-05-27 16:58:11 +05:30
Kushagra Srivastava
2b989bbcea
metadata label changed to payload in qdrant (#12800)
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"
2025-05-27 12:03:50 +05:30
Kushagra Srivastava
f28dc8b1f2
Supabase error standardization (#12879)
Signed-off-by: thesynthax <kushagra1403@gmail.com>
2025-05-23 20:32:56 +05:30
parthy007
911e5f26f5 Update qdrant manifest 2025-05-16 18:01:27 +05:30
Parth
2f7492635a
Fix: Prevent exposure of encrypted credentials during app export. (#12449)
* Fix keys mismatch

* Fix jira export issue
2025-05-07 12:30:49 +05:30