Commit graph

15648 commits

Author SHA1 Message Date
Arnav Maggon
1025b5a21c Fix GraphQL SSL handling with NODE_EXTRA_CA_CERTS 2026-05-22 09:55:59 +00:00
Arnav Maggon
1856f80c7e Fix UPS OpenAPI spec rendering issue 2026-05-22 07:25:40 +00:00
Johnson Cherian
38a035cbb2
chore: update version to 3.20.163-lts across all components and remove obsolete pyodide.js.map file (#16531)
Some checks are pending
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
2026-05-21 19:23:18 +05:30
Shaurya Sharma
a9dadd7d6f
fix: dynamic-height - tighten container chrome, hide scroll flash (#16516)
* fix: dynamic-height - tighten container chrome, hide scroll flash

* Modal dynamic height fix
2026-05-21 18:20:34 +05:30
gsmithun4
30e550a6b3 chore: update version to 3.20.162-lts across all components
Some checks are pending
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
2026-05-21 00:55:03 +05:30
Adish M
e41dacb8c5
🚀 chore: update submodules to latest lts-3.16 after auto-merge (#16519)
Co-authored-by: gsmithun4 <3417097+gsmithun4@users.noreply.github.com>
2026-05-21 00:52:11 +05:30
Adish M
791ae7f167
🚀 chore: update submodules to latest lts-3.16 after auto-merge (#16518)
Co-authored-by: gsmithun4 <3417097+gsmithun4@users.noreply.github.com>
2026-05-21 00:52:07 +05:30
Shantanu Mane
7a27c4d1c7
fix: pro plan workspace admin blocked from app preview (#16486)
* fix: allow pro plan workspace admins to preview apps

Pro plan has multiEnvironment=false. validateVersionEnvironment blocked any
request with environment_name set — including 'development' — causing a 403
that the frontend mapped to the restricted-preview error page.

Backend: allow 'development' env through even when multi-env is disabled;
only block staging/production to prevent URL manipulation.

Frontend: use featureAccess.multiEnvironment flag in isBasicPlan check
instead of hardcoded plan === 'starter', so pro plan also skips env in the
redirect URL.

* fix: align useAppPreviewLink isBasicPlan check with multiEnvironment flag

Same pattern as AppsRoute — was checking plan === 'starter', missing pro
and basic plans. Now uses !featureAccess.multiEnvironment consistently.

* fix: preserve original URL on app-scoped logout redirect

The app-scoped branch in redirectToLoginPage hardcoded
/applications/:slug/login with no redirectTo, dropping the env/version
preview params. After re-login, AppLoginPage fell back to
/applications/:slug (released-app viewer URL), which 501s for unreleased
apps and shows "App URL Unavailable".

Mirror the workspace branch's behavior: honor avoidRedirection and
preserve the original URL as redirectTo when false. Update logoutAction
to pass false so the runtime Logout event returns the user to the same
preview view after sign-in.

Regression introduced in #15716.

* chore: update package-lock files after lts-3.16 merge

* revert: remove frontend isBasicPlan changes, backend fix is sufficient

Stripping env from the URL on the frontend is the wrong approach — for
multi-env plans, an explicit env param (e.g. staging) must be preserved.
The backend fix (allowing development env through when multi-env is
disabled) is the correct and sufficient fix.

* fix: use multiEnvironment flag to gate env param in preview URLs

Plans without multi-env access (basic, pro, starter) should not include
?env= in preview URLs — it is meaningless for them and was causing the
backend to reject the request.

Plans with multi-env (team, enterprise) preserve the env param so
per-env per-version preview links continue to work correctly.

* fix: use strict equality for multiEnvironment check to preserve env when featureAccess is not yet loaded

---------

Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
2026-05-21 00:51:23 +05:30
Adish M
5622094ca0
🚀 chore: update submodules to latest lts-3.16 after auto-merge (#16517)
Co-authored-by: gsmithun4 <3417097+gsmithun4@users.noreply.github.com>
2026-05-21 00:51:05 +05:30
Shantanu Mane
c2d8ba08ea
Add invitation token and invite URL generation for external API users and expand test coverage (#16413)
* feat(external-api): return per-workspace inviteUrl in POST /ext/users response

* test(external-api): expand POST /ext/users coverage — roles, multi-group, and failure conditions

Adds 8 new e2e tests covering role assignment, per-workspace role variance,
multiple custom groups, and all key failure paths (duplicate email, missing
workspace, default group in groups field, nonexistent group, end-user/builder
group conflict). Also seeds the builder default group in maybeCreateDefaultGroupPermissions
to unblock role-assignment tests against test orgs.

* test(external-api): clarify conflicting-permissions error shape in users spec

* feat(external-api): update default status to INVITED in user-related DTOs and add defaultOrganizationId field

* feat(external-api): enhance invited user session guard and expand user creation tests for archived status

* feat(external-api): add tests for org-invite URL behavior based on user and workspace status

* feat(external-api): update user status handling and invite URL logic in tests

* feat(external-api): update invite URL logic and OrganizationUser status handling for active users
2026-05-21 00:50:03 +05:30
Akshay
a01840f4f5
Fix: preserve original URL on app-scoped logout redirect (#16313)
* fix: preserve original URL on app-scoped logout redirect

The app-scoped branch in redirectToLoginPage hardcoded
/applications/:slug/login with no redirectTo, dropping the env/version
preview params. After re-login, AppLoginPage fell back to
/applications/:slug (released-app viewer URL), which 501s for unreleased
apps and shows "App URL Unavailable".

Mirror the workspace branch's behavior: honor avoidRedirection and
preserve the original URL as redirectTo when false. Update logoutAction
to pass false so the runtime Logout event returns the user to the same
preview view after sign-in.

Regression introduced in #15716.

* chore: update package-lock files after lts-3.16 merge
2026-05-21 00:49:43 +05:30
Shantanu Mane
f05ead85e8
Merge pull request #16418 from ToolJet/feat/white-labelling-banner
Add banner image support and update LoginPageRightPanel
2026-05-21 00:48:43 +05:30
Adish M
d5287caa2c
Merge pull request #16510 from ToolJet/adishM98-patch-2
Some checks are pending
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
Add VPN API URL setup in workflow
2026-05-20 17:41:49 +05:30
Adish M
5aff51b37f
Add VPN API URL setup in workflow 2026-05-20 17:41:31 +05:30
Adish M
94cec4e8e5
Merge pull request #16257 from ToolJet/fix/vpn-automation-lts
Some checks are pending
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
feat: add Cypress VPN workflow for automated testing
2026-05-20 10:38:44 +05:30
Adish M
09dced6836
Merge branch 'lts-3.16' into fix/vpn-automation-lts 2026-05-19 16:26:20 +05:30
Adish M
fd1e1171d9
Update VPN action versions in workflow 2026-05-19 16:23:23 +05:30
Shaurya Sharma
cfd5a7171c
fix: Table - Add new rows modal mirrors column widths (#16459)
Some checks are pending
CI / lint-for-frontend (push) Blocked by required conditions
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
2026-05-19 16:15:28 +05:30
Devanshu Rastogi
620539d1bb
Enhance file duplication check with isSameFile utility function (#16463)
* fix: enhance file duplication check in FilePicker by introducing isSameFile utility function

* fix: update FilePicker to use internalId for file management and improve error handling

* refactor: move clearErrorStates function to improve code organization in useFilePicker
2026-05-19 16:14:45 +05:30
Adish M
69452df4e4
Merge pull request #16469 from ToolJet/fix/remove-jira
fix: remove Jira plugin dependency from package.json
2026-05-19 14:27:03 +05:30
Adish M
778554eced fix: remove Jira plugin dependency from package.json 2026-05-19 14:16:27 +05:30
Adish M
59527340bb
🚀 chore: update submodules to latest lts-3.16 after auto-merge (#16464)
Some checks are pending
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
Co-authored-by: johnsoncherian <57667706+johnsoncherian@users.noreply.github.com>
2026-05-19 10:53:05 +05:30
Kavin Venkatachalam
33052bcf6d
Feat: Move JS library license check to backend (#16005)
* fix: gate JS library loading on license fetch to fix public/released apps

JS libraries were silently skipped on public and released apps because
featureAccess?.appJsLibraries was still undefined when isComponentLayoutReady
fired. Introduces isLicenseFetched flag and handles fetch errors so the
gate is never blocked indefinitely for unauthenticated users.

* feat: remove license check for JS libraries loading in frontend and backend
2026-05-19 10:51:01 +05:30
Manish Kushare
1f64c91b7c
fix: align column text based on horizontal alignment setting in TableHeader (#16260) 2026-05-19 10:37:50 +05:30
Manish Kushare
9d775b86dc
hide preview overlay when currentValue is empty or undefined (#16327) 2026-05-19 10:35:06 +05:30
gsmithun4
57b0af3007 chore: update version to 3.20.161-lts across all components
Some checks are pending
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
2026-05-18 22:52:41 +05:30
Shaurya Sharma
fca02e9fc3
Removed fn condition from updateDependencyValues for SetExposedVariables (#16410) 2026-05-18 22:41:40 +05:30
Shaurya Sharma
38e064edb0
fix: AppCanvas - reset scroll to top on page switch (#16457)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 22:41:19 +05:30
Shaurya Sharma
ff697ed997
fix: Modal - release canvas scroll lock when modal unmounts during page switch (#16456) 2026-05-18 22:40:59 +05:30
Shaurya Sharma
3a623cebc6
fix: Inspector - retain "all editable" toggle when list is empty (#16419)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 22:38:26 +05:30
Shaurya Sharma
8631b6d9c8
feat: QueryManager - add fx and custom message for query confirmation (#16320)
* feat: QueryManager - add fx and custom message for query confirmation

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Minor fix

* Design update

* Yes button same size as cancel button

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 22:33:39 +05:30
Adish M
a0ef8f71c6
🚀 chore: update submodules to latest lts-3.16 after auto-merge (#16461)
Co-authored-by: gsmithun4 <3417097+gsmithun4@users.noreply.github.com>
2026-05-18 22:19:53 +05:30
Ganesh Kumar
23dfa559f7
TJDB join query snake case to camel case fix (#16408) 2026-05-18 22:16:31 +05:30
gsmithun4
62ebed70a3 chore: update version to 3.20.160-lts across all components
Some checks failed
CI / build (push) Has been cancelled
Deploy Storybook to Netlify / deploy-storybook (push) Has been cancelled
CI / lint-for-plugins (push) Has been cancelled
CI / unit-test (push) Has been cancelled
CI / lint-for-frontend (push) Has been cancelled
CI / lint-for-server (push) Has been cancelled
CI / e2e-test (push) Has been cancelled
2026-05-15 00:44:01 +05:30
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
Johnson Cherian
739c7c9cbe
chore: update version to 3.20.159-lts across all components (#16420) 2026-05-14 20:00:18 +05:30
Adish M
3dd0523ed6
🚀 chore: update submodules to latest lts-3.16 after auto-merge (#16417)
Some checks are pending
CI / lint-for-plugins (push) Blocked by required conditions
CI / build (push) Waiting to run
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
Co-authored-by: johnsoncherian <57667706+johnsoncherian@users.noreply.github.com>
2026-05-14 17:34:47 +05:30
Swathi Hameed
8bcfecfd28
Feat/ai datasource/mysql mssql (#16403)
* generate query support for mysql and mssql

* chore: update submodules

* chore: frontend submodule update

---------

Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com>
2026-05-14 17:32:44 +05:30
Manish Kushare
f7fa4ecbfa
fix: disable z-index override for Firefox popover styling (#16412)
* fix: disable z-index override for Firefox popover styling

* fix: remove unused Firefox-specific z-index styles from popover
2026-05-14 17:30:41 +05:30
Shaurya Sharma
1a4b292831
feat: AppCanvas - hidden widget collapses to 0px per Figma update (#16361)
* feat: AppCanvas - hidden widget collapses to 0px per Figma update

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: AppCanvas - stack overlapping hidden widgets in drop order

* Fallback for collapseOnhide components with top alignment

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 17:17:39 +05:30
Adish M
999950ada7
🚀 chore: update submodules to latest lts-3.16 after auto-merge (#16415)
Co-authored-by: johnsoncherian <57667706+johnsoncherian@users.noreply.github.com>
2026-05-14 16:54:18 +05:30
Nishidh Jain
439f3498a0
feat: Show go back to modules instead of go back to apps action on Module Builder page's logo popup menu (#16406) 2026-05-14 16:52:13 +05:30
Johnson Cherian
f0d5352545
Update version to 3.20.158-lts across all components (#16409)
Some checks are pending
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
2026-05-13 20:43:44 +05:30
Rudhra Deep Biswas
c6545e7fbb
Save Button Googlesheets (#16395)
* save btn googlesheet

* fixed instance setting ui flaky case

* sus

* revert

---------

Co-authored-by: Yukti Goyal <yuktigoyal02@gmail.com>
Co-authored-by: YuktiGoyal02 <100783212+YuktiGoyal02@users.noreply.github.com>
2026-05-13 17:41:53 +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
Shaurya Sharma
85a11a51a4
fix: Module - embedded canvas inherits host app background (#16389)
Some checks are pending
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 12:33:21 +05:30
Adish M
07728b235e
🚀 chore: update submodules to latest lts-3.16 after auto-merge (#16391)
Some checks are pending
CI / build (push) Waiting to run
CI / lint-for-plugins (push) Blocked by required conditions
CI / lint-for-frontend (push) Blocked by required conditions
CI / lint-for-server (push) Blocked by required conditions
CI / unit-test (push) Blocked by required conditions
CI / e2e-test (push) Blocked by required conditions
Deploy Storybook to Netlify / deploy-storybook (push) Waiting to run
Co-authored-by: gsmithun4 <3417097+gsmithun4@users.noreply.github.com>
2026-05-13 09:18:46 +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
Ganesh Kumar
8a5b91ac98
search grpc method name also service name (#16373) 2026-05-13 09:12:28 +05:30
Johnson Cherian
1960f163c9
chore: update version to 3.20.157-lts across all components (#16390) 2026-05-13 09:10:08 +05:30