- Add Python 3 and nsjail to EE preview Dockerfile
- Pre-install common packages (numpy, pandas, requests, httpx, pydantic)
- Add TOOLJET_WORKFLOW_SANDBOX_BYPASS=true to Render workflow
- Document bypass env var in .env.example
Render doesn't support SYS_ADMIN capability, so nsjail sandboxing won't
work. The bypass env var explicitly opts-in to unsandboxed execution
for cloud platforms with restricted capabilities.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Implement SCIM module with user and group management features
* Add SCIM module with user and group management features
* init
* working
* extend
* feature key
* scim auth guard
* sus
* default org
* sus
* fix: replace body-parser with NestJS json parser for SCIM routes
---------
Co-authored-by: gsmithun4 <gsmithun4@gmail.com>
* refactor(workflows): migrate core modules from Temporal to BullMQ
Update main application modules to support BullMQ-based workflow scheduling:
- Remove Temporal worker bootstrap code from main.ts
- Migrate from @nestjs/bull to @nestjs/bullmq
- Add Bull Board dashboard at /jobs with basic auth
- Register BullMQ queues in WorkflowsModule
- Add IWorkflowScheduler interface for scheduler abstraction
- Create CE stubs for WorkflowSchedulerService and ScheduleBootstrapService
- Remove workflow dependencies from AppsModule (moved to WorkflowsModule)
- Add proper route exclusion for /jobs dashboard
- Support WORKER env var for conditional processor registration
This commit completes the migration from Temporal to BullMQ for workflow
scheduling, enabling simpler deployment and better horizontal scaling.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* chore: remove unused Temporal imports and commented code
Clean up migration artifacts:
- Remove unused imports from main.ts (TOOLJET_EDITIONS, getImportPath, ITemporalService, getTooljetEdition)
- Remove commented TemporalService references from WorkflowsModule
- Remove temporal.service from getProviders path array
- Add missing newlines at EOF for IWorkflowScheduler.ts and schedule-bootstrap.service.ts
This cleanup prepares the codebase for complete Temporal code removal in a future commit.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* build: add BullMQ and Bull Board dependencies
Add required packages for BullMQ-based workflow scheduling:
- @nestjs/bullmq: NestJS integration for BullMQ
- @bull-board/api, @bull-board/express, @bull-board/nestjs: Queue dashboard
- bullmq: Core BullMQ library
- express-basic-auth: Authentication for Bull Board dashboard
Note: @nestjs/bull is kept for backward compatibility during migration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* chore: remove Temporal service files from CE
Remove deprecated Temporal-based workflow implementation files:
- server/src/modules/workflows/interfaces/ITemporalService.ts
- server/src/modules/workflows/services/temporal.service.ts
These files are replaced by IWorkflowScheduler interface and BullMQ-based
WorkflowSchedulerService implementation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* feat: add comprehensive Redis configuration support for BullMQ
* refactor: remove Temporal setup and configuration from entrypoint scripts and Dockerfiles (#14294)
* refactor: remove Temporal setup and configuration from entrypoint scripts and Dockerfiles
* feat: integrate Redis support for BullMQ in preview environment
* remove worker execution logic from setup script
* Refactor: Centralise workflow execution through BullMQ (#14321)
* refactor: run all workflows through bullmq
* refactor: update imports
* chore: update subproject commit reference in server/ee
* feat: ablity to cancel workflow
* feat: implement workflow cancellation functionality with Redis support
* feat: add optional timeout parameter to requestCancellation method
* refactor: clean up formatting and add maintenance toggle event emission in AppsService
* feat: ability to cancel multiple inprogress executions
* feat: implement execution state management and display logic
* chore: update submodule commit reference
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com>
* Chore: Tooljet database and marketplace are mandatory set on render and other deployment file for CE
* added PGRST_DB_PRE_CONFIG=postgrest.pre_config
* edited .env.example file
* Added no codition section when aggregates are not available
* Added feature to add aggregate condition and display it accordingly
* Added feature to change the aggregateFx option
* Added feature to update column option in the aggregate
* Added feature to delete the aggregate
* Disabling the group by according to valid condition but without tooltip
* Added flow for deleting aggregate
* feat: migration and configuration changes to support aggregation in tooljet database
* added functionality for join table operations
* Dropdown styles
* Showing section for aggregate dropdown for joinTable operation
* Added gap in multiple aggregate conditions
* Added table_id in aggregate condition
* Added custom placeholder
Adjusted width of add condition of aggregate
* Refactored logic for disable group_by field
Added tooltip when group by is disabled
* Updated aggregateFx to aggFx and groupBy to group_by
* feat: group_by and aggregate option in list rows
* added table name for aggregate dropdown value in joinTable operation
* Get the group by options
* value of aggregate column dropdown in join table operation
* Added error and success message for aggregate deletion
* Spacing adjustments
* Clear the unwanted code
* Updated the stucture of aggregate
* Updated the structure of group_by
* Fix: Query builder breaking due to undefined values
* feat: logic used to aggregate on joins
* Removing async
* fix: app is crashing
* feat: statement timeout at database level and user session level configuration can be done for ToolJet database
* Added min and max width to dropdown in tooljetdb query manager
* Added description
* Adding width as 80 percentage when description is not avaialable
* New Postgrest change for render related to Aggregate (#10175)
* New Postgrest change for render related to Aggregate and group by functionality
* correction in PGRST_DB_ENABLE_AGGREGATE value
* Adding the env variable PGRST_DB_PRE_CONFIG
* Adding the new postgrest related env changes to CE specific files
* fix: updated env variable naming for aggregates
* Showing description at the bottom for aggregate fx
* Fixing typo error
* Showing tick mark on selected item in dropdown when isMulti is false
* Updated requested changes
* Showing some description when option is not focused or selected
* Updated the component name to AggregateFilter
* fix: updated env variable to enable aggregation in tooljet database
* refactor: new wrapper to create migration connection for tooljet database
* fix: custom error message for aggregation errors has been handled for list_rows operation
* fix: code review fixes
* fix: aggregate function validation typo is updated
* fix: empty validation for Select and Aggregate fields
* postgrest changes for cypress
* removed PGRST_DB_ENABLE_AGGREGATE
---------
Co-authored-by: Ganesh Kumar <ganesh8056234@gmail.com>
Co-authored-by: Adish M <44204658+adishM98@users.noreply.github.com>
Co-authored-by: Adish M <adish.madhu@gmail.com>
* Fix for entrypoint.sh file take default port value 5432 in database_url
* Added information about database_url in docs
* mentioning what variable needs to be given when passing string
* fix for lint issue in ci
* fixing syntax errors
* new code for osv
* made changes in server.dockerfile
* removed seeding from docker guide in docs
* corrections in .env.example
* corrections
* removed extra nodejs and npm
* 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 ⚡
* 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 💣
* ws: cleanup 🤙
* 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
* setup sentry for server
* setup sentry for client
* update docs for sentry dns
* explicitly specify apm vendor
* add module for sentry
* revise directory struct and make sentry debuggable
* setup csp and trace headers for sentry
* whitelist csp for all sentry urls
* change senrty error sample rate to 50%
* make sentry send all errors from backend
* separate dockerfile for tooljet client in development mode
* production dockerfile for tooljet client
* reference the tooljet clients dev dockerfile in the docker-compose file
* use a fallback url for API_URL in cases where TOOLJET_SERVER_URL is not defined
* nginx config file for the front-end
* docker-compose file for production deploys
* dont run postgres inside docker-compose
* use an entrypoint script for setting the server host for nginx
* separate volume for fallback certs
* add docs for docker-compose deployment
* add required database keys in the .env.example file
* address review comments