Add Activepieces integration for workflow automation

- Add Activepieces fork with SmoothSchedule custom piece
- Create integrations app with Activepieces service layer
- Add embed token endpoint for iframe integration
- Create Automations page with embedded workflow builder
- Add sidebar visibility fix for embed mode
- Add list inactive customers endpoint to Public API
- Include SmoothSchedule triggers: event created/updated/cancelled
- Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
poduck
2025-12-18 22:59:37 -05:00
parent 9848268d34
commit 3aa7199503
16292 changed files with 1284892 additions and 4708 deletions

View File

@@ -0,0 +1,170 @@
{
"name": "server-api",
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/server/api/src",
"projectType": "application",
"tags": [],
"implicitDependencies": ["engine"],
"targets": {
"build": {
"executor": "@nx/esbuild:esbuild",
"outputs": ["{options.outputPath}"],
"defaultConfiguration": "production",
"options": {
"external": ["@electric-sql/pglite"],
"main": "packages/server/api/src/main.ts",
"outputPath": "dist/packages/server/api",
"outputFileName": "main.js",
"tsConfig": "packages/server/api/tsconfig.app.json",
"platform": "node",
"format": ["cjs"],
"bundle": true,
"sourcemap": true,
"generatePackageJson": true,
"assets": [
{
"glob": "packages/server/api/README.md",
"input": ".",
"output": "."
},
"packages/server/api/src/assets"
]
},
"configurations": {
"development": {
"minify": false
},
"production": {
"minify": false
}
}
},
"serve": {
"executor": "@nx/js:node",
"options": {
"buildTarget": "server-api:build",
"host": "0.0.0.0"
},
"configurations": {
"production": {
"buildTarget": "server-api:build:production"
}
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["packages/server/api/**/*.ts"]
}
},
"test-unit": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "packages/server/api/jest.config.ts",
"passWithNoTests": false,
"bail": true,
"testPathPatterns": ["packages/server/api/test/unit"]
}
},
"test-ce-command": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "packages/server/api/jest.config.ts",
"passWithNoTests": false,
"bail": true,
"testPathPatterns": ["packages/server/api/test/integration/ce"]
}
},
"test-cloud-command": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "packages/server/api/jest.config.ts",
"passWithNoTests": false,
"bail": true,
"testPathPatterns": ["packages/server/api/test/integration/cloud"]
}
},
"test-ee-command": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "packages/server/api/jest.config.ts",
"passWithNoTests": false,
"bail": true,
"testPathPatterns": ["packages/server/api/test/integration/ee"]
}
},
"test-ee": {
"executor": "nx:run-commands",
"options": {
"commands": [
"export $(cat packages/server/api/.env.tests | xargs) && NODE_OPTIONS='--experimental-vm-modules' AP_EDITION=ee nx test-ee-command server-api --output-style stream-without-prefixes"
],
"parallel": false
}
},
"test-ce": {
"executor": "nx:run-commands",
"options": {
"commands": [
"nx build server-api",
"export $(cat packages/server/api/.env.tests | xargs) && NODE_OPTIONS='--experimental-vm-modules' AP_EDITION=ce nx test-ce-command server-api --output-style stream-without-prefixes"
],
"parallel": false
}
},
"test-cloud": {
"executor": "nx:run-commands",
"options": {
"commands": [
"nx build server-api",
"export $(cat packages/server/api/.env.tests | xargs) && NODE_OPTIONS='--experimental-vm-modules' AP_EDITION=cloud nx test-cloud-command server-api --output-style stream-without-prefixes"
],
"parallel": false
}
},
"test": {
"executor": "nx:run-commands",
"options": {
"commands": [
"nx test-ee server-api",
"nx test-ce server-api",
"nx test-cloud server-api"
],
"parallel": true
}
},
"test:docker": {
"command": "UID=\"$(id -u)\" GID=\"$(id -g)\" docker compose --profile full -f docker-compose.test.yml up --exit-code-from app --attach app"
},
"db": {
"executor": "nx:run-commands",
"options": {
"command": "ts-node -r tsconfig-paths/register -P packages/server/api/tsconfig.app.json ./node_modules/typeorm/cli.js"
}
},
"db-migration": {
"executor": "nx:run-commands",
"options": {
"command": "nx db server-api -- migration:generate -p -d packages/server/api/src/app/database/migration-data-source.ts packages/server/api/src/app/database/migration/postgres/{args.name} {args.flags}"
}
},
"check-migrations": {
"executor": "nx:run-commands",
"options": {
"commands": [
"echo '🔍 Checking for schema changes without migrations...'",
"export $(cat packages/server/api/.env.tests | xargs) && export AP_DEV_PIECES='' && export AP_ENVIRONMENT=dev && AP_EDITION=ce && nx db server-api -- migration:run -d packages/server/api/src/app/database/migration-data-source.ts > /dev/null 2>&1",
"echo 'Checking for schema drift...'",
"export $(cat packages/server/api/.env.tests | xargs) && export AP_DEV_PIECES='' && export AP_ENVIRONMENT=dev && AP_EDITION=ce && nx db-migration server-api --flags='--dryrun --check' || (echo '' && echo '❌ ERROR: Schema changes detected without corresponding migration!' && echo '' && echo 'The PR contains database schema changes without corresponding migration.' && echo 'Please generate a migration using:' && echo ' nx db-migration server-api --name=<DESCRIPTIVE_NAME>' && echo '' && echo 'For more information, see: docs/handbook/engineering/playbooks/database-migration.mdx' && echo '' && exit 1)",
"echo '✅ No missing migrations detected'"
],
"parallel": false
}
}
}
}