Commit graph

919 commits

Author SHA1 Message Date
gsmithun4
14614bb254 Merge branch 'main' into release/v3.21.35-beta 2026-05-21 13:19:55 +05:30
Srimanitejas123
852af346fa Fixed error messages 2026-05-21 12:03:20 +05:30
Adish M
09dced6836
Merge branch 'lts-3.16' into fix/vpn-automation-lts 2026-05-19 16:26:20 +05:30
Muhsin Shah C P
f3da972089
Feature: Restrict version rename for git-sync orgs (#16370)
* feat: gate version rename restrictions behind git sync; restore non-git-sync behavior

- Add useGitSyncConfig() hook as shared source of truth for isGitSyncEnabled
  and defaultBranch (reads orgGit store, uses correct github_branch field)
- VersionDropdownItem: show branch name as display name for git-sync drafts;
  show fixed description "Latest commit to main will appear here" for git-sync
  drafts; hide "Edit details" only when git sync is ON (non-git-sync keeps
  original cursor/tooltip/disabled behavior for module versions)
- VersionSwitcherButton: header shows "Draft" (not branch name) for git-sync
  draft versions
- VersionManagerDropdown: source isGitSyncEnabled from hook; render
  EditVersionModal only for non-git-sync workspaces
- CreateDraftVersionModal: show version name input only for non-git-sync;
  set fixed draft name (branch name) and description when git sync is ON;
  replace appGit-based effect with useGitSyncConfig hook
- CreateVersionModal: blank name/description pre-fill when git sync ON; fix
  TDZ by moving effectiveIsBranchingEnabled after useStore block; add git-ref
  character validation for git-sync-enabled orgs
- service.ts: block name/description edits on PUBLISHED versions only when
  org-level git sync is enabled (non-git-sync orgs retain edit capability)

* feat: add immutability warning banner to Save version modal for git-sync orgs

Adds an inline info banner "Name and description cannot be edited after saving"
below the description field when git sync is enabled, matching the Figma design.

* fix: move immutability warning banner to top of Save version modal body

Figma (node 2091-172093) shows the banner above the version name input,
not below the description field.

* fix: improve error message for invalid version names in CreateVersionModal

* feat: enforce version name validation across modals and DTOs

* feat: add validation for version names to prevent spaces and special characters

* feat: refactor version selection logic in CreateVersionModal for improved clarity

* feat: enhance version name validation and update API request format

* Fixed draft version case

---------

Co-authored-by: Yukti Goyal <yuktigoyal02@gmail.com>
Co-authored-by: YuktiGoyal02 <100783212+YuktiGoyal02@users.noreply.github.com>
2026-05-19 10:48:09 +05:30
Akshay Sasidharan
de2e2255d9 Merge remote-tracking branch 'origin/lts-3.16' into release/lts-beta-merge 2026-05-13 17:53:52 +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
gsmithun4
5b48e4f71e Merge branch 'lts-3.16' into release/v3.21.30-beta 2026-05-09 01:36:54 +05:30
Ajith KV
d10ca6f647
Add Cypress test cases for gitsync functionality (#16208)
* Add Cypress test cases for gitsync functionality

* update the UI cases

* update custom commands

* Update the test cases

* Add version tagging test cases

* update the test cases

* fix commit function

* update the failing test cases

* update failing test cases

* update the selectors

* update the test cases
2026-05-08 17:43:17 +05:30
Shantanu Mane
82dc390a7c
Fix: Elevate End-User to Builder in SSO Group Sync (#15838)
* fix: elevate role when SSO group sync maps user to builder-level custom group

* fixed falky case

* fixed granular access case

* updated selector

---------

Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
Co-authored-by: Yukti Goyal <yuktigoyal02@gmail.com>
Co-authored-by: YuktiGoyal02 <100783212+YuktiGoyal02@users.noreply.github.com>
2026-05-07 21:58:27 +05:30
Srimaniteja
7707c85dbf
fixed bigquery spec for service account flow (#16325)
* fixed bigquery spec

* fixed review comments

* fixed data source count

* fixed data source count
2026-05-07 21:56:11 +05:30
gsmithun4
b3218d434c Merge branch 'main' into release/v3.21.28-beta 2026-05-01 20:48:41 +05:30
gsmithun4
74f60a343f Merge branch 'lts-3.16' into release/v3.21.28-beta 2026-05-01 20:38:33 +05:30
Srimanitejas123
b958d1e9d8 Updated erorr message and bigquery failure 2026-04-30 14:18:20 +05:30
Adish M
4175a8f3f6 fix: uncomment postgresHappyPath test in Cypress specPattern 2026-04-30 12:25:40 +05:30
Adish M
2f8d7241ec fix: update specPattern in Cypress config to uncomment postgresHappyPath test
Co-authored-by: Copilot <copilot@github.com>
2026-04-30 11:04:49 +05:30
Ganesh Kumar
f3e9104792
Feature : Snowflake plugin improvements (#15918)
* refresh token flow

* new auth with error standardisation

* Sbowflake improvements

* Snowflake invoke method made accessible

* snowflake improvement update

* dev testing bug fixes

* removed context file

* list tables and columns now use respective users token

* Snowflake bearer token field adding empty key value pair while editing

* PAT token flow authenticator updated

* Username for PAT token flow

* snowflake sdk version updated

* Updated placeholder for automation

* chore: update version to 3.20.152-lts

---------

Co-authored-by: Srimanitejas123 <mani@tooljet.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
2026-04-29 20:40:45 +05:30
Vijaykant Yadav
046c5556eb Merge remote-tracking branch 'origin/main' into feaure/modules-branching 2026-04-29 14:10:35 +05:30
johnsoncherian
867836be33 Merge branch 'lts-3.16' into chore/merge-3.20.150-lts-main 2026-04-28 16:11:33 +05:30
vjaris42
50dce57411
Merge pull request #16112 from ToolJet/test/Automation-fix-getAppData
Fixed get app data command issue
2026-04-28 14:59:23 +05:30
Vijaykant Yadav
186b7a2bad Merge remote-tracking branch 'origin/main' into feaure/modules-branching 2026-04-28 10:07:29 +05:30
abhijeet760
220ea4ce59
restapi save issue (#16095)
* restapi save issue

* Fixed restapi confirm box

---------

Co-authored-by: Srimanitejas123 <mani@tooljet.com>
2026-04-27 18:14:59 +05:30
YuktiGoyal02
39bbee739c
fixed reset password cases (#16074) 2026-04-27 15:26:06 +05:30
Yukti Goyal
cbab743114 fixed failed gitsync command issue 2026-04-27 15:14:45 +05:30
YuktiGoyal02
ca67d57a3d
fixed failed cases (#16063)
Some checks failed
CI / build (push) Has been cancelled
CI / lint-for-plugins (push) Has been cancelled
CI / lint-for-frontend (push) Has been cancelled
CI / lint-for-server (push) Has been cancelled
CI / unit-test (push) Has been cancelled
CI / e2e-test (push) Has been cancelled
2026-04-23 19:19:42 +05:30
emidhun
19bc26717e Add the basic specs 2026-04-22 15:42:35 +05:30
Ajith KV
5f71ee53e3
Git sync automation test cases (#16020)
* Add automation for git sync feature

* update gitsync cases

* update e2e.js

* update the gitsync test cases

* update the config for testing

* Update platform workflow for git sync test cases configh

* update the config file

* Add branch switching step
2026-04-22 11:58:14 +05:30
Ajith KV
4364f4f5d6
Update platform workflow for git sync test cases configh (#16025) 2026-04-22 11:08:30 +05:30
gsmithun4
bd9ff40e3b Merge branch 'main' into rebase/lts-main-16-mgs 2026-04-20 22:41:23 +05:30
Srimaniteja
3db6147937
Fixed pgsql spec on main (#15995) 2026-04-20 21:59:56 +05:30
johnsoncherian
439b424c48 Merge branch 'lts-3.16' into release/appbuilder-s26 2026-04-20 18:40:48 +05:30
YuktiGoyal02
e739429505
fixed case (#16003)
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
2026-04-20 16:58:56 +05:30
YuktiGoyal02
dffce63a50
fixed selector issue (#15988) 2026-04-19 18:15:16 +05:30
YuktiGoyal02
123c67b1e2
fixed failed cases (#15984)
* fixed failed cases

* config update

* updated config

* revert config changes
2026-04-18 15:02:34 +05:30
Akshay
0b8883ce34
Feature: Version control for modules [BETA] (#15857)
* feat: enable version management panel for modules

Move VersionManagerDropdown and RightTopHeaderButtons outside the
isModuleEditor gate so module builders get the same version management
UI as apps — create drafts, save versions, promote, edit details,
and delete. BranchDropdown stays gated (git sync is Phase 2).

Refs: ToolJet/tj-ee#4925

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

* chore: update frontend/ee submodule for module version pinning

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

* chore: update frontend/ee submodule — version dropdown design fix

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

* chore: update frontend/ee submodule — compact dropdown styling

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

* feat: prevent deletion of module versions pinned by consuming apps

Query all ModuleViewer components to check if any app references the
target version via moduleVersionId. If in use, reject deletion with
a list of consuming app names.

Refs: ToolJet/tj-ee#4927

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

* chore: update frontend/ee submodule — version selection fix

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

* feat: enable runtime resolution for pinned module versions

When a module component has a pinned versionId, use the version-specific
API (appVersionService.getAppVersionData) to load that version's definition
instead of always loading the module's current/latest version.

Also add versionId to useEffect deps so the module re-fetches when the
user changes the pinned version in the dropdown.

Refs: ToolJet/tj-ee#4926

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

* fix: address review findings — scoped deletion query, error handling

- Replace full table scan in checkModuleVersionInUse with scoped SQL
  query using JSON extraction (properties::jsonb -> 'moduleVersionId')
  instead of loading all ModuleViewer components into memory
- Add try-catch with user-friendly error message
- Update frontend/ee submodule with error logging and DRAFT fallback fixes

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

* fix: module deletion guard, import version mapping, and error display

- Prevent deletion of modules referenced by consuming apps (checks
  ModuleViewer components by moduleAppId)
- Fix import version ID remapping: map ALL version IDs instead of only
  editingVersion, and match existing module versions by name
- Fix showViewerNavigation defaulting to true on import (|| → ??)
- Show actual API error message in delete toast instead of generic text
- Clean up error messages: remove em-dash, use multiline format

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

* fix: hide Configure Git button in module builder

Git sync for modules is Phase 2. Hide the LifecycleCTAButton when
in module editor context.

Refs: #15857

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

* fix: hide freeze banner in module builder to prevent canvas shift

The AppCanvasBanner renders a FreezeVersionInfo banner when a version
is saved (frozen). In the module builder, this banner pushed the canvas
down. Since git sync banners are not applicable to modules (Phase 2),
skip rendering entirely for module editors.

Refs: #15857

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

* chore: update frontend/ee submodule — version dropdown loading state

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

* chore: update frontend/ee submodule — canvas padding fix

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

* fix: remove hardcoded 'development' environment for modules

Modules now support environments, so remove the special case that
hardcoded the development environment for module viewer mode. Use
the same appEnvironmentService.getEnvironment call as apps.

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

* fix: freeze editor for promoted module versions

Remove the blanket `if (isModuleEditor) return false` from
getShouldFreeze(). Modules now have environments, so promoted/saved
versions should freeze the editor and query panel just like apps.

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

* chore: update frontend/ee submodule — version lock banner for modules

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

* chore: update frontend/ee submodule — latest version pre-selection

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

* chore: update frontend/ee submodule — robust latest version sort

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

* feat: release gate blocks app release with unreleased modules

Check all ModuleViewer components in the app version being released.
If any pinned module version is not RELEASED, block with error listing
the unreleased modules.

Also updates frontend/ee submodule with env check and status badges.

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

* chore: update frontend/ee submodule — debugger integration for env mismatch

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

* feat: block app promotion when pinned modules not in target env

Add promote gate in promoteVersion() that checks all ModuleViewer
components. If any pinned module version hasn't been promoted to the
target environment, block with error listing the modules.

Also updates frontend/ee: simplified dropdown badges, removed
env mismatch placeholder (now prevented by this backend gate).

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

* fix: show actual API error in release and promote toasts

Release button was showing "Oops, something went wrong" and promote
button was showing a generic retry message. Now both show the actual
backend error (e.g., module not released/promoted). Release errors
are also pushed to the app debugger.

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

* fix: use raw table names in release and promote gate queries

TypeORM innerJoin with entity classes generates incorrect SQL when
join conditions use ::text casts. Switch to raw table/column names
(app_versions, apps, app_environments) instead of entity references.

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

* fix: use lowercase aliases and correct enum in gate queries

- Use snake_case aliases (mod_ver, mod_app, mod_env) to avoid
  PostgreSQL case-sensitivity issues with camelCase aliases
- Check for DRAFT status instead of RELEASED (RELEASED doesn't
  exist in the DB version_status_enum)

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

* fix: release gate checks current_version_id, errors in debugger

- Release gate now checks if pinned module version matches the
  module's current_version_id (actual release mechanism), not just
  DRAFT status
- Promote gate uses APP_TYPES.FRONT_END constant instead of raw string
- Both release and promote errors now show actual API message in toast
  AND push to the app debugger
- Fixed inline ReleaseVersionButton (version panel) error handler

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

* fix: debugger log format and version dropdown design language

- Use type 'component' with description field for debugger logs
  so the error message is visible in the debugger panel
- Update frontend/ee submodule: status dots in dropdown, draft
  modules visible in component panel

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

* chore: update server/ee submodule — promote gate in EE override

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

* refactor: move module guards from CE to EE only

Module-specific guards (deletion, release, promote) belong in EE
since modules are an EE-only feature. CE users who downgrade would
be blocked by stale module references they can't fix.

- Removed module deletion guard from CE apps/service.ts
- Removed release gate from CE apps/service.ts
- Removed dead promote gate from CE versions/service.ts
- All three guards now live in EE overrides only

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

* fix: format module names on separate lines in error messages

Each module name now appears on its own line in error toasts for
deletion, release, and promote gates.

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

* chore: update frontend/ee submodule — Released badge in version dropdown

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

* chore: update server/ee submodule — newline formatting in error messages

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

* fix: code review findings + design feedback

Review fixes:
- Guard checkModuleVersionInUse with app.type === 'module' to skip
  unnecessary JSONB queries for non-module version deletions
- Exclude self-references in EE deletion guard
- Add DISTINCT to release gate query
- LEFT JOIN on environments in promote gate to catch NULL env IDs

Design feedback (Nechal):
- Remove status dots from version dropdown (clutter in small dropdown)
- Badge hugs the version name with tighter gap

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

* fix: code review fixes + module version audit log keys

PR review fixes:
- Move hooks above early return in LifecycleCTAButton (Rules of Hooks)
- Move UI state cleanup before debugger.log in error handlers
- Add missing setShowConfirmation(false) in modules ReleaseVersionButton
- Add fallback mapping for unmatched version IDs on module import
- Add Logger for checkModuleVersionInUse error logging

Audit log event names for module versioning:
- Add MODULE_VERSION_AUDIT_KEYS constants (CREATE/DELETE/SAVE/PROMOTE/RELEASE)
- Interceptor prefers service-set actionType over feature config
- Version/app services set module-specific audit keys when app.type === 'module'
- Add auditLogsKey for module CRUD features (MODULE_CREATE/DELETE/UPDATE)

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

* fix: revert unrelated review changes + move audit keys to modules

- Revert LifecycleCTAButton hooks reorder (unrelated to this PR)
- Revert ReleaseVersionButton/PromoteConfirmationModal try-catch wrappers
- Move MODULE_VERSION_AUDIT_KEYS from versions/constants to modules/constants

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

* chore: update server/ee submodule pointer

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

* fix: skip git sync freeze for modules in version service

Modules are common across all branches — git sync freeze does not apply.
Adds app.type !== 'module' guard in CE prepareResponse.

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

* fix: scalable error copy for module dependency gates

Frontend catch handlers now extract structured errors — toast shows
generic message, debugger description shows full module list.

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

* fix: read structured error fields correctly in catch handlers

Read rawError.error (not rawError.message) to match the { error, details }
shape from BadRequestException({ message: { error, details } }).

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

* chore: update server/ee submodule — error copy polish

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

* chore: update server/ee submodule — freeze module after version save

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

* chore: update server/ee submodule — widen module freeze check

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

* fix: module environment derivation, version switch crash, and delete toast

- Derive module environment from parent app's store instead of static
  moduleEnvironmentId property. Ensures constants/secrets/queries
  resolve from the correct environment per the compatibility matrix.

- Remove moduleEnvironmentId from all write/read/import-export paths.
  Existing DB values are inert and harmless.

- Add key={moduleVersionId} to <Viewer> to force clean re-mount on
  version switch, preventing stale state crash (empty canvas).

- Add stale-request cancellation guard in useAppData to prevent
  unmounted component's async callback from overwriting new state.

- Fix delete-version toast: "Cannot delete only version of module"
  instead of "app" when deleting the last module version.

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

* feat: block app version save when using draft module versions

Saving an app version is now blocked if any ModuleViewer components
reference draft module versions. The draft module is still editable,
so saving the app would break the contract that saved = immutable.

- Added checkDraftModulesInApp() in CE util.service.ts (mirrors
  checkModuleVersionInUse pattern)
- Called from update() before DRAFT→PUBLISHED status transition
- Structured error format: toast shows message, debugger shows
  full module list
- Module saving itself is unaffected (guard checks app.type)

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

* fix: make checkDraftModulesInApp public (TS2445)

Called from VersionService.update() which is outside the class.

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

* feat: data migration to promote and release existing module versions

Modules now inherit the parent app's environment for constants and
data sources. Existing modules had current_environment_id pointing
to Development, which would break apps viewing them in Staging or
Production.

This migration promotes the latest version of each module to the
production environment and sets it as released - mirroring the
workflow versioning migration pattern.

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

* fix: modules in public apps - cache-first load + constantsResp guard

Public app viewers are unauthenticated, so module data fetches via
getAppVersionData (JwtAuthGuard) fail with 401. Two fixes:

1. Try getModuleDefinition() cache before API call. Parent app's
   public response includes module definitions, so the cache hit
   avoids the authenticated endpoint entirely.

2. Guard constantsResp against undefined. When the environment
   fetch fails (401 for public apps), constantsResp was undefined
   causing a TypeError crash on extractEnvironmentConstantsFromConstantsList.

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

* fix: restrict cache-first module loading to public access only

Cache-first was overly broad - could serve stale definitions in
authenticated editor previews. Now gated on isPublicAccess so
version-pinned API calls are preserved for authenticated flows.

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

* fix: modules with data queries crash in public/released apps

Two issues (ported from PR #15874):

1. Deep-clone cached module definitions before resolving. Zustand/Immer
   returns frozen objects, but normalizeQueryTransformationOptions
   mutates query options in-place causing TypeError on frozen objects.
   Only manifests when modules have data queries.

2. Add id field to CE getBySlug module response. setModuleDefinition
   stores by module.id - without it, getModuleDefinition(appId) cannot
   find the cached definition. EE already had this (line 694).

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

* fix: allow module query execution in public apps

QueryAuthGuard.findByDataQuery returns the MODULE app (query owner),
not the parent app. Modules aren't marked is_public, so the guard
rejected unauthenticated requests with "Authentication is required."

Added isModuleInPublicApp() check: when the query's owning app is a
module and not public itself, check if it's used in the released
version of any public app. Only checks current_version_id (released)
to prevent unauthorized access via unpublished app versions.

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

* Revert "fix: allow module query execution in public apps"

This reverts commit 7917eba47b.

* fix: modules should not inherit git branching locked state

- Backend: skip git sync freeze for modules in CE getOne, add
  version-status freeze for non-draft module versions
- Frontend: make getShouldFreeze accept and use isModuleEditor param
  (was silently ignored, affecting 20+ UI disable points)

* chore: update submodule pointers

* fix: getShouldFreeze module bypass must check version status not just released

The previous module bypass only checked isVersionReleased, missing
PUBLISHED (saved/promoted) versions. Check selectedVersion.status
directly since isEditorFreezed is shared state contaminated by the
parent app's git sync freeze.

* fix: handle nullable version status in module freeze check

Status column is nullable — null/undefined should be treated as DRAFT
(editable), not frozen. Use AppVersionStatus enum in CE backend.

* chore: update submodule pointers

* chore: update submodule pointers

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 23:49:51 +05:30
gsmithun4
37a4066d29 Merge branch 'main' into rebase/lts-main-15-mgs 2026-04-17 15:02:53 +05:30
Ajith KV
9fa776741a
Update app slug test cases for new flow (#15972) 2026-04-17 15:00:44 +05:30
gsmithun4
1b10e28792 Merge branch 'main' into rebase/lts-main-15-mgs 2026-04-16 14:20:58 +05:30
Siddharth Pundir
7d0c386d79
Fix/pgsql optional password ssl auth (#15883) 2026-04-15 21:36:05 +05:30
YuktiGoyal02
aa5806caee
Added environment permission UI and End-user cases (#15776)
* added environment UI and end-user cases

* pushed minor fix
2026-04-15 12:22:01 +05:30
Shantanu Mane
d91137edb3
feat: Workspace Env Config (#15593)
* feat: add environment configuration support for Git providers and enhance git sync functionality

* feat: update Git environment constants and integrate OrganizationGitSyncRepository

* feat: add testProviderConnection method to gitSyncService for testing Git provider connections

* chore: remove scanning on module init

* feat: integrate OrganizationEnvRegistryService and reload envConfig on workspace create and slug update

* feat: eload env config on onboarding

* feat: add testProviderConnection method and update LicenseBase for envGitMapping

* fix: handle downgrade path for env registry

* fix flaky case in granular access

* uncommented changes

* feat: update .gitignore to include additional environment files

* feat: refactor organization environment handling and remove deprecated service

* feat: implement Git environment registry service and refactor organization environment handling

* feat: rename envGitMapping to workspaceEnv across licensing module

* chore: remove unnecessary try-catch

* refactor(org-env): update interfaces — remove callback contract, add ensureResolved

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: remove reload-on-org-event, swap bootstrap init order

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(org-env): add getResolvedOrganizationIds() to interface, CE stub, and test

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test: improve assertions in getResolvedOrganizationIds() test

* feat: refactor GitEnvRegistryService import paths and add new service implementation

* feat: add applyLicenseToResolvedOrgs method to IGitEnvRegistryService and GitEnvRegistryService

* refactor: replace GitEnvRegistryService with GitSyncEnvUtilService and update related references

* feat: add use_env_config column to organization_git_sync and remove env_git_provider column

* refactor: remove EncryptionModule import and update OrganizationEnvModule imports

* feat: introduce OrganizationEnvUtilService and update OrganizationEnvModule to utilize it

---------

Co-authored-by: Yukti Goyal <yuktigoyal02@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 23:14:46 +05:30
gsmithun4
d7f1806ab6 Merge branch 'lts-3.16' into rebase/lts-main-14-mgs 2026-04-13 10:52:58 +05:30
Shantanu Mane
19cfd0220e
Fix: Preserve Auth Invite Token (#15887)
* fix: preserve org invite token when activating account via signup redirect

* fixed bulk upload flaky case

* datasource modal fix

* fix: preserve invitation token during account activation for cross-organization invites

* fix: improve test structure and linting

* chore: removed trivial comments

* fix: update version to 3.20.143-lts across all components

---------

Co-authored-by: Yukti Goyal <yuktigoyal02@gmail.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
2026-04-13 10:49:18 +05:30
gsmithun4
d0f4d619b4 Merge branch 'main' into rebase/lts-main-14-mgs 2026-04-09 21:07:43 +05:30
Adish M
20b862e948
Merge pull request #15429 from ToolJet/test/image-component-automation
Add feature validations for image test app
2026-04-08 14:37:49 +05:30
ajith-k-v
d78392663a Add cypress test cases for byok support in AI 2026-04-07 17:47:26 +05:30
YuktiGoyal02
c103e96af5
fixed reset password flaky case (#15853) 2026-04-07 17:25:53 +05:30
gsmithun4
7216934136 Merge branch 'main' into rebase/lts-main-13-mgs 2026-04-02 22:49:55 +05:30
Siddharth Pundir
668807c2c9
Mssql entra auth implementation (#15760)
* Mssql entra auth implementation

* migration for sql auth type

* Update index.ts

* automation fix

* Undoing the change

* fixed mssql authdropdown (#15811)

---------

Co-authored-by: Srimaniteja <mani@tooljet.com>
2026-04-02 21:05:27 +05:30
kavinvenkatachalam
5c69bbf585 Merge remote-tracking branch 'origin/lts-3.16' into chore/merge-lts-to-main 2026-04-02 11:04:56 +05:30
emidhun
e2dfbbdcfd fix: resolve CodeMirror element obstruction in postgres query editor test
Add force-click on .cm-content to pre-focus the CodeMirror field before
clearAndTypeOnCodeMirror runs its .realClick(). The "Primary key column-s"
field was covered by a flex layout container in the query editor panel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 13:21:01 +11:00