ToolJet/docker/pre-release/ee/ee-try-entrypoint.sh
Akshay 18b831f783
Refactor: Workflows with BullMQ (#14275)
* 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>
2025-11-05 17:54:38 +05:30

35 lines
No EOL
1.1 KiB
Bash
Executable file

#!/bin/bash
set -e
echo "🚀 Starting Try ToolJet container initialization..."
# Step 1: Configure and Start PostgreSQL
echo "🔧 Configuring PostgreSQL authentication..."
sed -i 's/^local\s\+all\s\+postgres\s\+\(peer\|md5\)/local all postgres trust/' /etc/postgresql/16/main/pg_hba.conf >/dev/null 2>&1
sed -i 's/^local\s\+all\s\+all\s\+\(peer\|md5\)/local all all trust/' /etc/postgresql/16/main/pg_hba.conf >/dev/null 2>&1
echo "📈 Starting PostgreSQL..."
service postgresql start
echo "⏳ Waiting for PostgreSQL..."
until pg_isready -h localhost -p 5432; do
echo "PostgreSQL not ready yet, retrying..."
sleep 2
done
echo "✅ PostgreSQL is ready!"
# Create ToolJet user
psql -U postgres -tc "SELECT 1 FROM pg_roles WHERE rolname='tooljet'" | grep -q 1 || \
psql -U postgres -c "CREATE USER tooljet WITH PASSWORD 'postgres' SUPERUSER;" >/dev/null 2>&1
# Export default port if not set
export PORT=${PORT:-80}
supervisord -c /etc/supervisor/conf.d/supervisord.conf &
SUPERVISOR_PID=$!
echo "🎉 All services started successfully!"
echo "📍 ToolJet should be accessible at http://localhost"
# Wait on background processes
wait $SUPERVISOR_PID