2025-02-25 06:52:50 +00:00
|
|
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
2021-09-08 18:24:58 +00:00
|
|
|
const webpack = require('webpack');
|
2021-03-31 14:01:01 +00:00
|
|
|
const path = require('path');
|
2022-08-16 07:06:47 +00:00
|
|
|
const CompressionPlugin = require('compression-webpack-plugin');
|
|
|
|
|
const TerserPlugin = require('terser-webpack-plugin');
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
|
|
|
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
2023-03-24 11:35:08 +00:00
|
|
|
require('dotenv').config({ path: '../.env' });
|
2023-03-20 11:34:24 +00:00
|
|
|
const hash = require('string-hash');
|
2023-09-04 04:30:14 +00:00
|
|
|
const { sentryWebpackPlugin } = require('@sentry/webpack-plugin');
|
|
|
|
|
const fs = require('fs');
|
|
|
|
|
const versionPath = path.resolve(__dirname, '.version');
|
|
|
|
|
const version = fs.readFileSync(versionPath, 'utf-8').trim();
|
2025-07-07 08:43:06 +00:00
|
|
|
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
2021-03-31 14:01:01 +00:00
|
|
|
|
|
|
|
|
const environment = process.env.NODE_ENV === 'production' ? 'production' : 'development';
|
2025-02-25 12:28:43 +00:00
|
|
|
const edition = process.env.TOOLJET_EDITION;
|
Feature: Custom domains support for Cloud edition (#15228)
* feat(custom-domains): add custom domains module for Cloud edition
Full-stack implementation of custom domains feature:
- Backend: entity, migration, repository, CE module stubs, DTOs, ability/guard
- Backend: CloudFeatureGuard on all EE endpoints (Cloud-only)
- Frontend: API service, Zustand store, ManageCustomDomainPage
- License gating via LICENSE_FIELD.CUSTOM_DOMAINS
- Cloudflare Custom Hostnames API integration (EE provider)
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add CORS, cookie, scheduler, and e2e tests
- Dynamic CORS origin with 5-min cache for custom domain support
- Cookie SameSite=None when ENABLE_CUSTOM_DOMAINS is set
- Status polling scheduler for pending Cloudflare domain verification
- E2e test suite with Polly.js record/replay for cloud edition
- UI layout fix for custom domain settings page
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add frontend domain detection and routing
- Add isCustomDomain() helper to detect non-TOOLJET_HOST hostnames
- Resolve custom domain to workspace in authorizeWorkspace before
session validation
- Resolve custom domain in AuthRoute for login page org config
- Load organization relation in findActiveDomain repository query
- Update e2e test to verify organizationSlug in resolve response
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: make all URLs custom-domain-aware
When a workspace has a custom domain configured, all generated URLs
(emails, SSO redirects, share links, settings pages) now use that
domain instead of TOOLJET_HOST.
Licensing:
- Add customDomains getter to LicenseBase with plan-level defaults
- Register LICENSE_FIELD.CUSTOM_DOMAINS in license helper
- Add customDomain to features response for frontend access
- Add customDomains to Terms interface
Frontend:
- Make getHostURL() custom-domain-aware using isCustomDomain()
- Replace 14 inline TOOLJET_HOST references with getHostURL()
(SSO modals, OAuth callbacks, invite links, app URLs, etc.)
Backend:
- Add CustomDomainCacheService (Redis-backed, 5-min TTL)
- Add findActiveByOrganizationId() to repository
- Add optional host param to generateInviteURL/generateOrgInviteURL
- Add getHostForOrganization() helper for resolving org domains
- Inject cache service into EmailService and OauthService
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: remove unvalidated custom domains e2e test
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: add customDomains feature flag to cloud license terms
Update ee submodule — adds customDomains to OrganizationPaymentService
so Pro plan correctly gets false and Team plan gets true.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: extend VerifyDomainResult interface with additional properties
* feat: move custom domain from workspace settings to instance settings
Update frontend/ee submodule to move the custom domain page out of
workspace settings and into instance settings sidebar for both cloud
and EE editions.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: align custom domain buttons with white labelling and Figma design
Update frontend/ee submodule - cancel button always clickable,
test connection button sizing matches Figma (14px font, 6px radius),
save button pattern matches white labelling exactly.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: add CSRF origin check middleware with Sec-Fetch-Site hardening
Add setupCsrfOriginCheck middleware that validates Origin headers on
mutation requests when custom domains are enabled. Rejects requests
from origins not matching TOOLJET_HOST or active custom domains.
Tightens the null-Origin fallback using Sec-Fetch-Site: browser
requests with no Origin but Sec-Fetch-Site: cross-site are now
blocked, closing the stripped-Origin CSRF attack vector while
keeping cURL/Postman/server-to-server calls unaffected.
Also removes the in-memory CORS origin cache in favour of direct
DB lookups via fetchCustomDomainOrigins.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: register CSRF origin check middleware in bootstrap
Wire up setupCsrfOriginCheck in the application bootstrap so the
middleware is active when custom domains are enabled.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: guard sameSite=none cookies with HTTPS check
sameSite=none requires secure=true, which browsers reject on plain
HTTP. Add isHttpsEnabled() guard so custom domain cookie settings
only apply over HTTPS, preventing broken sessions in local dev.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: redirect to main host on custom domain workspace mismatch
When a custom domain resolves to a different workspace than the URL
slug, or when domain resolution fails with no slug fallback, redirect
to TOOLJET_HOST instead of showing a broken state.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: add custom domain dev server hints and update lockfile
Add commented-out webpack devServer options for testing custom domains
locally (host binding, allowed hosts, cache-control). Update lockfile.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: load Pyodide from CDN for cloud builds
For cloud (Cloudflare Pages) builds, load Pyodide from jsDelivr CDN
instead of bundling the 823MB local copy, avoiding the 25MB per-file
limit. Self-hosted/airgapped builds continue using the local bundle.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: update ee submodule for custom domain workspace URL fix
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: update ee submodule for custom domain input fixes
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: update ee submodule for custom domain dark mode fixes
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: update ee submodule for connection test toast and auto-reset
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: add pre/post build hooks for cloud frontend build
Add prebuild:frontend:cloud and postbuild:frontend:cloud lifecycle hooks
to install devDependencies (webpack, html-webpack-plugin, etc.) before
the cloud build and prune them after, matching the existing
build:frontend pattern.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: CSRF origin check fails closed on DB error
Previously, if fetchCustomDomainOrigins() threw (DB down, connection
timeout), the .catch(() => next()) silently bypassed all CSRF
protection. Now blocks the request with 403 instead.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: stale custom hostname cleanup and license deadlock on delete/status
Remove license gate from DELETE, GET, STATUS endpoints so admins can
always view and remove custom domains even after license expiry. Add
scheduled cleanup job that removes stale pending domains from both
Cloudflare and DB after a configurable TTL (default 2 days).
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: Cloudflare error handling — config validation, 404 tolerance, status mapping
- Update IDomainProvider interface: getHostnameStatus returns null on 404
- Update CE stub to match interface
- Add sslStatus mapping to scheduler (matching provider's mapSslStatus)
- Expand scheduler statusMap with active_redeploying and blocked
- Allow null sslStatus in VerifyDomainResult type
- Update ee submodule
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update server/ee submodule — correct guard order on custom-domains
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update frontend/ee submodule — workspace login URL uses custom domain
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update server/ee submodule — OIDC redirect uses custom domain host
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: route workspace switch to target custom domain
When switching between workspaces with different custom domains, the URL
now navigates to the target workspace's custom domain instead of staying
on the current origin or falling back to TOOLJET_HOST.
Backend enriches GET /api/organizations with custom_domain (batch query,
Cloud edition only). Frontend reads it and applies 3-way routing:
custom domain redirect, fallback to base domain, or same-origin switch.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: email links use custom domain instead of default TOOLJET_HOST
EmailModule was missing the CustomDomainsModule import, so
CustomDomainCacheService was never injected (always undefined due to
@Optional). All email URLs fell back to process.env.TOOLJET_HOST.
Additionally, several email event emissions were missing organizationId
in their payloads, preventing custom domain lookup even with proper DI.
Changes:
- Import CustomDomainsModule in EmailModule for DI wiring
- Pass organizationId in forgotPassword email payload
- Pass organizationId in 5 onboarding welcome-email payloads
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: block custom domain access after plan downgrade to Pro
- Frontend: always redirect to TOOLJET_HOST when custom domain resolve
fails (removes slug-based fallthrough that allowed bypassing the check)
- Frontend: extract redirectToMainHost() helper, add console.error logging
- Update server/ee submodule with license check in resolveCustomDomain
Closes #15228
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: proxy API through Cloudflare Worker to fix incognito sign-in on custom domains
Incognito browsers block third-party cookies, causing silent sign-in
failure on custom domains where the frontend origin differs from the
API server. Three changes:
- Frontend: override config.apiUrl to /api on custom domains so
requests route through the Cloudflare Worker proxy (first-party)
- Worker docs: add API/WebSocket proxy to the Cloudflare Worker with
proper forwarding headers and 502 fallback
- server/ee submodule: add ENABLE_CUSTOM_DOMAINS guard to OIDC cookie
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update frontend/ee submodule — prefill default domain on clear
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: compare hostnames not origins for custom domain API proxy override
The origin comparison (`localhost:3000` vs `localhost:8082`) triggered the
proxy rewrite in local dev, routing API calls to webpack dev server which
returned index.html instead of JSON — breaking app initialization.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update server/ee submodule — pass customDomainRepository to EE OrganizationsService
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* revert: remove "prefill default domain on clear" from custom domains
Reverts the frontend/ee submodule from a21b75aed back to e8191629e.
Showing a pre-filled default domain when the input is empty implies
the user owns that domain, which is misleading.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: harden custom domains — CORS caching, error handling, scheduler guards, and frontend safety
PR review fixes for #15228:
Backend:
- Cache CORS/CSRF custom domain origins in-memory (30s TTL) to avoid per-request DB queries
- Normalize TOOLJET_HOST (strip trailing slash) before origin comparison in CORS and CSRF middleware
- Add ENABLE_CUSTOM_DOMAINS guard to scheduler handleCron (was only on handleStaleCleanup)
- Log Cloudflare API errors in scheduler instead of silently continuing
- Fix scheduler stale cleanup TOCTOU: mark domain deleted before remove()
- Invalidate Redis cache after scheduler status transitions and stale cleanup
- Add Redis error handler, connectTimeout, and try-catch with DB fallback in cache service
- Add comment explaining CSRF exempt paths rationale
- Import CustomDomainsModule in AuthModule for @Optional() cache injection
- Remove dead 'no_records' variant from VerifyDomainResult.dnsStatus
- Update server/ee submodule (rate limiting, TOCTOU fix, DNS logging, auth response)
Frontend:
- Guard SwitchWorkspacePage against undefined TOOLJET_HOST
- Add console.error in isCustomDomain() and redirectToMainHost() for config issues
- Defensively strip protocol prefix in getTargetDomainURL()
- Add redirect-to-custom-domain logic in authorizeWorkspace with cooldown
- Enable webpack dev server proxy for custom domain local testing
Docs:
- Fix Cloudflare proxy statement: applies to any CF-hosted domain, not same-account
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update server/ee submodule — OIDC redirect_uri uses request origin for custom domains
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: prevent flash of base-domain UI during custom domain redirect
- Move redirect check before setUser()/setOrganization() store updates
so no authenticated UI (avatar, org name) renders on the base domain
- Remove no-op clearRedirectAttempt() on custom domain — sessionStorage
is origin-scoped so it can't clear the base domain's flag; the cooldown
expires naturally after REDIRECT_COOLDOWN_MS
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: remove ThrottlerGuard from custom domain resolve endpoint
Update server/ee submodule — ThrottlerGuard on the resolve endpoint
caused a NestJS dependency crash (THROTTLER:MODULE_OPTIONS missing
in CustomDomainsModule). CloudFeatureGuard is sufficient protection
for this unauthenticated, cloud-only endpoint.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* refactor: extract applyCustomDomainCookieOptions, fix org list for super admins
- Extract duplicated cookie SameSite/Secure logic into shared applyCustomDomainCookieOptions() helper
- Replace 3 inline copies (session util x2, OIDC service) with one-liner calls
- Rename customDomain → custom_domain in OrganizationWithPlan for consistent API casing
- Refactor fetchOrganizations so super admins also get license/custom domain enrichment
- Add @Req() param to OpenID redirect controller for custom domain host detection
- Update server/ee submodule
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* refactor: remove dead verifyDomain from IDomainProvider, fix cookie type
- Remove verifyDomain() from IDomainProvider interface and all implementations
(service does inline DNS resolution, method was never called)
- Fix applyCustomDomainCookieOptions type: sameSite accepts string | boolean
- Update server/ee submodule
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* revert: remove dev-only webpack proxy and host overrides for custom domains
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: remove internal custom domains Cloudflare setup doc
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: rename 'Workspace ID' label to 'Workspace URL' on custom domain page
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: match custom domain save button loading style with whitelabelling
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: reduce custom domain redirect cooldown from 5 minutes to 10 seconds
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: strip trailing slash from TOOLJET_HOST in URL helpers
Prevents double-slash URLs when TOOLJET_HOST is configured with a
trailing slash (e.g. `https://example.com/` → `https://example.com//error/404`).
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: strip trailing slash from TOOLJET_HOST in workspace switchers
Same defensive fix as the URL helpers — raw TOOLJET_HOST concatenation
in SwitchWorkspacePage and BaseOrganizationList could produce
double-slash URLs when the host has a trailing slash.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add rebuildOriginsSet/getOriginsSet to cache service
Stores active custom domain origins in a Redis Set for cross-pod
CORS/CSRF consistency. rebuildOriginsSet uses a pipeline (DEL + SADD +
EXPIRE) for atomicity. getOriginsSet returns null on empty/error so
callers can fall back to DB.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): use Redis for CORS/CSRF origins in middleware
fetchCustomDomainOrigins now reads from Redis Set first, falls back to
DB. Local cache TTL reduced from 30s to 5s. Both setupCsrfOriginCheck
and setSecurityHeaders lazily capture CustomDomainCacheService via a
shared tryGetCacheService helper (DRY, CE-safe with strict: false).
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): rebuild Redis origins set in scheduler and EE service
Status poll, stale cleanup, and all EE domain lifecycle operations now
trigger rebuildOriginsSet() so CORS origins stay consistent after
background status changes.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): seed Redis CORS origins set on startup
Ensures the origins set is populated immediately when the server starts,
before any CORS/CSRF checks are needed.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): increase Redis origins TTL and fix success logging
Raise ORIGINS_TTL_SECONDS from 300s to 700s so the key outlasts the
10-minute scheduler interval (avoids sustained DB fallback). Skip the
success log when individual pipeline commands fail.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add Redis pending-flag methods to cache service
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): gate scheduler polling behind Redis pending flag
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): set pending flag on domain creation
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): resolve redirect loop between base and custom domain
After login, excludeWorkspaceIdFromURL stripped the workspace slug from the
redirect URL, producing bare paths like /home. On the custom domain,
getWorkspaceIdOrSlugFromURL then misinterpreted 'home' as a workspace slug,
triggering redirectToMainHost and creating an infinite loop.
- Re-prepend workspace slug to the custom domain redirect URL
- Always trust the resolved slug on custom domains (1:1 mapping)
- Remove mismatch guard in AuthRoute that redirected back to main host
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): session transfer token + OAuth redirect_uri fix
Two problems with the custom domain redirect flow:
1. Session lost on redirect: tj_auth_token cookie is domain-scoped — doesn't
follow the user from gcpstage.tooljet.ai to app.company.com. Added a one-time
Redis transfer token (30s TTL, GETDEL atomic) — the frontend creates a token,
redirects to /api/session/transfer on the custom domain, the CF Worker proxies
to the backend which sets the cookie as first-party via 302.
2. OAuth redirect_uri mismatch: Google/OIDC redirect_uri used the custom domain
hostname via getHostURL()/resolveRedirectHost(). If the IdP doesn't have the
custom domain registered, auth fails. Now always use TOOLJET_HOST for
redirect_uri. Session transfer handles the hop to the custom domain after auth.
Changes:
- Add CE session-transfer module stubs (SubModule pattern)
- Add frontend session-transfer service
- Update authorizeWorkspace.js: transfer token flow replaces direct redirect
- Update GoogleSSOLoginButton.jsx: use TOOLJET_HOST for redirect_uri
- Register SessionTransferModule conditionally for Cloud edition in AppModule
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update server/ee submodule — restore OIDC redirect_uri resolution
Points to server/ee commit that restores request-origin based
redirect_uri for OIDC, supporting both base domain and custom domain
IdP registrations.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add session transfer to workspace switching
Use session transfer tokens for cross-domain workspace switches so
the auth cookie is set on the target domain. Passes target org ID
in the token to land on the correct workspace immediately.
- Extract useSessionTransferRedirect hook (shared debounce + redirect)
- Add TOOLJET_HOST null guard in BaseOrganizationList
- Debounce new-tab opens with 500ms cooldown
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): defer HttpClient host resolution to request time
HttpClient eagerly captured config.apiUrl at module load time, before
index.jsx overrides it to '/api' on custom domains. This caused
tooljet-db, comments, and plugins services to make cross-origin
requests directly to the backend, bypassing the CF Worker proxy.
The cookie (scoped to the custom domain) wasn't sent, resulting in
401s and an infinite reload loop.
Use a lazy getter so config.apiUrl is read at request time. Also
convert marketplace.service.js to use hostFn callback for the same
lazy resolution.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): cross-domain logout — clear base domain session
Logging out from a custom domain only killed the custom domain's
session. The base domain session survived, causing authorizeWorkspace
to re-authenticate the user via session transfer.
Two fixes:
1. clearCookie now passes matching cookie options (sameSite, secure,
httpOnly) so the browser actually deletes the cookie
2. Frontend makes a parallel cross-origin logout call to the base
domain when on a custom domain (works because cookies are
sameSite=none and CORS allows custom domain origins)
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): use base domain for workspace creation on custom domains
When creating a workspace from a custom domain, the workspace link
preview incorrectly showed the custom domain URL and the post-creation
redirect stayed on the custom domain (which is bound to a different
workspace). Now the link preview always shows TOOLJET_HOST and the
redirect uses session transfer to carry auth to the base domain.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update ee-frontend submodule — SSO redirect URLs
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* refactor(custom-domains): reuse getBaseHostURL() in workspace creation redirect
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update ee-frontend submodule — SAML ACS URL fix
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): SAML SSO custom domain support + update server/ee submodule
Update CE interfaces and base classes to accept optional host/requestHost
parameters for SAML custom domain resolution. Updates server/ee submodule
with the full SAML custom domain fix.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update ee-frontend submodule — hide custom domain for non-cloud
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update server/ee submodule — SAML audience mismatch fix
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update server/ee submodule — SAML issuer fix + error handling
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update submodules — SAML ACS URL fix for all topologies
- server/ee: Add #resolveBackendBaseUrl() fallback chain for ACS URL;
only pass host override for custom domains
- frontend/ee: Show correct backend-derived ACS URL in SAML modal
Co-Authored-By: Claude Opus 4.6 <[email protected]>
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
2026-03-16 16:44:16 +00:00
|
|
|
const PYODIDE_CDN_URL = 'https://cdn.jsdelivr.net/pyodide/v0.23.2/full/';
|
|
|
|
|
const PYODIDE_LOCAL_URL = '/assets/libs/pyodide-0.23.2/';
|
|
|
|
|
const pyodideBaseUrl = edition === 'cloud' ? PYODIDE_CDN_URL : PYODIDE_LOCAL_URL;
|
2025-07-07 08:43:06 +00:00
|
|
|
const isDevEnv = process.env.NODE_ENV === 'development';
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
const isProductionMode = environment === 'production';
|
2025-02-25 06:52:50 +00:00
|
|
|
|
|
|
|
|
// Create path to empty module
|
|
|
|
|
const emptyModulePath = path.resolve(__dirname, 'src/modules/emptyModule');
|
2021-03-31 14:01:01 +00:00
|
|
|
|
|
|
|
|
const API_URL = {
|
2022-08-27 16:28:24 +00:00
|
|
|
production: process.env.TOOLJET_SERVER_URL || (process.env.SERVE_CLIENT !== 'false' ? '__REPLACE_SUB_PATH__' : ''),
|
2022-03-16 16:06:28 +00:00
|
|
|
development: `http://localhost:${process.env.TOOLJET_SERVER_PORT || 3000}`,
|
2021-04-30 08:10:57 +00:00
|
|
|
};
|
2021-03-31 14:01:01 +00:00
|
|
|
|
2022-08-27 16:28:24 +00:00
|
|
|
const ASSET_PATH = process.env.ASSET_PATH || '';
|
2022-03-01 07:55:51 +00:00
|
|
|
|
2022-08-29 10:19:39 +00:00
|
|
|
function stripTrailingSlash(str) {
|
|
|
|
|
return str.replace(/[/]+$/, '');
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-22 11:22:34 +00:00
|
|
|
const plugins = [
|
2025-02-25 06:52:50 +00:00
|
|
|
new webpack.ProvidePlugin({
|
|
|
|
|
process: 'process/browser.js',
|
|
|
|
|
Buffer: ['buffer', 'Buffer'],
|
|
|
|
|
}),
|
2024-02-22 11:22:34 +00:00
|
|
|
new HtmlWebpackPlugin({
|
|
|
|
|
template: './src/index.ejs',
|
|
|
|
|
favicon: './assets/images/logo.svg',
|
|
|
|
|
}),
|
|
|
|
|
new CompressionPlugin({
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
test: /\.(js|css)(\?.*)?$/i,
|
2024-02-22 11:22:34 +00:00
|
|
|
algorithm: 'gzip',
|
|
|
|
|
}),
|
|
|
|
|
new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /(en)$/),
|
|
|
|
|
new webpack.DefinePlugin({
|
|
|
|
|
'process.env.ASSET_PATH': JSON.stringify(ASSET_PATH),
|
|
|
|
|
'process.env.SERVE_CLIENT': JSON.stringify(process.env.SERVE_CLIENT),
|
2025-02-25 12:28:43 +00:00
|
|
|
'process.env.TOOLJET_EDITION': JSON.stringify(edition || 'ce'),
|
Feature: Custom domains support for Cloud edition (#15228)
* feat(custom-domains): add custom domains module for Cloud edition
Full-stack implementation of custom domains feature:
- Backend: entity, migration, repository, CE module stubs, DTOs, ability/guard
- Backend: CloudFeatureGuard on all EE endpoints (Cloud-only)
- Frontend: API service, Zustand store, ManageCustomDomainPage
- License gating via LICENSE_FIELD.CUSTOM_DOMAINS
- Cloudflare Custom Hostnames API integration (EE provider)
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add CORS, cookie, scheduler, and e2e tests
- Dynamic CORS origin with 5-min cache for custom domain support
- Cookie SameSite=None when ENABLE_CUSTOM_DOMAINS is set
- Status polling scheduler for pending Cloudflare domain verification
- E2e test suite with Polly.js record/replay for cloud edition
- UI layout fix for custom domain settings page
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add frontend domain detection and routing
- Add isCustomDomain() helper to detect non-TOOLJET_HOST hostnames
- Resolve custom domain to workspace in authorizeWorkspace before
session validation
- Resolve custom domain in AuthRoute for login page org config
- Load organization relation in findActiveDomain repository query
- Update e2e test to verify organizationSlug in resolve response
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: make all URLs custom-domain-aware
When a workspace has a custom domain configured, all generated URLs
(emails, SSO redirects, share links, settings pages) now use that
domain instead of TOOLJET_HOST.
Licensing:
- Add customDomains getter to LicenseBase with plan-level defaults
- Register LICENSE_FIELD.CUSTOM_DOMAINS in license helper
- Add customDomain to features response for frontend access
- Add customDomains to Terms interface
Frontend:
- Make getHostURL() custom-domain-aware using isCustomDomain()
- Replace 14 inline TOOLJET_HOST references with getHostURL()
(SSO modals, OAuth callbacks, invite links, app URLs, etc.)
Backend:
- Add CustomDomainCacheService (Redis-backed, 5-min TTL)
- Add findActiveByOrganizationId() to repository
- Add optional host param to generateInviteURL/generateOrgInviteURL
- Add getHostForOrganization() helper for resolving org domains
- Inject cache service into EmailService and OauthService
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: remove unvalidated custom domains e2e test
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: add customDomains feature flag to cloud license terms
Update ee submodule — adds customDomains to OrganizationPaymentService
so Pro plan correctly gets false and Team plan gets true.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: extend VerifyDomainResult interface with additional properties
* feat: move custom domain from workspace settings to instance settings
Update frontend/ee submodule to move the custom domain page out of
workspace settings and into instance settings sidebar for both cloud
and EE editions.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: align custom domain buttons with white labelling and Figma design
Update frontend/ee submodule - cancel button always clickable,
test connection button sizing matches Figma (14px font, 6px radius),
save button pattern matches white labelling exactly.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: add CSRF origin check middleware with Sec-Fetch-Site hardening
Add setupCsrfOriginCheck middleware that validates Origin headers on
mutation requests when custom domains are enabled. Rejects requests
from origins not matching TOOLJET_HOST or active custom domains.
Tightens the null-Origin fallback using Sec-Fetch-Site: browser
requests with no Origin but Sec-Fetch-Site: cross-site are now
blocked, closing the stripped-Origin CSRF attack vector while
keeping cURL/Postman/server-to-server calls unaffected.
Also removes the in-memory CORS origin cache in favour of direct
DB lookups via fetchCustomDomainOrigins.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: register CSRF origin check middleware in bootstrap
Wire up setupCsrfOriginCheck in the application bootstrap so the
middleware is active when custom domains are enabled.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: guard sameSite=none cookies with HTTPS check
sameSite=none requires secure=true, which browsers reject on plain
HTTP. Add isHttpsEnabled() guard so custom domain cookie settings
only apply over HTTPS, preventing broken sessions in local dev.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: redirect to main host on custom domain workspace mismatch
When a custom domain resolves to a different workspace than the URL
slug, or when domain resolution fails with no slug fallback, redirect
to TOOLJET_HOST instead of showing a broken state.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: add custom domain dev server hints and update lockfile
Add commented-out webpack devServer options for testing custom domains
locally (host binding, allowed hosts, cache-control). Update lockfile.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: load Pyodide from CDN for cloud builds
For cloud (Cloudflare Pages) builds, load Pyodide from jsDelivr CDN
instead of bundling the 823MB local copy, avoiding the 25MB per-file
limit. Self-hosted/airgapped builds continue using the local bundle.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: update ee submodule for custom domain workspace URL fix
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: update ee submodule for custom domain input fixes
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: update ee submodule for custom domain dark mode fixes
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: update ee submodule for connection test toast and auto-reset
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: add pre/post build hooks for cloud frontend build
Add prebuild:frontend:cloud and postbuild:frontend:cloud lifecycle hooks
to install devDependencies (webpack, html-webpack-plugin, etc.) before
the cloud build and prune them after, matching the existing
build:frontend pattern.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: CSRF origin check fails closed on DB error
Previously, if fetchCustomDomainOrigins() threw (DB down, connection
timeout), the .catch(() => next()) silently bypassed all CSRF
protection. Now blocks the request with 403 instead.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: stale custom hostname cleanup and license deadlock on delete/status
Remove license gate from DELETE, GET, STATUS endpoints so admins can
always view and remove custom domains even after license expiry. Add
scheduled cleanup job that removes stale pending domains from both
Cloudflare and DB after a configurable TTL (default 2 days).
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: Cloudflare error handling — config validation, 404 tolerance, status mapping
- Update IDomainProvider interface: getHostnameStatus returns null on 404
- Update CE stub to match interface
- Add sslStatus mapping to scheduler (matching provider's mapSslStatus)
- Expand scheduler statusMap with active_redeploying and blocked
- Allow null sslStatus in VerifyDomainResult type
- Update ee submodule
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update server/ee submodule — correct guard order on custom-domains
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update frontend/ee submodule — workspace login URL uses custom domain
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update server/ee submodule — OIDC redirect uses custom domain host
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat: route workspace switch to target custom domain
When switching between workspaces with different custom domains, the URL
now navigates to the target workspace's custom domain instead of staying
on the current origin or falling back to TOOLJET_HOST.
Backend enriches GET /api/organizations with custom_domain (batch query,
Cloud edition only). Frontend reads it and applies 3-way routing:
custom domain redirect, fallback to base domain, or same-origin switch.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: email links use custom domain instead of default TOOLJET_HOST
EmailModule was missing the CustomDomainsModule import, so
CustomDomainCacheService was never injected (always undefined due to
@Optional). All email URLs fell back to process.env.TOOLJET_HOST.
Additionally, several email event emissions were missing organizationId
in their payloads, preventing custom domain lookup even with proper DI.
Changes:
- Import CustomDomainsModule in EmailModule for DI wiring
- Pass organizationId in forgotPassword email payload
- Pass organizationId in 5 onboarding welcome-email payloads
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: block custom domain access after plan downgrade to Pro
- Frontend: always redirect to TOOLJET_HOST when custom domain resolve
fails (removes slug-based fallthrough that allowed bypassing the check)
- Frontend: extract redirectToMainHost() helper, add console.error logging
- Update server/ee submodule with license check in resolveCustomDomain
Closes #15228
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: proxy API through Cloudflare Worker to fix incognito sign-in on custom domains
Incognito browsers block third-party cookies, causing silent sign-in
failure on custom domains where the frontend origin differs from the
API server. Three changes:
- Frontend: override config.apiUrl to /api on custom domains so
requests route through the Cloudflare Worker proxy (first-party)
- Worker docs: add API/WebSocket proxy to the Cloudflare Worker with
proper forwarding headers and 502 fallback
- server/ee submodule: add ENABLE_CUSTOM_DOMAINS guard to OIDC cookie
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update frontend/ee submodule — prefill default domain on clear
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: compare hostnames not origins for custom domain API proxy override
The origin comparison (`localhost:3000` vs `localhost:8082`) triggered the
proxy rewrite in local dev, routing API calls to webpack dev server which
returned index.html instead of JSON — breaking app initialization.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update server/ee submodule — pass customDomainRepository to EE OrganizationsService
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* revert: remove "prefill default domain on clear" from custom domains
Reverts the frontend/ee submodule from a21b75aed back to e8191629e.
Showing a pre-filled default domain when the input is empty implies
the user owns that domain, which is misleading.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: harden custom domains — CORS caching, error handling, scheduler guards, and frontend safety
PR review fixes for #15228:
Backend:
- Cache CORS/CSRF custom domain origins in-memory (30s TTL) to avoid per-request DB queries
- Normalize TOOLJET_HOST (strip trailing slash) before origin comparison in CORS and CSRF middleware
- Add ENABLE_CUSTOM_DOMAINS guard to scheduler handleCron (was only on handleStaleCleanup)
- Log Cloudflare API errors in scheduler instead of silently continuing
- Fix scheduler stale cleanup TOCTOU: mark domain deleted before remove()
- Invalidate Redis cache after scheduler status transitions and stale cleanup
- Add Redis error handler, connectTimeout, and try-catch with DB fallback in cache service
- Add comment explaining CSRF exempt paths rationale
- Import CustomDomainsModule in AuthModule for @Optional() cache injection
- Remove dead 'no_records' variant from VerifyDomainResult.dnsStatus
- Update server/ee submodule (rate limiting, TOCTOU fix, DNS logging, auth response)
Frontend:
- Guard SwitchWorkspacePage against undefined TOOLJET_HOST
- Add console.error in isCustomDomain() and redirectToMainHost() for config issues
- Defensively strip protocol prefix in getTargetDomainURL()
- Add redirect-to-custom-domain logic in authorizeWorkspace with cooldown
- Enable webpack dev server proxy for custom domain local testing
Docs:
- Fix Cloudflare proxy statement: applies to any CF-hosted domain, not same-account
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: update server/ee submodule — OIDC redirect_uri uses request origin for custom domains
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: prevent flash of base-domain UI during custom domain redirect
- Move redirect check before setUser()/setOrganization() store updates
so no authenticated UI (avatar, org name) renders on the base domain
- Remove no-op clearRedirectAttempt() on custom domain — sessionStorage
is origin-scoped so it can't clear the base domain's flag; the cooldown
expires naturally after REDIRECT_COOLDOWN_MS
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: remove ThrottlerGuard from custom domain resolve endpoint
Update server/ee submodule — ThrottlerGuard on the resolve endpoint
caused a NestJS dependency crash (THROTTLER:MODULE_OPTIONS missing
in CustomDomainsModule). CloudFeatureGuard is sufficient protection
for this unauthenticated, cloud-only endpoint.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* refactor: extract applyCustomDomainCookieOptions, fix org list for super admins
- Extract duplicated cookie SameSite/Secure logic into shared applyCustomDomainCookieOptions() helper
- Replace 3 inline copies (session util x2, OIDC service) with one-liner calls
- Rename customDomain → custom_domain in OrganizationWithPlan for consistent API casing
- Refactor fetchOrganizations so super admins also get license/custom domain enrichment
- Add @Req() param to OpenID redirect controller for custom domain host detection
- Update server/ee submodule
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* refactor: remove dead verifyDomain from IDomainProvider, fix cookie type
- Remove verifyDomain() from IDomainProvider interface and all implementations
(service does inline DNS resolution, method was never called)
- Fix applyCustomDomainCookieOptions type: sameSite accepts string | boolean
- Update server/ee submodule
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* revert: remove dev-only webpack proxy and host overrides for custom domains
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* chore: remove internal custom domains Cloudflare setup doc
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: rename 'Workspace ID' label to 'Workspace URL' on custom domain page
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: match custom domain save button loading style with whitelabelling
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: reduce custom domain redirect cooldown from 5 minutes to 10 seconds
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: strip trailing slash from TOOLJET_HOST in URL helpers
Prevents double-slash URLs when TOOLJET_HOST is configured with a
trailing slash (e.g. `https://example.com/` → `https://example.com//error/404`).
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix: strip trailing slash from TOOLJET_HOST in workspace switchers
Same defensive fix as the URL helpers — raw TOOLJET_HOST concatenation
in SwitchWorkspacePage and BaseOrganizationList could produce
double-slash URLs when the host has a trailing slash.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add rebuildOriginsSet/getOriginsSet to cache service
Stores active custom domain origins in a Redis Set for cross-pod
CORS/CSRF consistency. rebuildOriginsSet uses a pipeline (DEL + SADD +
EXPIRE) for atomicity. getOriginsSet returns null on empty/error so
callers can fall back to DB.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): use Redis for CORS/CSRF origins in middleware
fetchCustomDomainOrigins now reads from Redis Set first, falls back to
DB. Local cache TTL reduced from 30s to 5s. Both setupCsrfOriginCheck
and setSecurityHeaders lazily capture CustomDomainCacheService via a
shared tryGetCacheService helper (DRY, CE-safe with strict: false).
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): rebuild Redis origins set in scheduler and EE service
Status poll, stale cleanup, and all EE domain lifecycle operations now
trigger rebuildOriginsSet() so CORS origins stay consistent after
background status changes.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): seed Redis CORS origins set on startup
Ensures the origins set is populated immediately when the server starts,
before any CORS/CSRF checks are needed.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): increase Redis origins TTL and fix success logging
Raise ORIGINS_TTL_SECONDS from 300s to 700s so the key outlasts the
10-minute scheduler interval (avoids sustained DB fallback). Skip the
success log when individual pipeline commands fail.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add Redis pending-flag methods to cache service
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): gate scheduler polling behind Redis pending flag
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): set pending flag on domain creation
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): resolve redirect loop between base and custom domain
After login, excludeWorkspaceIdFromURL stripped the workspace slug from the
redirect URL, producing bare paths like /home. On the custom domain,
getWorkspaceIdOrSlugFromURL then misinterpreted 'home' as a workspace slug,
triggering redirectToMainHost and creating an infinite loop.
- Re-prepend workspace slug to the custom domain redirect URL
- Always trust the resolved slug on custom domains (1:1 mapping)
- Remove mismatch guard in AuthRoute that redirected back to main host
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): session transfer token + OAuth redirect_uri fix
Two problems with the custom domain redirect flow:
1. Session lost on redirect: tj_auth_token cookie is domain-scoped — doesn't
follow the user from gcpstage.tooljet.ai to app.company.com. Added a one-time
Redis transfer token (30s TTL, GETDEL atomic) — the frontend creates a token,
redirects to /api/session/transfer on the custom domain, the CF Worker proxies
to the backend which sets the cookie as first-party via 302.
2. OAuth redirect_uri mismatch: Google/OIDC redirect_uri used the custom domain
hostname via getHostURL()/resolveRedirectHost(). If the IdP doesn't have the
custom domain registered, auth fails. Now always use TOOLJET_HOST for
redirect_uri. Session transfer handles the hop to the custom domain after auth.
Changes:
- Add CE session-transfer module stubs (SubModule pattern)
- Add frontend session-transfer service
- Update authorizeWorkspace.js: transfer token flow replaces direct redirect
- Update GoogleSSOLoginButton.jsx: use TOOLJET_HOST for redirect_uri
- Register SessionTransferModule conditionally for Cloud edition in AppModule
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update server/ee submodule — restore OIDC redirect_uri resolution
Points to server/ee commit that restores request-origin based
redirect_uri for OIDC, supporting both base domain and custom domain
IdP registrations.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(custom-domains): add session transfer to workspace switching
Use session transfer tokens for cross-domain workspace switches so
the auth cookie is set on the target domain. Passes target org ID
in the token to land on the correct workspace immediately.
- Extract useSessionTransferRedirect hook (shared debounce + redirect)
- Add TOOLJET_HOST null guard in BaseOrganizationList
- Debounce new-tab opens with 500ms cooldown
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): defer HttpClient host resolution to request time
HttpClient eagerly captured config.apiUrl at module load time, before
index.jsx overrides it to '/api' on custom domains. This caused
tooljet-db, comments, and plugins services to make cross-origin
requests directly to the backend, bypassing the CF Worker proxy.
The cookie (scoped to the custom domain) wasn't sent, resulting in
401s and an infinite reload loop.
Use a lazy getter so config.apiUrl is read at request time. Also
convert marketplace.service.js to use hostFn callback for the same
lazy resolution.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): cross-domain logout — clear base domain session
Logging out from a custom domain only killed the custom domain's
session. The base domain session survived, causing authorizeWorkspace
to re-authenticate the user via session transfer.
Two fixes:
1. clearCookie now passes matching cookie options (sameSite, secure,
httpOnly) so the browser actually deletes the cookie
2. Frontend makes a parallel cross-origin logout call to the base
domain when on a custom domain (works because cookies are
sameSite=none and CORS allows custom domain origins)
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): use base domain for workspace creation on custom domains
When creating a workspace from a custom domain, the workspace link
preview incorrectly showed the custom domain URL and the post-creation
redirect stayed on the custom domain (which is bound to a different
workspace). Now the link preview always shows TOOLJET_HOST and the
redirect uses session transfer to carry auth to the base domain.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update ee-frontend submodule — SSO redirect URLs
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* refactor(custom-domains): reuse getBaseHostURL() in workspace creation redirect
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update ee-frontend submodule — SAML ACS URL fix
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): SAML SSO custom domain support + update server/ee submodule
Update CE interfaces and base classes to accept optional host/requestHost
parameters for SAML custom domain resolution. Updates server/ee submodule
with the full SAML custom domain fix.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update ee-frontend submodule — hide custom domain for non-cloud
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update server/ee submodule — SAML audience mismatch fix
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update server/ee submodule — SAML issuer fix + error handling
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(custom-domains): update submodules — SAML ACS URL fix for all topologies
- server/ee: Add #resolveBackendBaseUrl() fallback chain for ACS URL;
only pass host override for custom domains
- frontend/ee: Show correct backend-derived ACS URL in SAML modal
Co-Authored-By: Claude Opus 4.6 <[email protected]>
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
2026-03-16 16:44:16 +00:00
|
|
|
'process.env.PYODIDE_BASE_URL': JSON.stringify(pyodideBaseUrl),
|
2025-02-25 06:52:50 +00:00
|
|
|
}),
|
|
|
|
|
// Module replacement for restricted imports
|
|
|
|
|
new webpack.NormalModuleReplacementPlugin(/^(@ee\/|@cloud\/)/, (resource) => {
|
2025-02-25 12:28:43 +00:00
|
|
|
const edition = process.env.TOOLJET_EDITION || 'ce';
|
2025-02-25 06:52:50 +00:00
|
|
|
|
|
|
|
|
// Only replace if the current edition shouldn't have access
|
|
|
|
|
if (edition === 'ce' && resource.request.startsWith('@ee/')) {
|
|
|
|
|
resource.request = emptyModulePath;
|
|
|
|
|
} else if (['ce', 'ee'].includes(edition) && resource.request.startsWith('@cloud/')) {
|
|
|
|
|
resource.request = emptyModulePath;
|
|
|
|
|
}
|
|
|
|
|
// Otherwise, leave the original import intact
|
2024-02-22 11:22:34 +00:00
|
|
|
}),
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
if (process.env.APM_VENDOR === 'sentry') {
|
|
|
|
|
plugins.push(
|
|
|
|
|
// Add Sentry plugin for error and performance monitoring
|
|
|
|
|
sentryWebpackPlugin({
|
|
|
|
|
authToken: process.env.SENTRY_AUTH_TOKEN,
|
|
|
|
|
org: process.env.SENTRY_ORG,
|
|
|
|
|
project: process.env.SENTRY_PROJECT,
|
|
|
|
|
release: {
|
|
|
|
|
// The version should be same as what its when we are sending error events
|
|
|
|
|
name: `tooljet-${version}`,
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-07 08:43:06 +00:00
|
|
|
if (isDevEnv) {
|
2025-07-08 12:36:10 +00:00
|
|
|
plugins.push(new ReactRefreshWebpackPlugin({ overlay: false }));
|
2025-07-07 08:43:06 +00:00
|
|
|
}
|
|
|
|
|
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
if (isProductionMode) {
|
|
|
|
|
plugins.push(
|
|
|
|
|
new MiniCssExtractPlugin({
|
2026-01-27 08:36:30 +00:00
|
|
|
ignoreOrder: true,
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
filename: '[name].[contenthash].css',
|
|
|
|
|
chunkFilename: '[name].[contenthash].chunk.css',
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (process.env.ANALYZE === 'true') {
|
|
|
|
|
plugins.push(new BundleAnalyzerPlugin());
|
|
|
|
|
}
|
|
|
|
|
|
2021-03-31 14:01:01 +00:00
|
|
|
module.exports = {
|
2022-01-17 07:08:17 +00:00
|
|
|
mode: environment,
|
|
|
|
|
optimization: {
|
2022-08-16 07:06:47 +00:00
|
|
|
minimize: environment === 'production',
|
2022-01-17 07:08:17 +00:00
|
|
|
usedExports: true,
|
2022-08-16 07:06:47 +00:00
|
|
|
runtimeChunk: 'single',
|
2025-11-28 10:07:31 +00:00
|
|
|
moduleIds: 'deterministic',
|
|
|
|
|
chunkIds: 'deterministic',
|
|
|
|
|
realContentHash: true,
|
2022-08-16 07:06:47 +00:00
|
|
|
minimizer: [
|
|
|
|
|
new TerserPlugin({
|
|
|
|
|
terserOptions: {
|
2025-02-25 06:52:50 +00:00
|
|
|
keep_classnames: true,
|
|
|
|
|
keep_fnames: true,
|
|
|
|
|
compress: {
|
|
|
|
|
drop_debugger: true,
|
|
|
|
|
drop_console: true,
|
|
|
|
|
},
|
2022-08-16 07:06:47 +00:00
|
|
|
},
|
|
|
|
|
parallel: environment === 'production',
|
|
|
|
|
}),
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
new CssMinimizerPlugin({
|
|
|
|
|
minimizerOptions: {
|
|
|
|
|
preset: [
|
|
|
|
|
'default',
|
|
|
|
|
{
|
|
|
|
|
discardComments: { removeAll: true },
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
}),
|
2022-08-16 07:06:47 +00:00
|
|
|
],
|
|
|
|
|
splitChunks: {
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
chunks: 'all',
|
|
|
|
|
// chunks: 'all',
|
|
|
|
|
// maxInitialRequests: 10, // Reduced from 25 - limits initial load chunks
|
|
|
|
|
// maxAsyncRequests: 10, // Limits async chunks (lazy loaded)
|
|
|
|
|
// minSize: 50000, // Increased from 20KB - only split if >50KB
|
|
|
|
|
// maxSize: 1244000, // Max chunk size ~244KB (helps with parallel downloads)
|
2022-08-16 07:06:47 +00:00
|
|
|
cacheGroups: {
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
// CRITICAL: React core - always loaded (enforce: true means always split)
|
|
|
|
|
// react: {
|
|
|
|
|
// test: /[\\/]node_modules[\\/](react|react-dom|react-router|react-router-dom|scheduler)[\\/]/,
|
|
|
|
|
// name: 'vendor-react',
|
|
|
|
|
// priority: 50,
|
|
|
|
|
// reuseExistingChunk: true,
|
|
|
|
|
// enforce: true, // Always split React, even if small
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// // HEAVY EDITORS GROUP - Split these out as they're HUGE and editor-only
|
|
|
|
|
// // ~2MB+ combined, almost never needed on viewer pages
|
|
|
|
|
// editors: {
|
|
|
|
|
// test: /[\\/]node_modules[\\/](@codemirror|@uiw\/react-codemirror|@uiw\/codemirror-theme-github|@uiw\/codemirror-theme-okaidia|draft-js|draft-js-export-html|draft-js-import-html|@mdxeditor)[\\/]/,
|
|
|
|
|
// name: 'vendor-editors',
|
|
|
|
|
// priority: 40,
|
|
|
|
|
// reuseExistingChunk: true,
|
|
|
|
|
// enforce: true, // Always split - too large
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// // CHARTS - Plotly is MASSIVE (~3MB), split separately
|
|
|
|
|
// plotly: {
|
|
|
|
|
// test: /[\\/]node_modules[\\/](plotly\.js|plotly\.js-dist-min|react-plotly\.js)[\\/]/,
|
|
|
|
|
// name: 'vendor-plotly',
|
|
|
|
|
// priority: 40,
|
|
|
|
|
// reuseExistingChunk: true,
|
|
|
|
|
// enforce: true, // Always split - very large
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// // PDF - Large libraries, only for PDF features
|
|
|
|
|
// pdf: {
|
|
|
|
|
// test: /[\\/]node_modules[\\/](pdfjs-dist|react-pdf|jspdf|jspdf-autotable)[\\/]/,
|
|
|
|
|
// name: 'vendor-pdf',
|
|
|
|
|
// priority: 40,
|
|
|
|
|
// reuseExistingChunk: true,
|
|
|
|
|
// enforce: true, // Always split - large
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// // EXCEL - XLSX is huge (~1MB), only for spreadsheet features
|
|
|
|
|
// excel: {
|
|
|
|
|
// test: /[\\/]node_modules[\\/](xlsx|read-excel-file|papaparse|zipcelx)[\\/]/,
|
|
|
|
|
// name: 'vendor-excel',
|
|
|
|
|
// priority: 40,
|
|
|
|
|
// reuseExistingChunk: true,
|
|
|
|
|
// enforce: true, // Always split - large
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// // UI FRAMEWORK - Combine related UI libraries to reduce requests
|
|
|
|
|
// // Radix + Bootstrap + DnD + Forms together
|
|
|
|
|
// uiFramework: {
|
|
|
|
|
// test: /[\\/]node_modules[\\/](@radix-ui|bootstrap|react-bootstrap|@dnd-kit|react-dnd|react-dnd-html5-backend|react-beautiful-dnd|react-select|react-select-search|react-multi-select-component|react-color|rc-slider)[\\/]/,
|
|
|
|
|
// name: 'vendor-ui',
|
|
|
|
|
// priority: 35,
|
|
|
|
|
// reuseExistingChunk: true,
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// // DATA VISUALIZATION - Tables + ReactFlow + Maps (used together often)
|
|
|
|
|
// dataViz: {
|
|
|
|
|
// test: /[\\/]node_modules[\\/](react-table|react-table-plugins|@tanstack\/react-table|@tanstack\/react-virtual|react-virtuoso|reactflow|react-zoom-pan-pinch|@react-google-maps)[\\/]/,
|
|
|
|
|
// name: 'vendor-dataviz',
|
|
|
|
|
// priority: 35,
|
|
|
|
|
// reuseExistingChunk: true,
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// // UTILITIES & COMMON - Lodash, Axios, Moment, etc. (frequently used together)
|
|
|
|
|
// // Combine small utility libraries to reduce HTTP requests
|
|
|
|
|
// common: {
|
|
|
|
|
// test: /[\\/]node_modules[\\/](lodash|axios|classnames|clsx|moment|moment-timezone|humps|uuid|semver|fuse\.js|dompurify|superstruct|rfdc|flatted|zustand|immer|rxjs|i18next|react-i18next|i18next-http-backend)[\\/]/,
|
|
|
|
|
// name: 'vendor-common',
|
|
|
|
|
// priority: 30,
|
|
|
|
|
// reuseExistingChunk: true,
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// // FEATURES - Combine feature-specific libraries
|
|
|
|
|
// // Date pickers, phone inputs, markdown, icons, monitoring
|
|
|
|
|
// features: {
|
|
|
|
|
// test: /[\\/]node_modules[\\/](react-datepicker|react-datetime|react-dates|@wojtekmaj|react-big-calendar|react-currency-input-field|react-phone-input-2|react-phone-number-input|react-mentions|react-markdown|rehype-raw|remark-gfm|react-syntax-highlighter|@tabler\/icons-react|lucide-react|emoji-mart|@emoji-mart|@sentry|posthog-js|yjs|y-websocket|@y-presence|react-moveable|react-rnd|react-selecto)[\\/]/,
|
|
|
|
|
// name: 'vendor-features',
|
|
|
|
|
// priority: 25,
|
|
|
|
|
// reuseExistingChunk: true,
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
defaultVendors: {
|
2022-08-16 07:06:47 +00:00
|
|
|
test: /[\\/]node_modules[\\/]/,
|
|
|
|
|
name: 'vendor',
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
priority: -10,
|
|
|
|
|
reuseExistingChunk: true,
|
|
|
|
|
chunks: 'initial',
|
|
|
|
|
},
|
|
|
|
|
lucideReact: {
|
|
|
|
|
test: /[\\/]node_modules[\\/]lucide-react/,
|
|
|
|
|
name: 'lucide-react',
|
|
|
|
|
priority: 20, // Higher priority than vendors
|
|
|
|
|
reuseExistingChunk: true,
|
2022-08-16 07:06:47 +00:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
2022-01-17 07:08:17 +00:00
|
|
|
},
|
2021-10-02 05:52:02 +00:00
|
|
|
target: 'web',
|
2021-04-30 08:10:57 +00:00
|
|
|
resolve: {
|
2026-03-19 07:11:32 +00:00
|
|
|
extensions: ['.ts', '.tsx', '.js', '.jsx', '.png', '.wasm', '.tar', '.data', '.svg', '.png', '.jpg', '.jpeg', '.gif', '.json'],
|
2021-09-21 13:48:28 +00:00
|
|
|
alias: {
|
|
|
|
|
'@': path.resolve(__dirname, 'src/'),
|
2021-11-17 11:21:50 +00:00
|
|
|
'@ee': path.resolve(__dirname, 'ee/'),
|
2025-02-25 06:52:50 +00:00
|
|
|
'@cloud': path.resolve(__dirname, 'cloud/'),
|
2023-01-04 10:03:55 +00:00
|
|
|
'@assets': path.resolve(__dirname, 'assets/'),
|
2025-02-25 06:52:50 +00:00
|
|
|
'@white-label': path.resolve(__dirname, 'src/_helpers/white-label'),
|
|
|
|
|
},
|
|
|
|
|
fallback: {
|
|
|
|
|
process: require.resolve('process/browser.js'),
|
|
|
|
|
path: require.resolve('path-browserify'),
|
2025-09-17 12:19:47 +00:00
|
|
|
util: require.resolve('util/'),
|
2025-02-25 06:52:50 +00:00
|
|
|
'@ee/modules': emptyModulePath,
|
|
|
|
|
'@cloud/modules': emptyModulePath,
|
2021-09-21 13:48:28 +00:00
|
|
|
},
|
2021-04-30 08:10:57 +00:00
|
|
|
},
|
2025-07-07 08:43:06 +00:00
|
|
|
devtool: environment === 'development' ? 'eval-source-map' : 'hidden-source-map',
|
2021-04-30 08:10:57 +00:00
|
|
|
module: {
|
|
|
|
|
rules: [
|
|
|
|
|
{
|
|
|
|
|
test: /\.ttf$/,
|
2021-09-08 18:24:58 +00:00
|
|
|
use: ['file-loader'],
|
2021-04-30 08:10:57 +00:00
|
|
|
},
|
2022-10-27 08:41:26 +00:00
|
|
|
{
|
|
|
|
|
test: /\.wasm$/,
|
|
|
|
|
use: ['file-loader'],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
test: /\.tar$/,
|
|
|
|
|
use: ['file-loader'],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
test: /\.data$/,
|
|
|
|
|
use: ['file-loader'],
|
|
|
|
|
},
|
2021-08-25 15:14:55 +00:00
|
|
|
{
|
|
|
|
|
test: /\.svg$/,
|
2023-03-20 11:34:24 +00:00
|
|
|
use: ({ resource }) => ({
|
|
|
|
|
loader: '@svgr/webpack',
|
|
|
|
|
options: {
|
|
|
|
|
svgoConfig: {
|
|
|
|
|
plugins: [
|
|
|
|
|
{
|
|
|
|
|
name: 'prefixIds',
|
|
|
|
|
cleanupIDs: {
|
|
|
|
|
prefix: `svg-${hash(resource)}`,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
],
|
2021-08-25 15:14:55 +00:00
|
|
|
},
|
|
|
|
|
},
|
2023-03-20 11:34:24 +00:00
|
|
|
}),
|
2021-08-25 15:14:55 +00:00
|
|
|
},
|
2021-04-30 08:10:57 +00:00
|
|
|
{
|
|
|
|
|
test: /\.css$/,
|
2021-10-02 05:52:02 +00:00
|
|
|
use: [
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
environment === 'production' ? MiniCssExtractPlugin.loader : { loader: 'style-loader' },
|
2021-10-02 05:52:02 +00:00
|
|
|
{
|
|
|
|
|
loader: 'css-loader',
|
Feature: Collaboration ( realtime comments for canvas ) 🔥 (#810)
* feat: initial commit for collaboration feature
* add dnd to comments
* add positions endpoint
* feat: encapsulate all http common logic in http-client
* segregate sections and transfer responsibility of state
* feat: use-spring to add fade effect :zap:
* fix: open in right
* fix: left-right position css
* add footer for message
* integrate getcomment endpoint
* use fromnow for date ago
* add dnd
* - Add data trasfer object for comment
- Add class-validator package to check the response type from client
- Add comment repository class for persistance layer
- Add comment service with std. http methods
- Update controller with all http methods
- Update comment module
- Fix http-client bug when error is thrown
* fix http client bug when error is thrown
* feat: add entity thread
* feat: add migrations for thread and comment
* update entitites
* add tid to migration
* filter comments by tid(thread_id)
* fix: comment migration, add missing column comment
* feat: integrate in ui
* feat: split comments based on app_id
* fix: dnd to correct position
* package json engines
* engines update
* update npm
* npm 6 to 7
* fix: add user initials to thread
* fix: add firtname lastname to the comments
* - Return user object when save thread called
- Hide password field from user response
- Fix created_at date typo
- Instead of fetch all threads on new thread added, add the response to array of existing threads
* feat: update ui components
* change icon on comments view
* ui fixes
* fix: close icon close the popover
* temp: comment select: false
* use currentUser from localStorage
* fix: on click outside if comment is open, dont hit addThread
* fix: auth token issue in http-client
* on drag hide the comment if open
* add jwt auth
* spec: add test for comment & thread
* cleanup: remove console.log
* feat: add comment actions
* feat: add edit, delete, resolve options
* feat: add mentions component
* feat: add nestjs websockets
* temp
* websocket: establish client-server communication
* ws: add message listner to comments module in ui
* feat: add broadcast method to broadcast new events to all clients :bomb:
* ws: cleanup :call_me_hand:
* fix: remove max height from comment actions
* feat: add user mentions, emoji support
* fix: add static list of users - temp
* update and delete iterations
* - Rename comment, thread to comments, threads
- Add conditional actions
- Show edit, delete only if he is comment owner
- Show resolve only if he is thread owner
* reset engines
* move svgr webpack to deps
* fix: ui issues
* remove log stmt
* refactor: move resolved icon to comment-header
* feat: allow comments to be added on top of widgets
* feat: add keyboard shortcut
* scroll to bottom on comment add
* ui fixes
* feat: add react toast for notification display
* feat: add comment badge
* fix: ws connection
* fix: ws
* remove rvrse
* feat: add comment sidebar
* feat: add comment right sidebar
* fix: add missing foreign key elements
* - upgrade typeorm to 0.2.38
- comment sidebar ui
- added filter ui
* feat: on click of right sidebar notificaiton open the comment box
* reset engines
* fix: add organization id to the comment and thread module
* fix: add current version id
* add currentversion id
* disable comments if no id present
* temp:checking for heroku deploy
* fetch app on edit and deploy version
* rename current_version_id to app_versions_id
* ui fixes
* show mentioned user in blue color
* add ui changes
* add authorization for create thread
* change color to blue on click of comment, add auth for other endpoints of thread
* update threads, notifications using socket
* add auth for comments
* remove events spec file
* fix duplicate key error
* fix notificaitons updation on edit, delete, resolve buttons clicked
* update notifications for edit
* feature toggle changes for frontend
* add check for comments server
* add emoji mart package for emoji
* add reply count in comment sidebar
* subtract 1 from count in comment sidebar
* change empty text when no comments available
2021-11-01 07:28:03 +00:00
|
|
|
},
|
2021-10-02 05:52:02 +00:00
|
|
|
],
|
2021-04-30 08:10:57 +00:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
test: /\.scss$/,
|
2021-09-08 18:24:58 +00:00
|
|
|
use: [
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
environment === 'production' ? MiniCssExtractPlugin.loader : { loader: 'style-loader' },
|
2021-09-08 18:24:58 +00:00
|
|
|
{
|
|
|
|
|
loader: 'css-loader',
|
|
|
|
|
},
|
2024-06-18 09:24:30 +00:00
|
|
|
{
|
|
|
|
|
loader: 'postcss-loader',
|
|
|
|
|
},
|
2021-09-08 18:24:58 +00:00
|
|
|
{
|
|
|
|
|
loader: 'sass-loader',
|
2025-09-30 08:34:57 +00:00
|
|
|
options: {
|
|
|
|
|
sassOptions: {
|
|
|
|
|
silenceDeprecations: ['global-builtin', 'import', 'color-functions'],
|
|
|
|
|
},
|
|
|
|
|
},
|
2021-09-08 18:24:58 +00:00
|
|
|
},
|
|
|
|
|
],
|
2021-08-30 11:25:27 +00:00
|
|
|
},
|
|
|
|
|
{
|
2026-03-19 07:11:32 +00:00
|
|
|
test: /\.(js|jsx|ts|tsx)$/,
|
2021-08-30 11:25:27 +00:00
|
|
|
exclude: /node_modules/,
|
|
|
|
|
resolve: {
|
2026-03-19 07:11:32 +00:00
|
|
|
extensions: ['.js', '.jsx', '.ts', '.tsx'],
|
2021-08-30 11:25:27 +00:00
|
|
|
},
|
|
|
|
|
use: {
|
2021-09-17 14:04:15 +00:00
|
|
|
loader: 'babel-loader',
|
2021-09-15 15:52:53 +00:00
|
|
|
options: {
|
|
|
|
|
plugins: [
|
2025-07-07 08:43:06 +00:00
|
|
|
isDevEnv && require.resolve('react-refresh/babel'),
|
2025-09-17 12:19:47 +00:00
|
|
|
[
|
|
|
|
|
'import',
|
|
|
|
|
{
|
|
|
|
|
libraryName: 'lodash',
|
|
|
|
|
libraryDirectory: '',
|
|
|
|
|
camel2DashComponentName: false,
|
|
|
|
|
},
|
|
|
|
|
'lodash',
|
|
|
|
|
],
|
2025-07-07 08:43:06 +00:00
|
|
|
].filter(Boolean),
|
2021-09-15 15:52:53 +00:00
|
|
|
},
|
2021-09-17 14:04:15 +00:00
|
|
|
},
|
|
|
|
|
},
|
2022-05-10 09:39:09 +00:00
|
|
|
{
|
|
|
|
|
test: /\.html$/,
|
|
|
|
|
loader: 'html-loader',
|
|
|
|
|
},
|
2021-09-17 14:04:15 +00:00
|
|
|
],
|
2021-04-30 08:10:57 +00:00
|
|
|
},
|
2024-02-22 11:22:34 +00:00
|
|
|
plugins,
|
2021-04-30 08:10:57 +00:00
|
|
|
devServer: {
|
2022-03-01 07:55:51 +00:00
|
|
|
historyApiFallback: { index: ASSET_PATH },
|
2022-02-25 01:25:13 +00:00
|
|
|
static: {
|
|
|
|
|
directory: path.resolve(__dirname, 'assets'),
|
|
|
|
|
publicPath: '/assets/',
|
|
|
|
|
},
|
2025-10-01 12:04:37 +00:00
|
|
|
client: {
|
|
|
|
|
overlay: false,
|
|
|
|
|
},
|
2021-04-30 08:10:57 +00:00
|
|
|
},
|
|
|
|
|
output: {
|
2025-11-28 10:07:31 +00:00
|
|
|
filename: environment === 'production' ? '[name].[contenthash:8].js' : '[name].js',
|
|
|
|
|
chunkFilename: environment === 'production' ? '[name].[contenthash:8].chunk.js' : '[name].chunk.js',
|
|
|
|
|
assetModuleFilename: 'assets/[contenthash:8][ext][query]',
|
2022-03-01 07:55:51 +00:00
|
|
|
publicPath: ASSET_PATH,
|
2021-09-08 18:24:58 +00:00
|
|
|
path: path.resolve(__dirname, 'build'),
|
chore: Viewer isolation (#14658)
* update submodule commit for server
* Fix: App history timeline UI in left sidebar
* Fix: App history entry options menu UI
* Fix: App history rename modal UI
* Fix: App history restore modal UI
* Feat: Implement server-sent events for app history updates and add authentication guard
* Remove all the unused logic from inside the store
* Fix: Minor UI change
* Fix: Added a loader
* Update submodule references
* Implemented flow to prevent full reload on restoring history
* Fix: Minor UI issue for history options menu
* feat: Add pushHistoryEntry method to appHistoryStore
* feat: Implement history entry limit in appHistoryStore
* Fix: Horizontal page menu minor enhancements
* feat: add migration for app_history table and update entity structure
* feat: refactor AppHistory module imports and add new services and guards
* Fix: Vertical page menu minor enhancements
* feat: add stream history feature and update related permissions and constants
* feat: add AppStateRepository to AppHistoryModule imports and providers
* feat: add NameResolverRepository to AppHistoryModule imports and providers
* feat: implement NameResolverRepository and NameResolverService for component and page name resolution
* feat: remove QueueHistoryIntegrationService and update AppHistoryModule to reflect changes
* feat: update AppHistoryModule and AppHistoryRepository with new methods and refactor imports
* feat: refactor AppHistoryModule and related services to streamline name resolution and history capture
* feat: add AppStateRepository and HistoryQueueProcessor, refactor AppStateAggregatorService to utilize repository methods
* feat: rename methods in AppStateRepository for clarity and update AppStateAggregatorService to reflect changes
* feat: refactor history capture logic to use synchronous execution and improve error handling across services
* Fix: Mobile view page menu UI enhancements
* feat: enhance ability guards and repository methods for app history validation
* Update submodule references
* Migrate to shadcn sidebar component
* Fix: Components not getting pasted at correct position if user scrolled and pasted inside container components
* Fix: Group components not getting pasted at correct position horizontally inside container components
* POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position
* Update frontend/src/AppBuilder/AppCanvas/Container.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* feat: enhance AppHistoryModule registration with isMainImport flag
* feat: update settings method to queue history capture after successful update
* chore: update subproject commit reference in frontend/ee
* feat: add function to delete app history for structural migrations
* Refactor imports and enhance code organization across multiple files
- Updated import paths to reflect the new directory structure in TooljetDatabase and AppBuilder components.
- Consolidated utility functions in appUtils.js, removing redundant code and improving readability.
- Enhanced error handling and state management in dataQueriesStore and resolverStore.
- Added Bundle Analyzer plugin to webpack configuration for better performance insights.
- Improved chunking strategy in webpack to optimize loading of libraries and components.
- Refactored ErrorBoundary imports to maintain consistency across UI components.
* feat: enhance UI components with new icons and styling adjustments
* refactor: remove unused components and icons from QueryManager
- Deleted QueryManagerHeader component and its associated logic.
- Removed SuccessNotificationInputs component and its functionality.
- Eliminated Transformation component and related code.
- Deleted BreadcrumbsIcon, CreateIcon, PreviewIcon, RenameIcon, RunIcon, and ToggleQueryEditorIcon.
- Updated imports in appUtils.js to reflect new icon paths.
* Refactor editorHelpers and utils: Remove unused functions and imports, streamline background update logic, and adjust state handling. Comment out or delete handleReferenceTransactions and related logic in various stores to simplify data flow and improve maintainability.
* Refactor queryPanelStore and storeHelper by commenting out unused imports and code. This cleanup improves code readability and maintainability.
* revert: Reverted the lazy loading changes
* revert: Reverted the changes on App & AppRoute
* Fix: Inside side effects, get the correct canvas element, disable page scrolling and reposition modal container when modal is opened
* Fix: Use the side effects when modal is opened and closed
* Update submodule references
* fix: Corrected zustandDevTools enabled option logic
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* chore: update subproject commit reference
* update submodule ref
* Enhance: Horizontal page menu default styles
* fix: Global search for multiselect column
* Fix: More button on pages overflow is getting cropped and remove unnecessary calculations related to it
* Refactor page menu code
* Integrate shadcn navigation menu component for horizontal page menu
* Update submodule ref
* update submodule ref
* Fix: Minimum width of the popup in horizontal page menu
* Fixed UI issues
* Removed commented code
* Removed wrapper and unwanted code
* Fix: Minor page menu bugs inside Editor
* Fix: popover overflow issue and other minor bugs
* Remove unnecessary package.json change
* chore: fix import path casing for RealTimeEditor
* Fix: Grid resizing issue and component selector overflow
* Fix: Increased transition duration to 200
* Removed the classname change
* Fix: Scrollbar visible in viewer in vertical page menu
* Fix: Remove arbitrary variant chains since not supported in Tailwind v3 to fix animations in horizontal page menu
* chore: update subproject commits for frontend and server
* Refactored code
* Update ee-frontend submodule reference
* Removed leading and trailing icon width
* Refactor page menu styling part to make it reusable for mobile view
* Integrate Shacn Sidebar component in page menu for mobile view
* Update submodule references
* fix: merge issues and minor bugs
* Update frontend/src/_styles/pages-sidebar.scss
Co-authored-by: Copilot <175728472+[email protected]>
* update submodule ref
* fixed: custom validation working for dropdown inside the listview
* update submodule references
* Fix: Broken app logo in editor incase app logo url is incorrect
* Fix: Default styles
* update submodule reference
* Fix: Implement changes for legacy modal as well
* Fix: Change state logic to dom manipulation logic on canvas scroll to prevent unnecessary re-renders
* Fix: Change default border color to cc-Border/weak
* Fix: Remove max width on overflow menu in horizontal page menu and prevent right sidebar to open on toggling page groups in overflow menu
* Fix: Box shadow should only be visible for horizontal page menu only when canvas is scrolled and not on top
* Update submodule references
* Feat: Add support for icon in modal trigger
* Update frontend/src/AppBuilder/Widgets/ModalV2/ModalV2.jsx
Co-authored-by: Copilot <175728472+[email protected]>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+[email protected]>
* chore: update subproject commit reference in frontend/ee
* refactor: clean up controller methods and remove unused streamHistory and getEvents methods
* chore: update subproject commit reference in frontend/ee
* update submodule references
* Fix: Scrollbar behaviour in vertical page menu
* Fix: Group closes on selecting a page on vertical page menu
* Remove log
* feat: Add RootRouter for bundle isolation and viewer routing
- Introduced RootRouter component to handle route splitting for viewer isolation.
- Created ViewerApp component to manage viewer-specific routes and logic.
- Removed BrowserRouter from App.jsx and integrated routing into RootRouter.
- Updated package.json to include madge for circular dependency checks.
- Refactored App.jsx to remove viewer-related imports and routes.
- Moved useConfirm hook to a new file for better organization.
- Updated various components to reflect new import paths and structure.
- Enhanced webpack configuration for improved chunk splitting and performance.
- Added new directories for future feature development under src/v2.
* feat: Add scripts to check bundle size and circular dependencies
* feat: Refactor to use dynamic imports for edition-specific components and helpers
* fix: update BoundedBox widget styles and fix class names; add datepicker styles
* feat: add permission checks based on selected data source scope in QueryCard component
* fix: enhance error handling in streamHistoryUpdates and update subproject reference
* fix: fixed the bug on app history in capturing the query deletion
* fix: Fixed unknown component issue while adding an event in query and pages. Added resolveEntityName method to handle entity name resolution for components, queries, and pages
* feat: Add captureSettingsUpdateHistory method to log app version settings updates
* fix: pageSettings were not properly restored while restoring the app history and version change
* fix: Enhance settings update history capture with action type differentiation
* feat: Optimize layout updates by batching component layout changes
* fix: Prevent redundant canvasHeight updates when the value is unchanged
* chore: Added script & logic for view parsed and gzip bundle
* Perf: Reduces main chunk size by almost 140KB, hence reducing overall bundle size
* chore: submodule update (Perf: reduces main chunk size by almost 220KB, hence reducing overall bundle size)
* fix: update entrypoint script to use ce-preview.sh for PostgreSQL initialization
* Perf: Extract CSS from JS bundle to allow css minification and removal of comments in production bundle
* style: Update padding and spacing in app history styles for improved layout
* feat: Implement lazy loading for editor-only components to optimize viewer bundle size
* chore: Update subproject reference to latest commit
* chore: Update subproject commit reference for frontend/ee
* chore: Update subproject commit references for frontend and server
* Fix: update hover effect for app name display in EditAppName component
* Fix: remove redundant darkMode prop from FormField component
* fix: add !important to primary color for rc-slider track and handle
* feat: implement batching for form component updates and layout changes
* feat: enhance form component handling with batching and parent ID extraction
* fix: removed some of the barrel imports
* chore: Update subproject reference to latest commit
* Update submodule references
* Fix: Page of type app or url gets converted to default page on app import
* feat: enhance page cloning with history capture functionality
* fix: optimize parent change detection to prevent unnecessary batch updates during drag operations
* feat: optimize query saving logic to skip unnecessary updates for name changes
* Fix: Group not selected after nested page selection until hovered in horizontal menu
* Revert "Revert "[refactor]: Fix leftsidebar on opening disturbing the scroll""
This reverts commit d712c47f9cdf5305b8a62a2e9bd62b720c835936.
* Fix: Navigation menu disappears when view switched between desktop and mobile view in editor
* update ee-server submodule ref
* update submodule references
* Fix: Icon alignment issue
* feat: implement bulk creation of event handlers and optimize component event handling
* chore: update subproject commit reference in frontend/ee
* Revert "POC for removing overlap prevention logic if not enough space present, incase user clicks somewhere to respect click position"
This reverts commit 8aec525e9aa7ec636a0066a80204334402906017.
* feat: disable client overlay in webpack configuration
* update the submodule refs
* update submodule refs
* update submodule reference for server/ee
* refactor: rename `defaultDataSources` prop to `staticDataSources` in `DataSourceSelect` component.
* update submodule refs
* Merge pull request #14663 from ToolJet/feature/viewer-isolation-and-bundle-optimization
Perf: lazy load components not required on viewer page and widgets with bigger external dependencies
* refactor: change exports to default for CodeEditor, ColorPicker, and Table components
* feat: add loading spinner to PreviewSettings and update loading fallback in RootRouter
* feat: lazy load jsPDF and jspdf-autotable to optimize bundle size and improve performance
* feat: replace Tabler icons with dynamic loading to optimize bundle size and improve performance
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* update submodule reference for server/ee
* chore: update submodule reference for frontend/ee to latest commit
* fix: handle default icon for home page in RenderPage component
* feat: implement SuspenseCountProvider and TrackedSuspense for handling the onLoad queries for lazy widgets
* feat: add SuspenseLoadingOverlay for improved loading state handling in AppCanvas while components are lazy loaded
* refactor: simplify scrolling logic in useEnableMainCanvasScroll and remove unnecessary state
* fix: added missed import of `DynamicHeightInfo` in `ConfigHandle` component
* fix: improve animation handling for TablerIcon component and clean up suspense fallback
* feat: implement viewer isolation for embedded apps routing
* fix: Map MODULE type to APP permissions in FeatureAbilityGuard
* Revert "fix: Map MODULE type to APP permissions in FeatureAbilityGuard"
This reverts commit ccb53f8d894f22c9f8aa9f90b60670741150a8ce.
* fix: Exclude MODULE type apps from environment access validation
* fix: Add deferCheck prop to SuspenseCountProvider for improved lazy loading handling to support modules
* chore: update subproject commits for frontend and server components
* chore: update subproject commit reference in server/ee
* chore: added logs to print the pat
* Revert "chore: added logs to print the pat"
This reverts commit d0c075f1488bacaddd11a0b8890ce66d07644b3e.
* chore: update version to 3.20.76-lts
---------
Co-authored-by: devanshu052000 <[email protected]>
Co-authored-by: Copilot <175728472+[email protected]>
Co-authored-by: manishkushare <[email protected]>
Co-authored-by: Nishidh Jain <[email protected]>
Co-authored-by: adishM98 Bot <[email protected]>
Co-authored-by: Johnson Cherian <[email protected]>
Co-authored-by: Nishidh Jain <61869195+[email protected]>
2026-01-23 11:44:55 +00:00
|
|
|
// chunkFilename: '[name].[contenthash].js',
|
2025-11-28 10:07:31 +00:00
|
|
|
clean: true,
|
2021-04-30 08:10:57 +00:00
|
|
|
},
|
|
|
|
|
externals: {
|
|
|
|
|
// global app config object
|
|
|
|
|
config: JSON.stringify({
|
2022-08-29 10:19:39 +00:00
|
|
|
apiUrl: `${stripTrailingSlash(API_URL[environment]) || ''}/api`,
|
2025-02-25 06:52:50 +00:00
|
|
|
ENVIRONMENT: process.env.NODE_ENV,
|
2021-09-17 14:04:15 +00:00
|
|
|
SERVER_IP: process.env.SERVER_IP,
|
2022-10-23 06:41:27 +00:00
|
|
|
COMMENT_FEATURE_ENABLE: process.env.COMMENT_FEATURE_ENABLE ?? true,
|
2025-02-25 06:52:50 +00:00
|
|
|
TOOLJET_SERVER_URL: process.env.TOOLJET_SERVER_URL,
|
2022-05-06 06:59:50 +00:00
|
|
|
ENABLE_MULTIPLAYER_EDITING: true,
|
2023-03-24 11:35:08 +00:00
|
|
|
ENABLE_MARKETPLACE_DEV_MODE: process.env.ENABLE_MARKETPLACE_DEV_MODE,
|
2024-12-02 10:52:20 +00:00
|
|
|
TOOLJET_DB_BULK_UPLOAD_MAX_CSV_FILE_SIZE_MB: process.env.TOOLJET_DB_BULK_UPLOAD_MAX_CSV_FILE_SIZE_MB || 5,
|
2022-10-27 11:29:43 +00:00
|
|
|
TOOLJET_MARKETPLACE_URL:
|
|
|
|
|
process.env.TOOLJET_MARKETPLACE_URL || 'https://tooljet-plugins-production.s3.us-east-2.amazonaws.com',
|
2025-02-25 12:28:43 +00:00
|
|
|
TOOLJET_EDITION: process.env.TOOLJET_EDITION,
|
2025-02-25 06:52:50 +00:00
|
|
|
ENABLE_WORKFLOW_SCHEDULING: process.env.ENABLE_WORKFLOW_SCHEDULING,
|
2025-11-23 18:57:53 +00:00
|
|
|
WEBSITE_SIGNUP_URL: process.env.WEBSITE_SIGNUP_URL || 'https://www.tooljet.com/signup',
|
2025-09-25 17:35:21 +00:00
|
|
|
TJ_SELFHOST_CREDITS_APP:
|
|
|
|
|
process.env.TJ_SELFHOST_CREDITS_APP ||
|
2025-11-23 18:57:53 +00:00
|
|
|
'https://app.tooljet.com/applications/c1ec8a6c-ee9a-4a7d-ba9b-3590bbeaf6b9',
|
2025-12-11 13:14:35 +00:00
|
|
|
ENABLE_PASSWORD_COMPLEXITY_RULES: process.env.ENABLE_PASSWORD_COMPLEXITY_RULES || false,
|
2021-09-17 14:04:15 +00:00
|
|
|
}),
|
|
|
|
|
},
|
2021-04-30 08:10:57 +00:00
|
|
|
};
|