Commit Graph
911 Commits
Author SHA1 Message Date
Saurabh KumarandGitHub f13528a403 [SILO-1017] fix: get app installation for new apps + assets scope (#6046) 2026-02-25 15:42:54 +05:30
sriram veeraghantaandGitHub b76b404bc7 [WEB-6424] refactor: update workspace base model name (#6040)
* refactor: update workspace base model name

* fix: model str update by removing project name
2026-02-25 14:22:58 +05:30
4891f9d42c [SILO-1013] Add validation for reserved "triage" state name and fix duplicate state check (#6031)
* fix: prevent AttributeError when creating state with reserved 'Triage' name

Reject state creation requests with the name "Triage" early since it's
a reserved state name for the intake system. Also add a None guard in the
IntegrityError handler to prevent crashes when the conflicting state
can't be found via the default manager.

https://claude.ai/code/session_017zjpP6MvrU4oWcTQnmoMjH

* refactor: move Triage name validation to serializers for consistent enforcement

Move the reserved "Triage" name check from the view-level POST handler
into both StateSerializer classes (API and App) as a validate_name method.
This ensures the validation applies consistently to both create (POST)
and update (PATCH) flows, preventing clients from renaming existing
states to "Triage".

https://claude.ai/code/session_017zjpP6MvrU4oWcTQnmoMjH

---------

Co-authored-by: Claude <[email protected]>
2026-02-24 18:26:23 +05:30
sriram veeraghantaandGitHub 8c295d51ea [WEB-6288] optimize: base model save method to handle created_by_id #5883 2026-02-24 18:19:15 +05:30
Bavisetti NarayanandGitHub 41ecadafb5 [SILO-997] fix: Workflow state transition check bug in external API (#5983) 2026-02-24 17:56:52 +05:30
sriram veeraghantaandGitHub fb165a1737 [WEB-6287] fix: handle cycle archive endpoint 500 error #6026 2026-02-24 17:15:02 +05:30
SangeethaandGitHub f380f93b7b [WEB-6401] fix: added archived_at filter in EpicViewSet (#6032)
* fix: added archived_at filter

* fix: use IssueAndEpicsManager
2026-02-24 15:26:53 +05:30
sriram veeraghantaandGitHub b1489ee7f5 [WEB-6311] fix: handle 404 request from initiative get #6023 2026-02-24 15:00:25 +05:30
Jayash TripathyandGitHub 0cfbe94823 [WEB-5483] fix: update order clause in grouped chart response (#6020)
* [WEB-5483] fix: update order clause in grouped chart response for widget graph plot

Modified the order clause in the build_grouped_chart_response function to dynamically set the ordering based on the id_field. This change allows for more flexible data sorting in non-estimate charts, improving the accuracy of the grouped chart response.

* fix: reverted mistakenly removed comment
2026-02-24 13:44:37 +05:30
NikhilandGitHub 56bf40bcb9 [WEB-6389]: add support for custom name id format and custom attribute values (#6003) 2026-02-23 16:44:28 +05:30
pratapalakshmiandGitHub de5cb306d1 [INFRA-316] chore: access s3 services using irsa (#6005) 2026-02-23 16:02:00 +05:30
Saurabh KumarandGitHub 2198021f85 [SILO-1008] fix: add default scopes to internal apps#6006 2026-02-23 15:37:24 +05:30
pratapalakshmiandGitHub acc7959d76 [INFRA-315] fix: enhance S3 client initialization in create_bucket command (#6002)
* fix: enhance S3 client initialization in create_bucket command

Updated the S3 client initialization logic in the create_bucket management command to support both direct AWS credentials and IRSA (IAM Role for Service Account) paths. This change improves flexibility in how the application connects to S3, allowing for better integration with different deployment environments.

* Revert "fix: enhance S3 client initialization in create_bucket command"

This reverts commit 9726800d7c8358ebb496ec88d21a92de135a14c4.

* fix: improve S3 client initialization logic in storage settings

Refactored the S3 client initialization in the S3Storage class to handle cases where AWS credentials may not be provided. This change allows the application to create an S3 client using only the region and endpoint URL, enhancing flexibility for different deployment environments.
2026-02-23 14:13:04 +05:30
Akhil Vamshi KonamandGitHub c845b18adf [PAI-1269] chore: rename pi to ai in UI (#5991) 2026-02-23 13:59:36 +05:30
07e2316dcb [SILO-990] feat: runner - system functions, node runner tests, and editor enhancements (#5989)
* Add vitest test suite for runInIsolate in node-runner

Adds 9 tests covering AutomationEventInput data flow, PlaneClient
injection, Functions library, execution timeout, domain-restricted
fetch, ENV exposure, and missing-main error handling.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Add TypeScript parsing support and replace console with structured logger

- Use acorn-typescript plugin for AST-based code validation and function
  detection so user scripts can include TypeScript syntax
- Build user code as index.ts instead of index.js via esbuild
- Replace all console.log/error/warn calls with @plane/logger
- Add logger middleware to Express server
- Add dd-trace initialization via tracer module

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: split tsconfig into build and base configs for test compatibility

Move rootDir/outDir into tsconfig.build.json so the base tsconfig.json
can include tests/**/* for ESLint and IDE support without breaking tsc.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* remove environment variables from scripts

* update tsconfig for tests

* fix bug in scripts UI to render code properly

* add 6 system functions and inject Plane/workspaceSlug into function factory

Expand buildFunctionsLibrary to pass Plane client and workspaceSlug into
the function factory so system functions can call the Plane SDK. Populate
the system_functions fixture with httpRequest, postToSlack, getChildren,
getSiblings, addComment, and addLabel.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: add created_at/updated_at to system functions fixture

Django's auto_now_add/auto_now fields are not auto-populated when
loading fixtures via loaddata, causing a NOT NULL constraint violation.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* add parent_id filter and use advancedSearch in system functions

Add parent_id filter to ExtendedIssueFilterSet so work items can be
queried by parent. Update getChildren and getSiblings system functions
to use Plane.workItems.advancedSearch with parent_id filter instead of
the list endpoint which does not support parent filtering.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Revert "feat: add pagination support to WorkItemAdvancedSearchEndpoint"

This reverts commit 9820a1d16e571c14539c7a7139aa269df9baece4.

* add system script: mark parent as done if all children are done

Populates system_scripts fixture with a script that triggers when a
work item enters a completed state group, checks all siblings, and
updates the parent to completed if every child is done.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* Add script - Create linked work item in another project on state change

* fix: form data + title width

* fix: implemented full screen editor + handled is_system

* fix: handled is_system

* disable error highlighting in code editor

* feat: add redirect url support for runner

- add is_internal to all the internal plane apps

* invalidate app credentials in cache when app got updated

* fix: pass workspace context for system script execution in automations

System scripts have workspace=None, so accessing script.workspace.id
would fail. Now the automation passes its own workspace_id/workspace_slug
and script_executor falls back to caller-provided values.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* refactor: extract shared TypeScript parser into ts-parser module

Move duplicated acorn + tsPlugin initialization from code-validator.ts
and server.ts into a single shared ts-parser.ts module.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* fix: type errors for acorn node

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: gakshita <[email protected]>
2026-02-21 17:39:52 +05:30
21335c2151 [WEB-6375] perf: optimize issue relation endpoints from N+1 queries to single aggregate queries (#5978)
* perf: optimize IssueRelationViewSet from ~22 queries to 2

Replace 12 separate IssueRelation filter queries with a single
aggregate query using ArrayAgg, and 10 separate Issue queries with
a single query. Remove dead subquery annotations (cycle_id,
link_count, attachment_count, sub_issues_count) and unnecessary
select_related/prefetch_related. Fix N+1 queries in create and
remove_relation by adding select_related for serializer access.
Add null check in remove_relation to prevent crash on missing relation.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

* perf: optimize external API issue relation endpoints

Apply the same query optimizations from the internal API to the external
API endpoints: replace select_related + Python loop with a single
aggregate query in GET, fix N+1 queries in POST create by re-fetching
with select_related, and add null safety to POST remove.

Co-Authored-By: Claude Opus 4.6 <[email protected]>

---------

Co-authored-by: Claude Opus 4.6 <[email protected]>
2026-02-20 15:55:42 +05:30
sriram veeraghantaandGitHub be03168db2 [SECUR-105] fix: csv injection vulnerability sanitization (#5726)
* fix: csv inject sanitization

* fix: copoilt  comments
2026-02-20 15:49:59 +05:30
sriram veeraghantaandGitHub fe67e3d515 [WEB-6290] fix: add validation to milestone title (#5888)
* fix: add validation to milestone title

* chore: update external endpoints with mixin

* fix: validate milestone

* fix: lint

* fix: lint
2026-02-20 15:39:48 +05:30
sriram veeraghantaandGitHub 56e2078e6a [WEB-6322] fix: crawl urls safely without exceptions #5936 2026-02-20 14:53:03 +05:30
sriram veeraghantaandGitHub 22c11fffa4 [WEB-6317] fix: validate the auth header bearer token #5908 2026-02-20 14:45:32 +05:30
Saurabh KumarandGitHub 01e7ac36d6 [SILO-993] chore: add scopes for agent run APIs (#5972) 2026-02-20 13:56:56 +05:30
sriramveeraghanta 6dc1395a28 fix: workspace member 404 handling 2026-02-19 17:31:06 +05:30
sriram veeraghantaandGitHub 3ae8cd254a feat: migration changes in intake email, issue relations, project templates and formula field (#5952)
* feat: add migrations on db and ee

* chore: remove runner migration

* chore: adding trackable link to intake

* chore: update the cascad delete
2026-02-19 14:11:13 +05:30
5498a372a1 [WEB-5970]: OIDC group syncing (#5522)
* feat: implement group sync functionality for OIDC authentication

- Added GroupSyncConfig and GroupMapping models for managing group sync settings and mappings.
- Introduced GroupSyncService to handle user project membership synchronization based on IdP groups.
- Created endpoints for managing group sync configurations and mappings.
- Updated OIDC authentication flow to trigger group sync on user login.
- Enhanced URL routing to include group sync related endpoints.
- Implemented serializers for group sync models to facilitate API interactions.
- Added utility functions for processing group sync during authentication.

This feature enables seamless integration of group-based access control for users authenticated via OIDC, enhancing the overall user management experience.

* refactor: implement IdP group sync feature for automatic project membership management

- Removed GroupMappingDetailEndpoint and updated related URLs to consolidate group mapping management under GroupMappingEndpoint.
- Enhanced GroupSyncService to automatically add users to workspaces and projects based on IdP group claims during login.
- Updated serializers and views to support new group sync functionality.
- Added comprehensive documentation for IdP group syncing, detailing configuration and behavior.
- Introduced a new source field in ProjectMember to track membership origin (manual, group sync).
- Adjusted migrations to reflect changes in project member source tracking.

* feat: enhance group synchronization logic to handle membership removal and activation

- Added logic to remove memberships for users with no matching groups if auto-remove is enabled.
- Implemented activation of existing project memberships when a user is re-added.
- Introduced workspace synchronization task to ensure membership consistency across projects.
- Updated ProjectMember model to prevent duplicate user properties during project member creation.

* feat: add offline group synchronization task for IdP integration

- Introduced a new periodic task to sync OIDC groups for enabled workspaces every 6 hours.
- Added `sync_offline` field to `GroupSyncConfig` model to control offline synchronization.
- Enhanced OIDC group provider to handle expired and invalid refresh tokens.
- Updated serializers and migrations to support new functionality.
- Configured rate limiting for IdP API calls to prevent hitting rate limits during synchronization.

* feat: added group syncing feature in workspace

* chore: add licensing information to group_sync_task.py

* refactor: sdded navigation logic to redirect users if group syncing feature is disabled.

* feat: add group syncing translations for multiple languages

* fix: added empty state group syncing icon

* refactor: update group syncing types and component imports

* refactor: used clientLoader to redirect users based on IDP_GROUP_SYNC availability.

* fix: changed data observables to private

* refactor: rename type for delete mapping modal props for consistency

* refactor: use feature flag handling in group syncing clientLoader

* chore: regenerate migrations

* fix: remove celery debugger

* chore: remake migrations

* chore: remove unused imports

---------

Co-authored-by: b-saikrishnakanth <[email protected]>
2026-02-18 17:19:11 +05:30
sriram veeraghantaandGitHub 67662b9fde fix: update the missing package from cloud (#5934) 2026-02-18 00:15:51 +05:30
sriram veeraghantaandGitHub c30aa8db7c [WEB-6263] fix: skip issues without state in entity issue state activity task#5877 2026-02-17 20:48:06 +05:30
a804cb0f30 [SILO-840] feat: added import summary for jira and jira cloud importer (#5452)
* feat: added summary types for summary collector

* feat: added summary collector service

* feat: added execution logs for both jira and jira server importer

* feat: log structure change for the execution_log

* fix: summary total elements

* fix: dashboard to show and hide the summary column based on requirement

* feat: modified data import task to collected execution summary

* feat: self review and formatting

* feat: self review and formatting

* feat: formatting issue

* feat: added summary generator background task

* feat: handled renaming of entities

* feat: handled summary handling in frontend

* feat: added summary trigger api view

* fix: changed with execution log service

* chore: formatting changes

* chore: license header check

* fix: connection helper structure

* feat: added execution_logs removal after summary is generated

* chore: fix testing change

* fix: added catch statement for execution log

* fix: import summary migration from created to imported

* fix: fields in data import task

* fix: added job_id for the execution log

* fix: added excluded fields in summary generator

* fix: formatting issues

* fix: report deletion from job

* fix: added more ignored fields and worklog pull

* feat: added feature flags and fix summary behaviour

* feat: added translations for file

* chore: formatting changes

* removed unused ts-error

* fix: added import summary feature flag to data import task

* fix: omit circular dependency array by only returning response data

* fix: data_import_task to deal with all execution log in one function

* fix: added guard for execution log collection

* fix: eslint issues with sdk package

* feat: api formatting errors

* chore:formatting changes

---------

Co-authored-by: sriram veeraghanta <[email protected]>
2026-02-17 15:46:55 +05:30
8d02bbd67d [SILO-954] feat: add external API endpoints for work items with custom properties (#5878)
* feat: add pagination support to WorkItemAdvancedSearchEndpoint

- Replace limit-based slicing with BasePaginator's paginate() method
- Add cursor and per_page query parameters for pagination control
- Update OpenAPI schema with pagination parameters and response format
- Remove limit field from request serializer (now handled via query params)
- Response now includes total_count, next_cursor, prev_cursor, etc.

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* feat: add consolidated work item properties endpoint

Add new API endpoint GET/PATCH /workspaces/{slug}/projects/{project_id}/work-items/{pk}/properties/
that returns a work item with all default fields AND custom properties in a single response.

- Custom properties are included as custom_field_<name> keys with metadata and values
- Supports PATCH to update both standard fields and custom properties
- Custom properties only included when ISSUE_TYPES feature flag is enabled
- Option values accept both UUID and name (case-insensitive)
- Uses bulk operations for efficient property value updates

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* feat: add work item type schema endpoint

Add new endpoint to retrieve schema for work item types including
standard fields and custom properties with their available options.

- GET /workspaces/{slug}/projects/{project_id}/work-item-types/schema/
- Optional type_id query param to get schema for specific type
- Optional include=members,labels query param for large option sets
- Returns standard fields always, custom fields when type exists
- Handles projects with and without work item types enabled

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* feat: add work item create endpoint with custom field support

Adds a new POST endpoint for creating work items that supports:
- Standard fields (name, state, priority, assignees, labels, dates)
- Custom property fields using the custom_field_{name} format
- Validation for type_id requirement when work item types are enabled
- Detailed validation errors for all custom field types

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* test: add contract tests for work item endpoints

Adds comprehensive contract tests for:
- WorkItemPropertiesAPIEndpoint (GET/PATCH)
- WorkItemTypeSchemaAPIEndpoint (GET)
- WorkItemCreateAPIEndpoint (POST)

Tests cover:
- Standard field operations
- Custom property CRUD operations
- Feature flag behavior (enabled/disabled)
- Validation error scenarios
- Option fields by ID and name
- Required field validation

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* refactor: use standalone serializer with explicit _id field names

- Replace IssueDetailSerializer inheritance with ModelSerializer
- Explicitly define all FK fields with _id suffix for consistency
- Add assignee_ids and label_ids as computed fields
- Fix UUID comparison issues in contract tests

This ensures consistent field naming across GET/PATCH/POST responses
(state_id, workspace_id, project_id instead of state, workspace, project)

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* docs: add OpenAPI decorators for work item endpoints

Adds drf-spectacular @extend_schema decorators to:
- WorkItemPropertiesAPIEndpoint (GET/PATCH)
- WorkItemTypeSchemaAPIEndpoint (GET)
- WorkItemCreateAPIEndpoint (POST)

Includes operation IDs, summaries, descriptions, parameters,
request/response schemas, and examples for API documentation.

Co-Authored-By: Claude Opus 4.5 <[email protected]>

* formatting and lint changes

---------

Co-authored-by: Claude Opus 4.5 <[email protected]>
2026-02-17 15:43:11 +05:30
a46d0b1b8a [WEB-6262] fix: handle RabbitMQ connection loss in event stream publisher (#5876)
* fix: streamlost error on pika publisher

* Update apps/api/plane/event_stream/publisher.py

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
2026-02-17 15:41:16 +05:30
SangeethaandGitHub 7373b90cec [WEB-6194] migration: added archive_at field (#5788)
* migration: archived_at field in Initiative, Customer, CustomerRequest

* chore: added archive_at in Dashboard, Mileston, IssueView
2026-02-17 15:39:16 +05:30
Saurabh KumarandGitHub 05380a8709 [SILO-789] feat: Custom OAuth scopes support in Apps (#5352)
* add resource permissions field in app

* scope selection UI in app create form

* migration oauth + custom scope poc

* add oauth scopes to external apis

* migration oauth + scope in oauth page

* UI changes for scope selection in form and view in consent screen

* update oauth scopes to be more granular

* update oauth scopes UI + translations

* add oauth scopes to wi search endpoint

* remove translations extended files

* translations + collapsible changes

* fix UI issues

* add milestones oauth scopes

* update migration + code structure changes

* new scopes and viewset structural changes

* format fix + add file license

* format fix + add file license

* app connection type not updating

* fix all oauth scopes dictionary

* fix lint and format errors
2026-02-17 15:29:45 +05:30
SangeethaandGitHub f7cb332866 [WEB-6203]fix: remove featureflag for workspace api token (#5912) 2026-02-17 15:29:15 +05:30
e17ebb90d9 [WEB-6083] feat: archive epics (#5682)
* feat: archive epics

* archive epics

* fix: filters fixed in  archived epics

* fix: add type filter

* chore: remove type__isnull filter

* fix: include project archive pages in project layout

* chore: create epic manager

* fix: format changes

* fix: simplify string handling in components

* Revert "chore: create epic manager"

This reverts commit e5f9ef8b3934b34d0b8db94cd562adba0b318ab1.

* refactor: removing useParams for cleaner code

* fix: correct import path for Route type in ProjectArchivedIssueDetailLayout

* fix: routed archived epic detail to browse pages

---------

Co-authored-by: b-saikrishnakanth <[email protected]>
2026-02-17 14:44:24 +05:30
8a98394ae0 [SILO-820] fix: update serializer for module detail API endpoint to use ModuleUpdateSerializer (#5347)
Co-authored-by: sriramveeraghanta <[email protected]>
2026-02-17 13:38:11 +05:30
sriramveeraghanta 6de38b307f fix: strawberry graphql version 2026-02-17 13:30:51 +05:30
SangeethaandGitHub 4162fd4b83 [WEB-5968] feat: initiative scope rich filters (#5538) 2026-02-16 15:48:23 +05:30
sriram veeraghanta 37adfed9a7 fix: celery import 2026-02-14 15:53:02 +05:30
SangeethaandGitHub 4ae3aff2e2 [GIT-61] chore: allow .md files to be uploaded #5823 2026-02-13 16:10:03 +05:30
SangeethaandGitHub f6a9e91b04 [GIT-85] fix: group by labels shows deleted labels #5836 2026-02-13 13:52:09 +05:30
sriram veeraghantaandGitHub 1bad42ef84 fix: comment edit and delete permission (#5859) 2026-02-13 02:06:37 +05:30
38dc3a3c0a chore: log request/response body for OAuth token endpoint 400 errors #5858
Adds redacted request payload and response body logging to
RequestLoggerMiddleware when /auth/o/token/ returns 400, making it
easier to debug OAuth token failures.

Co-authored-by: Claude Opus 4.6 <[email protected]>
2026-02-12 20:53:39 +05:30
gurusinathandsriram veeraghanta 8fc1c04b88 dev: lint checks 2026-02-12 17:17:28 +05:30
guru_sainathandsriram veeraghanta 334af4d325 [MOB-1412] fix: resolved intake create mutation failure by handling default project and triage stage setup (#5832)
* fix: removed the in_app validation and handled the triage state when we create the intake

* dev: handled the triage state in intake create mutation

* dev: added triage state in seed

* dev: replaced workspace_slug with workspace_id in intake setting get or create

* dev: created triage state class method and replaced the instances

* dev: updated the class method

* dev: handled the intake issue
2026-02-12 17:17:28 +05:30
6aeeb5a1e7 [SILO-823] feat: introducing plane runner (#5545)
* 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]>
2026-02-12 17:14:47 +05:30
sriram veeraghantaandGitHub fca1d11b68 [WEB-6131] fix: update is_multi_tenent flag with is_self_managed check (#5594)
* fix: adding is_self_managed check

* fix: repalce is_multi_tenent with is_self_managed flag
2026-02-12 16:16:50 +05:30
sriram veeraghantaandGitHub d7db922eb1 [WEB-6225] refactor: Move Link Crawler Trigger to Model Layer (#5819)
* feat: optimize link crawler method

* chore: remove unused file

* chore: updated docs

* refactor link crawler to model save method from views

* fix: lint
2026-02-12 15:01:35 +05:30
sriram veeraghantaandGitHub 845afbc3d3 [WEB-6228] fix: Key Error on Project Subscriber #5821 2026-02-11 17:18:32 +05:30
SangeethaandGitHub 796d7d3c53 [PAI-1237] fix: external project endpoint to create intake and issue type (#5744) 2026-02-11 16:22:06 +05:30
SangeethaandGitHub 131b69565e [WEB-5874]feat: group by epics in work items (#5393) 2026-02-11 16:18:24 +05:30
SangeethaandGitHub 8e99ae87c2 [WEB-6220] fix: copied work item attachment download #5818 2026-02-11 16:12:41 +05:30