* fix: update workflow query endpoint to use correct URL
* chore: update subproject commits for frontend and server
* fix: add request parameter to triggerWorkflow method in controller and interface
* feat: implement workflow query validation guard and add static data source retrieval method
* chore: update subproject commits for frontend and server
* refactor: remove ValidateWorkflowQuerySourceGuard as part of code cleanup
* fix: correct data_source_id property assignment in createWorkflowQuery function
* fix: update endpoint for createWorkflowQuery to use correct URL for workflow nodes
* Added controller and service for fetching logs and nodes seperately
* Add inifinte scroll pagination for workflow logs
* Fix "All Nodes" not renderd on Nodes column
* Fix reducer to append logs on Logs column
* Fix: incorrect code placement
* Fix reducer to append logs on Nodes column
* Prepend execution log on workflow run
* Fix node ordering
* Decouple logs panel from workflow editor
* Update execution nodes when log panel is opened
* Reset log selection on workflow run
* Added 'updatePreviewState' function
* Update ee-server submodule reference
Migrate hotfix for workflow blockers including:
- Feature: Ability to call workflow within a workflow
- Feature: Preview query node with other previewed node results
- Fix: startTrigger input accepts string values instead of code/JSON
Frontend changes:
- Add workflow-in-workflow support in FlowBuilder and QueryNodeConfiguration
- Enhance query node preview with upstream node state management
- Implement preview state cleanup with deleteNodePreviewState calls
- Replace TestParameter input with CodeHinter for better JSON editing
- Add workflow node type support and error styling
- Update WorkflowEditor components for nested workflow handling
Backend changes:
- Update workflow execution controller to handle state parameter
- Enhance PreviewWorkflowNodeDto with optional state field
- Modify workflow services for state-aware query execution
- Update triggers listener and webhooks service
Migration follows composition pattern for frontend EE modules and
inheritance pattern for backend services.
Co-authored-by: Akshay Sasidharan <akshaysasidrn@tooljet.com>
Co-authored-by: Shah <shah21@tooljet.com>
Co-authored-by: Devanshu <devanshu052000@tooljet.com>
What's changed?
🚀 Features
Feature: Configurable workflow execution in #3663 by @akshaysasidrn
Feature: Duplicate the workflow node in #3616 by @manishkushare
🛠️ Fixes
Fix: Resolve workspace constants and secrets in workflow context in #3659 by @akshaysasidrn
Overview
This PR implements real-time workflow execution monitoring using Server-Sent Events (SSE) as part of our LTS feature support. The implementation allows for tracking long-running workflows without requiring deployment changes.
Technical Changes
1. Server Components
Added WorkflowStreamService to manage persistent SSE streams with automatic cleanup
Implemented @sse endpoint in WorkflowExecutionsController for streaming status updates
Created WorkflowTriggersListener to emit workflow execution events with EventEmitter2
Added workflow execution status constants to identify different states in the execution lifecycle
2. Client-side Components
Implemented AsyncQueryHandler to manage SSE connections and parse event streams
Enhanced queryPanelSlice with methods to create async handlers and trigger workflows
Added support for non-blocking workflow execution with real-time status updates
3. Workflow Integration
Modified workflow triggering to use the SSE-based monitoring approach
Maintained same-server architecture to avoid deployment changes
Added automatic reconnection handling and error recovery for client connections
Architecture Decisions
Selected Same Server Approach: Chose to implement workflows within the same HTTP server to maintain the existing deployment setup for LTS users
Real-time Updates with SSE: Leveraged Server-Sent Events for their simplicity, efficiency, and compatibility with existing infrastructure
Future Extension Path: Implementation can be extended to Worker Threads or Microservice architecture later if needed
* init: Added resetOnSubmit, validateOnSubmit properties and exposed formData value
* Added the generate form from dropdown menu on the inspector
* feat: Added generate form button and fields section
* Added the generate column popup UI
* feat: Added UI for form fields
* feat: Added the UI for new custom field
* chore: Added refresh data and custom schema UI
* feat: Added the util function to map the JSON to component
* chore: cleanup and fixed bugs on dropdown
* feat: Added fields property to the form config
* feat: save generated fields on form
* feat: generated child components from the JSON
* fix: bugs on generating component from JSON
* chore: added functionality for view properties and styles on field popover
* feat: Added local state for add new custom fields
* feat: Added logic to create component on submitting new custom field
* fix: bugfies on creating a custom fields
* feat: Handled grouping of data in the manage column modal
* feat: Handled deletion case of the fields
* fix: fixed bug on deleting the fields
* chore: Updated the form fields logic to store only the necessary values and fetch the remaining values from the component directly using componentId
* chore: updated logic to handle fx in mandatory and selected fields
* feat: Added functionality to update the component from form fields
* fix: bug on componentType typo
* chore: written logic to handle the componentType update
* feat: Added multiple updates including componentType change
* chore: Added few more input components
* chore: Moved the form fields property logic to new formComponentSlice
* fix: creating a custom field while dragging across the parent components
* chore: reverted the deletion logic a bit to properly fetch the parentID from the component
* fix: while moving the component with more than 1 form field, it is clearing the complete list
* fix: handle the case of moving component from canvas to form
* chore: Removed unwanted UI blocks and added logic to conditionally display data section when custom schema is turned off
* chore: cleaned up the Dropdownmenu component & added memo to avoid re-render
* feat: Added query support and updated logic to display the columns on the modal
* chore: cleanup & passed the correct columns to the component
* chore: cleaned up the form status constant
* chore: wrapped functions in a
* chore: created a separate function to create components from form
* chore: cleaned up the code to use the same code for component creation
* chore: updated the logic for the form field component update
* feat: Added functionality for single field popover icons & moved the single field creation out of common function to simplify the field update
* fix: removed the deleted fields while refreshing the form
* fix: updated the logic for the refresh fields
* feat: Added logic to ignore the components to be deleted for regeration of form
* chore: moved the component list supported to a constant
* fix: Added a backfill logic for the fields property to handle without migration
* fix: added a correct key for custom field
* fix: Fixed issue on adding custom fields while regenrating the form
* fix: Fixed issues on generating form fields while refreshing the FORM
* chore: cleanedup the code
* chore: Fixed path and merged with main
* fix: avoided the multiple re-renders on FORM and fixed the state issue on data & formData
* fix: removed the child components from inspector & added a support for query even if it is an array to generate the form
* fix: fixed few bugs and design feedbacks
* fix: Added a logic to set the width of the dropdown menu same as dropdown trigger
* feat: updated the deprecated section for Form
* feat: Added a logic to run query on selecting the query on generate form from
* fix: changed the logic of selection handled in the manage column modal. The components will be created only if the column is selected.
* refactor: moved the manage fields from button to an icon
* fix: merged the field definition with the existing default data to show it on manage column popup
* feat: focused the codehinter when the rawJson is selected on the dropdown menu
* chore: cleanup
* feat: update formComponentSlice with latest changes
- Fixed getCurrentPageIndex usage in setComponentPropertyByComponentIds
- Enhanced component batch operations functionality
- Improved form field management logic
* Reverted the git changes reflected on the form PR
* Reverted the git changes reflected on the form PR
* Reverted the git changes reflected on the form PR
* fix: fixed the issues due to merge conflict
* feat: Removed componentMapping modal for rawJson. Added JsonSchema in the dropdown menu and moved the refresh button inside the modal footer for the queries
* fix: Added a loader in the column mapping & updated the styles
* chore: cleanup and moves to separate files
* chore: cleanup the components
* fix: modal was not poping up when I click a different query
* chore: cleanedup `ColumnMappingComponent`
* fix: fixed bugs on regenerating the forms, shown the loader while running the query, added support for multiple queries etc
* chore: removed unwanted props
* fix: fixed the undo/redo issues
* fix: Fixed the issue on custom fields not showing up on the columnMappingModal
* fix: bugfixes like duplicate field, maping popup stays on screen, visibility not working, form loader etc
* fix: Fixed the height of the textare and fixed showing the main popover on click of make mandatory button
* fix: Fixed the undo redo issue on deleting the form component
* fix: removed the undo/redo while saving the form data section
* chore: updated the default data for rawJSON
* fix: Fixed bugs on toggleswitch, scroll, placeholder etc
* fix: Added a condition to render the placeholder input
* chore: taken care bito feedback
* fix: fixed the modal closing issue
* fix: Fixed the gutter issue as the canvas height needs to be updated once the child components are generated
* chore: fixed design feedback
* fix: Added hover to the modal body instead of each section
* feat: Add CSA and functionalities for managing loading, visibility, and disable states for full tab component. (#11267)
* feat: tab draggble option and popover menu (#11267)
* feat: tab scrollable arrows and tabItem logic(#11267)
* feat: remove logs(#11267)
* feat: Tabslayout name change(#11267)
* fix: component update on Tabs
* fix: tab text color update
* feat: setTabDisable CSA added(#11267)
* feat: added CSA for tab specific changes(#11267)
* feat: added handle function for tab specific changes(#11267)
* feat: shimmer for tab nav and icon chooser (#11267)
* feat: icon for each tab in TabNav items (#11267)
* feat: equal split width fix for each tab in TabNav items (#11267)
* feat: styles for Tab Nav (#11267)
* feat: slide options(#11267)
* feat: fix radius (#11267)
* feat: slider (#11267)
* feat: fix slide direction (#11267)
* feat: fix slide direction 2 (#11267)
* feat: fix styles right side inspector view (#11267)
* feat: nav ellipsis ... (#11267)
* feat: children different for dynamic and non-dynamic (#11267)
* feat:[tabsLayout] change default values in config (#11267)
* feat:[tabsLayout] split and auto fix (#11267)
* feat: fix styles accent and text (#11267)
* feat: fix styles divider and more 2(#11267)
* feat: fix styles divider and more 3(#11267)
* feat: fix styles 4(#11267)
* feat: fix styles 5(#11267)
* feat: fix tab icon visibility 6 (#11267)
* feat: modify name of property from id to Tab 7(#11267)
* fixes and changes
* fix: csa for tabs
* new changes and fixes
* fix: dynamic options sytling
* v2 changes
* add: new properties and styles to inspector for range slider
* fixes of range slider
* fix: styling
* fix: styling of icons
* fixed endvalue and startvalue problem
* ColorSwatches for table
* fix: styling
* transition effect fix
* fix: properties and migration
* fix: slider functionality
* fixed transition
* new changes
* visible,disable,loading,width
* feat: merge appbuilder/sprint-11 with main
* fix: styling
* style: extend tabpane background to whole pane
* [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable' -m 'Changes done for: Currency, Email, Phone Number & ModalV2 component
* review changes
* fix: tinycolor import
* [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable
Changes done for: Date, Time, DateTime & Date Range Picker components
* [Issue 12503] Update input's with type as color to colorSwatches and also change accent color value to primary brand css variable
Changes done for: Form, Textarea & Horizontal Divider component
* Fix: Add default selected value config for Header & Footer Background Color input field for Form component so that its shows correct color demo & its value
* Fix: Resolved custom theming issues in different components
* feat: Revamps file uploader widget
* Fixes added
* Custom theme extra code for extra components
* Submodule commit change
* Submodule commit change
* Textinput theming added
* Number input theming added
* Email & Password Theming added
* Textarea theming added
* Error system status added along with rating theming
* ToggleV2 theming added
* Toggle, RadioButton & Error related theming added
* Checkbox Theming added
* Dropdown V2 and legacy theming added
* Multiselect V2 theming added
* Adding ux friendly error messages
* Misc1 and Misc 2 theming added
* Multiselect legacy theming added
* Form components theming added
* Subcontainer related issues
* Subcontainers theming added
* Tabs theming added
* Filepicker theming added
* Range slider theming added
* Steps theming added
* Submodule update
* Package update
* Added Header text, background and container background color
* Submodule Update
* Submodule update
* Submodule update
* Submodule update
* Hover effect added
* feat: Revamps file uploader widget
* Adding ux friendly error messages
* Adds style tab
* Adds min file validation
* Reset vs code
* Adds support for theme
* Base theme added
* Base theme added
* Base theme added
* initial commit
* fix
* Fixes
* Submodule update
* Added auto color assign feature for multiselect/select in table
* Table column popover going out of bounds fix
* Changed layout of component manager
* DropdownV2 added to selectInputs
* HTML column data type added
* Table column icons added
* Fix dropping widget width while dragging
* Changed datepicker icon and added icons to table dropdown
* Style: Update Accordion Component UI
* Temp changes
* Fix group selection in form
* fix when dropping a component, shadow is coming on top of component manager.
* improve performace on useGroupedTargetsScrollHandler
* Fix
* Review fixes
* Minor changes
* chore: update submodule references
* Color swatches added icon/default and added disabled/loading state
* Submodule update
* Bugs solved
* Fixes for Component sidebar
* Custom theme related bug fixes
* App Background Switch added
* Submodule update
* Submodule update
* HTML fixes
* Submodule update
* Query breaking on Symbol fix
* Import export property migration for Rangepicker & Textarea
* Auto color pills not working for table select fix
* Custom themes minor bugs
* Submodule update
* Minor fixes
* Revamp pages in editor and viewer
* bug fixes
* merge base
* fix conflicts
* fix conflicts
* bug fixes
* Added swatches to page menu
* Submodule update
* Submodule update
* Submodule update
* Styling fixes
* Changed few page styles
* bug fixes
* fix: pages icon and layout for right sidebar
* fix: styling for pages menu
* fix base styling
* merge base
* bug fixes
* Bug fixes
* Submodule update
* Submodules updated
* bug fixes
* fix top styling of nav bar
* Sass loader error fix
* styles: correct styles to match the dsigns
* Accordion design added with some minor styling fixes
* fix: update default supported file of filepicker to any
* fix: update styles mismatches
* fix: hide min and max file count if multi file select is disabled
* TJ Default changed to Tooljet Migration
* Multiline code editor suggestions now close when out of view
* add border to canvas
* Dark theme link color fix for html column type
* Spinner color fix
* bug fixes
* bug fixes
* Submodules updated
* update reference
* Submodule update
---------
Co-authored-by: Raman Kumar <k.raman1998@yahoo.in>
Co-authored-by: Vijaykant Yadav <vjy239@gmail.com>
Co-authored-by: TaruunMalik <taruunrmalik09@gmail.com>
Co-authored-by: johnsoncherian <johnsonc.dev@gmail.com>
Co-authored-by: NishidhJain11 <nishidh@tooljet.com>
Co-authored-by: Nithin David Thomas <1277421+nithindavid@users.noreply.github.com>
Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
* initial commit
* fix
* Fixes
* Fix dropping widget width while dragging
* Fix group selection in form
* fix when dropping a component, shadow is coming on top of component manager.
* improve performace on useGroupedTargetsScrollHandler
* Fix
* Revamp pages in editor and viewer
* bug fixes
* merge base
* fix conflicts
* fix conflicts
* bug fixes
* bug fixes
* fix: pages icon and layout for right sidebar
* fix: styling for pages menu
* fix base styling
* merge base
* bug fixes
* bug fixes
* fix top styling of nav bar
* add border to canvas
* bug fixes
* bug fixes
* update reference
* bug fix
---------
Co-authored-by: Nakul Nagargade <nakul@tooljet.com>
* lts to pre prelease query
* Add test cases for query options resolution
* string and undefined
* comments
* fixes brackets
---------
Co-authored-by: Akshay Sasidharan <akshaysasidharan93@gmail.com>
Co-authored-by: Midhun G S <gsmithun4@gmail.com>
* deprecated static local data sources
* changes
* transactions wrapped under dbTransaction wrap
* removed entity manager from app import export service
* Update export app cypress test case.
* update app export test case
* type error fix for loader
* fix for listing of tooljetdb for app import export
* postgrest configs
* added readme
* cleanup
* fix for app import export version order
* Update app export spec
* fix
---------
Co-authored-by: ajith-k-v <ajith.jaban@gmail.com>