* feat: introducing plane runner - Add a new runnerctl app in API to orchestrate and manage runs. - Models to store and process RunnerTask and RunnerTaskExecutions - APIs for both web and inter service communication - Add a new app `node-runner` to run the node code in vm - Setup sandboxing using node vm to build and run the code - Talks to runnerctl through APIs to fetch and report the task run status * feat: settings page with editor * fix: typo * feat: add list, create and update script screens - update APIs to use Session Auth - fix issues in node runner * add test run modal * add delete button for task * fix: refactor * feat: use Script as main entity in Plane runner - all features would have to use Script's as their action use cases instead of Runner manager all of them * chore: implemented scripts in automations * add migrations * feat: add test endpoints to build and run the code - add /test endpoint in runnerctl service - add /execute-sync endpoint in node-runner to run code in sync * fix: refactor * fix: refactor + UI improvements * fix: refactor * feat: add RunScript node in automation actions * fix: cancel fn * refactor: use execute-sync endpoint for all executions - remove async code for executing code - remove runnerctl service related code from node-runner * fix: UI for automation script main layout + refactoring * chore: add execution stats in scripts listing endpoint * fix: route changed from /runners to /scripts * fix: added relative last run * fix: editor bg * fix: test payload * Merge branch 'preview' of github.com:makeplane/plane-ee into feat-plane-runner-ui * feat: setup runner app migration * feat: use oauth tokens to run scripts * fix: refactor * fix: types * chore: use workspaceSlug from execution context in runner - use cached oauth tokens instead of generating new tokens all the time * feat: only show scripts in sidebar and automations when installed - now we'll enable Scripts as feature only when the oauth app is installed * fix: refactor * fix: refactor * fix: refactor * fix: refactor * fix: formatting * fix: added direct import for types to handle self hosted and airgapped instances * add variables support * add support for variables in node-runner * Add fresh migrations for runnerctl * add copyright on all runner files * add variables UI for runner scripts and automations - Add TVariableDefinition type and variables field to RunnerScript type - Add TVariableFormData and variables to RunnerScriptFormData - Add execution_variables to TRunScriptActionConfig for automations - Create VariablesField component for script form (collapsible, save/remove) - Update scriptToFormData and formDataToScriptPayload to handle variables - Update TestScript component to show variable input fields and send execution_variables - Update AutomationActionRunScriptConfiguration to show variable inputs when script selected - Update runnerctl.service.ts to pass execution_variables in testScript - Update Python API serializers to include variables in script list/lite responses - Update script_test view to pass execution_variables to execute_sync Co-Authored-By: Claude Opus 4.5 <[email protected]> * add reusable functions feature for runner scripts - Add ScriptFunction model with system/workspace function support - Add API endpoints for functions CRUD operations - Add system function seeds (http, notifications, data, utils) - Add Functions namespace injection into node-runner VM context - Add functions dashboard with search, filter, and view modal - Add function browser modal for inserting functions into scripts - Add create/update function form with auto-generated code templates - Add function name mismatch warning in code editor Co-Authored-By: Claude Opus 4.5 <[email protected]> * build code and use build to run instead of building with every run * refactor: update build api to extract functions from code - only send used functions to runner for execution - test api will also now validate the code and functions used * add execution variables in automation and ui changes * add fixtures for scripts and functions for system defined ones * use threadpool to fetch token with new connection * ui style changes for functions * fix linter issues * add PLANE_RUNNER feature flag and rename settings tab * move ee components to core * add runner urls in settings and reset migrations * fix: refactoring + css fixes * add node-runner build in github workflow * replace node-runner Dockerfile with turbo-based Dockerfile.runner - Remove old Dockerfile and docker-compose.yml - Add Dockerfile.runner using turbo prune pattern (like silo) - Update build-branch-cloud.yml to use Dockerfile.runner Co-Authored-By: Claude Opus 4.5 <[email protected]> * fix: refactor + route fixed * fix: changed folder name from scripts to runner-scripts * fix: monaco editor theme based color * fix: empty state and upgrade screen without img * chore: add code validators while executing code - reset fixtures for scripts and functions to empty * fix: empty state + upgrade * fix: empty state + upgrade * fix: empty state assets * fix: empty state assets * feat: add AutomationEventInput for better DX writing scripts * fix: types + formatting * fix: types + formatting * fix: formatting * fix: bumped @vitest/eslint-plugin * fix: api formatting changes --------- Co-authored-by: Surya Prashanth <[email protected]> Co-authored-by: Claude Opus 4.5 <[email protected]>
112 lines
3.8 KiB
JSON
112 lines
3.8 KiB
JSON
{
|
|
"name": "web",
|
|
"version": "1.2.0",
|
|
"private": true,
|
|
"license": "AGPL-3.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "react-router dev --port 3000",
|
|
"build": "react-router build",
|
|
"preview": "react-router build && serve -s build/client -l 3000",
|
|
"start": "serve -s build/client -l 3000",
|
|
"clean": "rm -rf .turbo && rm -rf .next && rm -rf .react-router && rm -rf node_modules && rm -rf dist && rm -rf build",
|
|
"check:lint": "eslint . --cache --cache-location node_modules/.cache/eslint/ --max-warnings=14367",
|
|
"check:types": "react-router typegen && tsc --noEmit",
|
|
"check:format": "prettier . --cache --check",
|
|
"fix:lint": "eslint . --cache --cache-location node_modules/.cache/eslint/ --fix --max-warnings=14367",
|
|
"fix:format": "prettier . --cache --write"
|
|
},
|
|
"dependencies": {
|
|
"@atlaskit/pragmatic-drag-and-drop": "catalog:",
|
|
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "catalog:",
|
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "catalog:",
|
|
"@blueprintjs/popover2": "^1.13.3",
|
|
"@bprogress/core": "catalog:",
|
|
"@dotenvx/dotenvx": "^1.47.6",
|
|
"@flatfile/api": "^1.12.0",
|
|
"@flatfile/hooks": "^1.6.0",
|
|
"@flatfile/react": "^7.13.4",
|
|
"@fontsource-variable/inter": "5.2.8",
|
|
"@fontsource/ibm-plex-mono": "5.2.7",
|
|
"@fontsource/material-symbols-rounded": "5.2.30",
|
|
"@headlessui/react": "^1.7.19",
|
|
"@makeplane/plane-node-sdk": "^0.2.6",
|
|
"@plane/constants": "workspace:*",
|
|
"@plane/editor": "workspace:*",
|
|
"@plane/etl": "workspace:*",
|
|
"@plane/hooks": "workspace:*",
|
|
"@plane/i18n": "workspace:*",
|
|
"@plane/propel": "workspace:*",
|
|
"@plane/sdk": "workspace:*",
|
|
"@plane/services": "workspace:*",
|
|
"@plane/shared-state": "workspace:*",
|
|
"@plane/types": "workspace:*",
|
|
"@plane/ui": "workspace:*",
|
|
"@plane/utils": "workspace:*",
|
|
"@popperjs/core": "^2.11.8",
|
|
"@react-router/node": "catalog:",
|
|
"@sentry/react-router": "catalog:",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@todesktop/client-core": "^1.12.4",
|
|
"axios": "catalog:",
|
|
"clsx": "^2.0.0",
|
|
"cmdk": "^1.0.0",
|
|
"comlink": "^4.4.1",
|
|
"date-fns": "^4.1.0",
|
|
"emoji-picker-react": "^4.5.16",
|
|
"export-to-csv": "^1.4.0",
|
|
"fuse.js": "^7.0.0",
|
|
"isbot": "^5.1.31",
|
|
"lodash-es": "catalog:",
|
|
"lucide-react": "catalog:",
|
|
"markdown-to-jsx": "^7.5.0",
|
|
"mobx": "catalog:",
|
|
"mobx-react": "catalog:",
|
|
"mobx-utils": "catalog:",
|
|
"next-themes": "0.4.6",
|
|
"pako": "^2.1.0",
|
|
"papaparse": "^5.4.1",
|
|
"posthog-js": "1.290.0",
|
|
"react": "catalog:",
|
|
"react-color": "^2.19.3",
|
|
"react-dom": "catalog:",
|
|
"react-dropzone": "^14.2.3",
|
|
"react-fast-compare": "^3.2.2",
|
|
"react-grid-layout": "^1.5.0",
|
|
"react-hook-form": "7.51.5",
|
|
"react-is": "^18.2.0",
|
|
"react-markdown": "^9.0.0",
|
|
"react-masonry-component": "^6.3.0",
|
|
"react-popper": "^2.3.0",
|
|
"react-resizable": "^3.0.5",
|
|
"react-router": "catalog:",
|
|
"recharts": "^2.12.7",
|
|
"remark-gfm": "^4.0.1",
|
|
"serve": "14.2.5",
|
|
"smooth-scroll-into-view-if-needed": "^2.0.2",
|
|
"socket.io-client": "^4.8.1",
|
|
"swr": "catalog:",
|
|
"use-font-face-observer": "^1.2.2",
|
|
"uuid": "catalog:"
|
|
},
|
|
"devDependencies": {
|
|
"@dotenvx/dotenvx": "catalog:",
|
|
"@plane/tailwind-config": "workspace:*",
|
|
"@plane/typescript-config": "workspace:*",
|
|
"@react-router/dev": "catalog:",
|
|
"@sentry/vite-plugin": "catalog:",
|
|
"@tailwindcss/typography": "0.5.19",
|
|
"@types/lodash-es": "catalog:",
|
|
"@types/node": "catalog:",
|
|
"@types/papaparse": "^5.3.14",
|
|
"@types/react": "catalog:",
|
|
"@types/react-color": "^3.0.6",
|
|
"@types/react-dom": "catalog:",
|
|
"@types/react-grid-layout": "^1.3.5",
|
|
"@vercel/react-router": "^1.2.3",
|
|
"typescript": "catalog:",
|
|
"vite": "catalog:",
|
|
"vite-tsconfig-paths": "^5.1.4"
|
|
}
|
|
}
|