* test: verify pre-commit hook
* fix: clean up code formatting and improve readability across multiple components
* chore: update subproject commit reference in frontend/ee
* chore: update eslint to version 9.26.0 and remove unused dependencies from package.json
fix: update submodule reference in server/ee
* chore: refactor ESLint configuration and add quiet linting script; update components to disable specific ESLint rules
* chore: add GitHub Copilot review instructions for App Builder team
Covers backward compatibility rules, styling conventions, state management,
resolution system, widget definitions, and common review flags.
* chore: add review instructions for App Builder, Data Migrations, Server Widget Config, Widget Components, and Widget Config
* Enhance TypeScript support in frontend configuration
- Added TypeScript parser and linting rules to ESLint configuration.
- Updated Babel configuration to include TypeScript preset.
- Modified package.json and package-lock.json to include TypeScript and related dependencies.
- Introduced tsconfig.json for TypeScript compiler options.
- Updated Webpack configuration to support .ts and .tsx file extensions.
- Adjusted linting and formatting scripts to include TypeScript files.
* chore: update TypeScript ESLint packages and subproject commits
---------
Co-authored-by: kavinvenkatachalam <kavin.saratha@gmail.com>
Co-authored-by: Johnson Cherian <johnsonc.dev@gmail.com>
* Feat: Dynamic Selector (#14685)
* feat: introduce the dynamic-selector abstracted component with support for caching dependent dropdowns
* feat: introduce fx toggle option to enable fx editor in the dynamic-selector component
* feat: set `fxEnabled` prop default to `false` in DynamicSelector.
* fix(DynamicForm): fix fxEnabled prop handling to support snake_case
* refactor: rename variables and clean code
* refactor: rename cache key from `__default` to `nonDependentCache` in DynamicSelector.
* feat: Simplify dynamic selector data handling by removing transformation logic.
* refactor: simplify DynamicSelector error log by removing data source ID.
* fix: Throw an error when multi-user authentication is enabled but no user ID is found.
* refactor: rename iteration variables for improved readability
* perf: memoize composite dependency key calculation using `useMemo` hook.
* refactor: simplify `isFxMode` state initialization by removing dynamic value checks and `useEffect`
* refactor: remove unused `responsePath` prop from `DynamicForm` component
* refactor(DynamicForm): remove unused `rest` prop from `getElementProps`.
* fix(DynamicForm): fix support for snake and camel case props
* feat: Add support for passing arguments when invoking data source methods.
* Feat/googlesheets-v2 plugin (#2)
* GoogleSheets v2
* Changes in Operations
* feat: introduce the dynamic-selector abstracted component with support for caching dependent dropdowns
* feat: introduce fx toggle option to enable fx editor in the dynamic-selector component
* feat: set `fxEnabled` prop default to `false` in DynamicSelector.
* Error Standarization
* fix(DynamicForm): fix fxEnabled prop handling to support snake_case
* refactor: rename variables and clean code
* refactor: rename cache key from `__default` to `nonDependentCache` in DynamicSelector.
* feat: Simplify dynamic selector data handling by removing transformation logic.
* refactor: simplify DynamicSelector error log by removing data source ID.
* fix: Throw an error when multi-user authentication is enabled but no user ID is found.
* refactor: rename iteration variables for improved readability
* perf: memoize composite dependency key calculation using `useMemo` hook.
* refactor: simplify `isFxMode` state initialization by removing dynamic value checks and `useEffect`
* refactor: remove unused `responsePath` prop from `DynamicForm` component
* refactor(DynamicForm): remove unused `rest` prop from `getElementProps`.
* fix(DynamicForm): fix support for snake and camel case props
* feat: Add support for passing arguments when invoking data source methods.
* feat: Integrate the dynamic-selector component to the googlesheetsv2 datasource
---------
Co-authored-by: Pratush Sinha <pratushsinha619@gmail.com>
Co-authored-by: Pratush <pratush@Pratushs-MacBook-Pro.local>
* fix: correct FxButton import path
* Bug fixes
* ui-fixes
* authenticate button
* authenticate button design
* bug fixes
* Pass ENV ID to DyanamicForm
* refresh token fixed
* added helper
* query error from invoke method
* Fix/Googlesheets v2 bug fixes (#15043)
* fix: reduce font size of googlesheets authorize description
* fix: update labels
* fix: replace legacy googlesheets with v2 in commonly used
* fix: address review comments
* save button (#15035)
* save button
* sheet required
* conditional connect
* authUrl Fixes
* authUrl Query Fix
* dependency fixed (#15083)
* chore: bump version to 3.20.80-lts across all modules
---------
Co-authored-by: Pratush Sinha <pratushsinha619@gmail.com>
Co-authored-by: Pratush <pratush@Pratushs-MacBook-Pro.local>
Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
Co-authored-by: Rudhra Deep Biswas <rudra21ultra@gmail.com>
Co-authored-by: abhijeet760 <abhijeet@tooljet.com>
Co-authored-by: Rudhra Deep Biswas <98055396+rudeUltra@users.noreply.github.com>
Co-authored-by: Sahil Dewangan <123866478+sahil7303@users.noreply.github.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* 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
* plan
* 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+Copilot@users.noreply.github.com>
* modules and customGroup
* 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.
* builder roggle
* role name
* 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
* struct
* fix
* sus
* field fix
* create app btn
* fix: Corrected zustandDevTools enabled option logic
* module visible
* refactor: update license validation logic and improve feature access checks
* app module
* feat: Added modules support for public apps
* update ee-frontend submodule ref
* Enhance: Vertical page menu default styles
* refactor: migrate license management to a new store and update related components
* workflow enabled
* feat: integrate license validation into Viewer component and remove deprecated license check
* Revert "feat: integrate license validation into Viewer component and remove deprecated license check"
This reverts commit b4b5218079.
* Revert "refactor: migrate license management to a new store and update related components"
This reverts commit cd2936bb12.
* chore: update subproject commit reference in server/ee
* chore: merged with lts
* chore: moved components from Editor to AppBuilder folder
* chore: cleaned up the appbuilder imports
* refactor: update license checks in PageSettingsTab components to use appPermissionPages feature flag
* refactor: update license checks in QueryCardMenu and Inspector components to use appPermission feature flags
* 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
* refactor: add license checks for page, query, and component permissions in app-permissions feature configuration
* chore: update subproject commit reference in server/ee to latest version
* chore: update subproject commit reference in server/ee to latest version
* 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
* chore: update subproject commit reference in server/ee to latest version
* 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+Copilot@users.noreply.github.com>
* 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+Copilot@users.noreply.github.com>
* Update frontend/src/AppBuilder/Widgets/ModalV2/helpers/stylesFactory.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* 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
* 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
* style: Update padding and spacing in app history styles for improved layout
* 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
* 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 d712c47f9c.
* 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 8aec525e9a.
* 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
* feat: add AppHistoryStreamService to manage app history streaming
* update submodule reference for server/ee
* update submodule reference for server/ee
* fix: add null check in onHideSideEffects and remove unnecessary !important from sidebar height
* fix: update submodule reference for server/ee
* Fix: Page menu header overflowing the canvas on app mode change
* Fix: Canvas width changes on opening left and right sidebar when page menu is side aligned and opened
* Fix: App logo and name getting wrapped to new line in mobile view
* chore: update submodule to latest commit ddc3418f for server/ee
* Fix: Released app mobile view
* Fix: sidebar footer getting cutoff in mobile view
* chore: update submodules for frontend and server to latest commits
* Update ee-server submodule reference
* Update ee-server submodule reference
* Update data-cy attribute
* Modify cypress test cases
* Update tooltip messages to clarify access restrictions and upgrade prompts (#14720)
* Update tooltip messages to clarify access restrictions for various features, encouraging users to upgrade their plans for additional permissions.
* Update tooltip message in AddNewPageMenu to provide clearer guidance on access restrictions and encourage plan upgrades.
* Refactor permission checks in AddNewPageMenu to use updated feature access flags for adding navigation groups.
* Refactor PageSettingsTab to utilize updated feature access flags for app permissions and navigation group visibility.
* Update tooltip messages across components to consistently indicate "Access restricted" for insufficient permissions, enhancing user clarity on access limitations.
* Refactor PagesSidebarNavigation and MobileHeader to utilize updated feature access flags for header and logo visibility. Introduced hasAppPagesHeaderAndLogoEnabled flag for conditional rendering, enhancing clarity on app page features.
* Remove obsolete dump.rdb file from the plugins directory, streamlining project structure.
* Refactor feature access checks across components to use hasAppPagesAddNavGroupEnabled flag for improved clarity and consistency in navigation group permissions. Removed obsolete license checks and console logs to streamline code.
* UI Fixes (#14744)
* ui fix
* minor ui fix
* feat: enhance version management with menu handling and fetch tracking (#14745)
* feat: enhance version management with menu handling and fetch tracking
* feat: enhance version management with menu handling and fetch tracking
* update submodule
---------
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* Fix: Header not visible in released app in mobile view (#14747)
* Update submodule references for frontend and server components
* Fix: Header and logo not visible in released app once plan expires (#14752)
* Fix: Header and logo not visible in released app once plan expires
* Remove console log
* Fix: Header inside the sidebar too
* chore: bump version to 3.20.53
---------
Co-authored-by: Kavin Venkatachalam <kavin.saratha@gmail.com>
Co-authored-by: devanshu052000 <devanshu.rastogi05@gmail.com>
Co-authored-by: Rudhra Deep Biswas <rudra21ultra@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: manishkushare <kushare.manish9@gmail.com>
Co-authored-by: Nishidh Jain <nishidhjain909@gmail.com>
Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
Co-authored-by: ajith-k-v <ajith.jaban@gmail.com>
Co-authored-by: Rohan Lahori <64496391+rohanlahori@users.noreply.github.com>
Co-authored-by: vjaris42 <vjy239@gmail.com>
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* POstgresql query level timeout implementation
* for query without parameters query level timeout has been updated
* Query level timeout at Run Query endpoint
* label for timeout is updated
* Timeout is applied at run query level
* Method name has been modified
* ref updated
* Error message modified
* Abort controller is abstracted
---------
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* fix: update documentation links from tooljet.ai to tooljet.com across various components
- Changed documentation links in DataSourcePicker, QueryManagerBody, Transformation, Workflows, QueryCard, Inspector, AddNewPagePopup, and others to point to the new domain.
- Ensured consistency in link formatting and structure.
- Minor code style adjustments for readability.
* chore: update version to 3.20.42-lts across all components
* feat: Add new gRPC v2 plugin
- Enhanced DataSourcesController to support invoking methods on data sources.
- Introduced InvokeDataSourceMethodDto for method invocation requests.
- Added WhitelistPluginGuard to restrict method invocation based on data source kind.
- Updated IDataSourcesController and IDataSourcesService interfaces to include invoke method functionality.
- Implemented invokeMethod in DataSourcesService to handle method calls for gRPC v2.
- Added method whitelisting for gRPC v2 in the service layer.
* refactor: invokeMethod to use method dispatch pattern
* fix: improve error handling in testConnection method
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* refactor: update types and interface
* fix: remove unnecessary border styles for improved UI consistency
* refactor: simplify error handling
- Introduced a new SCSS file for styling the gRPC v2 query editor components.
- Styled request sections, server URL input, dropdown menus, and method buttons for better user experience.
refactor(grpcv2): enhance error handling and type safety
- Updated error handling in gRPC query service to use a new `toError` utility function for consistent error conversion.
- Improved type definitions for gRPC client and service methods to ensure better type safety.
- Refactored method existence validation and gRPC call execution to handle errors more gracefully.
fix(grpcv2): improve service discovery and proto file loading
- Enhanced service discovery logic to handle reflection and proto file clients more robustly.
- Added checks for valid service constructors and improved error messages for better debugging.
- Updated the `loadProtoFromRemoteUrl` function to handle HTTP errors more effectively.
chore(grpcv2): add utility functions for type checks
- Introduced utility functions `isRecord`, `hasProperty`, and `toError` for better type checking and error handling throughout the codebase.
* feat: add LegacyBanner component for gRPC legacy tag display
* fix: styling changes
* fix: correct text in LegacyBanner component
* feat: enhance GRPCv2 component with request handling and state management improvements
* refactor: update metadata handling in GRPCv2 component and service
* refactor: update GRPCv2 component to use raw_message instead of requestData
* fix: Styling issues and labels
* refactor: gRPC test connection checks for proto file and url
* fix: improve error handling in service discovery
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix deps
* Modularisation changes for Build with AI feature
* New app loading UI for Build with AI feature & added animation for chat messages
* Fix Error using AI feature
* add missing services and logic
* fix app gen
* update submodules
* EE frontend submodule updated
* update submodules
* EE frontend submodule updated post sync
* Added Artifact Preview component to ee moddules list
* Updated ai slice code
* app gen changes
* Resolved fix with AI bugs
* Resolved AI Copilot bugs
* app gen changes and query fixes
* fix query generation bugs
* update copilot
* Resolved ChatMode dropdown & popover bug fix
* Resolved PR suggestions & PreviewBox component in CE edition
* Synced frontend/ee with main
* Synced server/ee with main branch
* Enhance submodule checkout process to handle branch existence and fallback to main (#13218)
* Enhance submodule checkout process to handle branch existence and fallback to main
* Improve submodule checkout process to handle branch validation and fallback to main
* chore: Comment out Node.js setup, dependency installation, and build steps in cloud frontend workflow
* refactor: Enhance submodule checkout process to include submodule name in logs
* Update submodule checkout process to use the correct submodule name extraction method
* fix: Update submodule checkout script to use correct submodule path variable
* Improve submodule checkout process to correctly handle branch names and fallback to main
* chore: Uncomment Node.js setup, dependency installation, and build steps in cloud frontend workflow
* fix: Update branch checkout logic to use correct syntax and improve fallback handling
* fix: Update git checkout command to use -B flag for branch creation
* fix: Improve submodule checkout process to explicitly fetch branch ref before checkout
* fix: Enhance submodule checkout process with improved branch validation and error handling
* fix: Improve branch checkout logic by enhancing fetch command and validating branch existence
* fix: Enhance manual Git checkout process with improved fetch and error handling
* fix: Restore Node.js setup, dependency installation, and Netlify deployment steps in workflow
* 🔄 chore: update submodules to latest main after auto-merge
* Took sync of fix/appbuilder-02 in frontend/ee
---------
Co-authored-by: Kartik Gupta <gupta.kartik18kg@gmail.com>
Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com>
Co-authored-by: adishM98 Bot <adish.madhu@gmail.com>