Files
plane/apps/api/Dockerfile.dev
T
+16 34b67c5acf release: v2.5.0 (#6193)
* fix: vulnerable packages

* feat(silo): integrate AWS Secrets Manager for AMQP and Redis (#6116)

* feat(silo): integrate AWS Secrets Manager for AMQP and Redis configuration

- Added support for AWS Secrets Manager to fetch credentials for AmazonMQ and ElastiCache.
- Updated environment variables in `.env.example` and `env.ts` to include optional AWS-related keys.
- Introduced `aws-secrets.ts` to handle secret retrieval and caching.
- Modified `mq.ts` and `store.ts` to resolve AMQP and Redis URLs using secrets when applicable.

This enhancement improves security by allowing sensitive information to be managed through AWS Secrets Manager.

* refactor(silo): move AWS Secrets Manager resolution to env layer

Move AMQP/Redis URL resolution from mq.ts and store.ts into env.ts so
core connection files remain untouched. Secrets are resolved once at
startup via resolveSecrets() and refreshed on a background interval
based on AWS_SECRET_CACHE_TTL.

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

* feat(silo): support EKS Pod Identity for AWS Secrets Manager

Add AWS_CONTAINER_CREDENTIALS_FULL_URI as an alternative to AWS_ROLE_ARN
(IRSA) for authenticating with AWS Secrets Manager. This supports both
IRSA and EKS Pod Identity, matching the approach used in api and live.

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

---------

Co-authored-by: Pratapa Lakshmi <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: sriram veeraghanta <[email protected]>

* [WEB-5929] feat: auto-cleanup orphaned property values on issue type change (#5451)

* fix(api): quote sensitive credentials in Redis and AMQP URL configurations (#6126)

* fix(api): quote sensitive credentials in Redis and AMQP URL configurations

- Updated the common.py settings to use `quote` for encoding sensitive information such as Redis and AMQP credentials.
- This change enhances security by ensuring that special characters in credentials are properly encoded, preventing potential issues during connection establishment.

* fix(silo): encode RabbitMQ vhost in AMQP URL configuration

- Updated the vhost encoding in the AMQP URL construction to use `encodeURIComponent` for proper handling of special characters.
This change enhances the security and reliability of the connection string by ensuring that the vhost is correctly formatted.

* fix: Added new CI to get SBOM from docker images (#6021)

* fix: update Cloud CI to upload SBOM SPDX json

* fix: copilot comments

* feat: added new sbom generate ci

* [WEB-6417] feat: releases models (#6039)

* feat: releases models

* fix: models improvements

* fix: regenerate releases migration

* fix: update deleted_at contraint

* fix: check workspace owner if active (#6127)

* [WEB-6211] fix: worklog date filter bg task error #6036

* fix(editor): add missing @chevrotain/regexp-to-ast dependency (#6134)

* fix(editor): add missing @chevrotain/regexp-to-ast dependency

langium (mermaid → @mermaid-js/parser → langium) imports
@chevrotain/regexp-to-ast directly but doesn't declare it as a
dependency. Under pnpm's strict node_modules layout the bare import
fails during both Vite dev and production builds.

Adding it as a direct dependency of @plane/editor ensures it's
available in langium's resolve scope.

* ci: include lockfile hash in Turbo cache key to prevent stale hits

When pnpm-lock.yaml changes (e.g. new dependency added), the old Turbo
cache could still match via restore-keys fallback, causing CI to skip
rebuilding affected packages and miss build errors.

Adding hashFiles('pnpm-lock.yaml') to the cache key ensures dependency
changes invalidate the Turbo cache.

* [SILO-1045] fix: issue extractor bugs with jira cloud (#6130)

* [SILO-1042] [PAI-1277] fix: add missing patch scope in sticky api#6129

* [WEB-6486] feat: migrate Avatar & AvatarGroup from @plane/ui to @plane/propel (#6081)

* [WEB-5452] fix: intake form translations #6104

* [MOB-958] feat: Updated join project mutation and added archived_at support in WorkItem, Epic, and Intake (#6010)

* dev: updated the browse query and also created the query that project is public or not

* dev: handled the project detail archive validation

* dev: fixed the join project issue

* dev: handled the enum value

* dev: updated archived_at in WI, Wpic and Intake types

* Project detail restriction

* dev: updated project public query

* dev: handled the archive epics

* dev: removed project level permissions on wi browse qurey

* dev: handled thr archived projects in project detail

* handled the archived project and raising the error when project is not public

* dev: handled the project member new creation.

* dev: replace UUIDField with starwberry.ID

* dev: handled the archived filters

* dev: handled the archived WI and Epic commment reaction

* dev: replced exclude with include

* [MOB-1503] chore: updated feature flag configuration for PI with AI (#6075)

* chore: updated the feature flag for PI

* dev: updated pi feature flag

* dev: included archive in the workitem comment reaction

* [MOB-1508] fix: lint errors (#6095)

* [MOB-958] feat: Updated join project mutation and added archived_at support in WorkItem, Epic, and Intake (#6010)

* dev: updated the browse query and also created the query that project is public or not

* dev: handled the project detail archive validation

* dev: fixed the join project issue

* dev: handled the enum value

* dev: updated archived_at in WI, Wpic and Intake types

* Project detail restriction

* dev: updated project public query

* dev: handled the archive epics

* dev: removed project level permissions on wi browse qurey

* dev: handled thr archived projects in project detail

* handled the archived project and raising the error when project is not public

* dev: handled the project member new creation.

* dev: replace UUIDField with starwberry.ID

* dev: handled the archived filters

* dev: handled the archived WI and Epic commment reaction

* dev: replced exclude with include

* [MOB-1503] chore: updated feature flag configuration for PI with AI (#6075)

* chore: updated the feature flag for PI

* dev: updated pi feature flag

* dev: included archive in the workitem comment reaction

* dev: resolved lint errors

* [PAI-1267] fix: ai response markdown styling  (#6014)

* [WEB-6172] feat: BusinessTrialBanner for Business plan trial promotion (#5958)

* [WEB-6403] feat: add table column sizing options (Fit to width, Equalize columns, Fit to text) (#5931)

* [WEB-6087] fix: duplicate email notification for mentions in intake work item #5928

* [WEB-6252] fix: Configurable email attachment size #5870

* security: IDOR Vulnerabilities in Asset & Attachment Endpoints (#5992)

* [WEB-5051] feat: work items, epics and parent rich filters in work items (#6050)

* [WEB-5878]chore: add validation for project name/identifier for special characters (#5406)

* [SILO-927] feat: Import timeout state for wait for celery state in jira (#5791)

* [SILO-927] fix: conflicting timeout migrations for celery timeout jira#6137

* [WEB-6489] chore: update advanced search shortcut (#6125)

* [WEB-5962] feat: workspace project labels (#5630)

* [WEB-6488] fix: epics incomplete activity #6139

* [SILO-1046] fix: scopes for agent run in constants #6141

* [WEB-6494] fix: custom intake form broken url #6145

* [INFRA-323] feat: enhance database connection pooling with AWS Secrets Manager support in outbox_poller.py (#6144)

* feat: enhance database connection pooling with AWS Secrets Manager support in outbox_poller.py

* feat: implement AWS Secrets Manager support for RabbitMQ connection parameters in automation and event stream consumers

* chore: remove unused settings import from event stream consumer and publisher

* [WEB-6497] fix: handle numeric size prop in Avatar component#6147

* [INFRA-324] fix: update GitHub Actions workflow to use ACCESS_TOKEN instead of PAT for comments (#6149)

* [INFRA-324] fix: update GitHub Actions workflow to use ACCESS_TOKEN instead of PAT for comments

* fix: update GitHub Actions workflow to use ACCESS_TOKEN for cleanup job

* [WEB-6499]fix: creating projects with labels (#6153)

* chore(deps): bump pypdf in /apps/pi in the pip group across 1 directory (#6150)

Bumps the pip group with 1 update in the /apps/pi directory: [pypdf](https://github.com/py-pdf/pypdf).


Updates `pypdf` from 6.7.4 to 6.7.5
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.7.4...6.7.5)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.7.5
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [WEB-6403] regression(editor): table block menu options not working

* [WEB-6500] feat: add last_used_filter and pql_filters fields to multiple models and migrations (#6152)

* feat: add last_used_filter and pql_filters fields to multiple models and migrations

* feat: add is_workitem_name_required field to IntakeForm and sort_order field to IntakeFormField

* [WEB-6492] chore: upgrade to rolldown-vite, react-router 7.13.1, and enable v8 future flags (#6148)

* chore: upgrade to rolldown-vite, react-router 7.13.1, and enable v8 future flags

- Alias vite to [email protected] for faster Rust-powered builds
- Upgrade react-router, @react-router/dev, @react-router/node,
  @react-router/serve from 7.13.0 to 7.13.1
- Upgrade @vercel/react-router from 1.2.3 to 1.2.5
- Enable stable v8 future flags across web, space, and admin:
  v8_middleware, v8_splitRouteModules, v8_viteEnvironmentApi

* chore: run pnpm dedupe to reduce duplicate resolutions

* [WEB-6172] feat: BusinessTrialBanner render validation (#6155)

* deprecate: mark router store and Next.js compat shims as deprecated (#6068)

Add @deprecated annotations to router store API and Next.js compatibility
shims to warn developers against using legacy patterns that cause sync
issues during fast route transitions.

* [WEB-6195] feat: formula field (#5915)

* [WEB-5579] feat: add desktop app with OAuth authentication (#5438)

* feat: add desktop app with OAuth authentication

- Add Electron desktop app with vite-plugin-electron
- Add desktop OAuth endpoints for Google and GitHub
- Add token exchange endpoint for desktop auth flow
- Add /d/auth route for handling OAuth callbacks
- Update OAuth hook to detect desktop app and use appropriate flow
- Remove deprecated IS_HEROKU setting
- Fix sign-out navigation in desktop app

* refactor: move tab bar from React to native Electron WebContentsView

Move the tab bar UI from the web app React component to a dedicated
Electron WebContentsView. This prevents the tab bar from flashing
during page navigation since it's now rendered in its own view that
persists independently of the content area.

Changes:
- Add tab-bar.html with self-contained UI matching Figma design
- Add tab-bar-preload.ts for IPC communication with main process
- Update ViewManager to create and manage tab bar WebContentsView
- Simplify IPCBridge to remove broadcasts to content views
- Remove DesktopTabBar React component from web app
- Simplify use-desktop.ts hooks (remove tab-related hooks)
- Update preload.ts to remove tab-related APIs

* refactor: desktop OAuth to use plane:// protocol handoff

- OAuth flow now opens in external browser for better UX (uses existing sessions)
- Browser callback page redirects to plane:// which hands off to Electron app
- Electron navigates to /d/auth/ on the instance to exchange token for session
- Add CSRF exemption to desktop token exchange endpoint
- Fix TypeScript types for electron-store with pnpm

* improvement: minor updates for tab bar HTML structure and styles

- Refined CSS variables for light mode and added primary color.
- Enhanced tab bar styles for better alignment and responsiveness.
- Improved hover effects and transitions for navigation buttons and tabs.

* feat: temporarily disable theme switcher on desktop

- Added logic to disable the theme switcher on desktop platforms, providing a tooltip to inform users that customization is not supported yet.
- Updated ThemeSwitch component to accept `isDisabled` and `tooltipContent` props for better user experience.
- Adjusted preferences commands to ensure theme switching is disabled on desktop.
- Implemented fallback to system theme for desktop users in the StoreWrapper component.

* feat: update color variables and improve layout in setup and tab bar HTML

- Replaced traditional color definitions with oklch color space for better color management.
- Enhanced layout and styling in setup.html for improved user experience, including adjustments to flex properties and background colors.
- Updated tab-bar.html to align with new color variables and improve responsiveness.
- Introduced a new InfoSection component in the auth page for better error handling and user feedback during authentication.

* refactor: add desktop build script and update dependencies

- Introduced a new build script for the desktop application in package.json.
- Updated @todesktop/cli dependency to version 1.20.2.
- Removed obsolete todesktop.json file and adjusted desktop package.json for improved dependency management.
- Updated various dependencies in the desktop app for better compatibility and performance.

* feat: update color variables and improve layout in setup and tab bar HTML

- Refactored color definitions to use oklch color space for better color management.
- Enhanced layout and styling in setup.html, including adjustments to background colors and semantic tokens.
- Updated tab-bar.html to align with new color variables and improve responsiveness, including hover effects and transitions.
- Improved overall user experience with refined CSS variables and layout structures.

* chore: enable pnpm catalog for desktop app and build fixes

* feat: enhance IPCBridge with structured event handling and cleanup

- Introduced constants for IPC channel names to improve code readability and maintainability.
- Added handler references for IPC events to facilitate proper cleanup during the destroy process.
- Refactored IPC event listeners to use the new constants and handler references, ensuring better organization and management of IPC communication.
- Improved the destroy method to remove event listeners and handlers, preventing potential memory leaks.

* feat: implement dynamic layout mode handling in ViewManager

- Introduced WindowLayoutMode type to manage application layout states ('setup' and 'app').
- Enhanced ViewManager to compute and update layout mode based on instance URL configuration.
- Updated tab bar visibility and height dynamically according to the current layout mode.
- Subscribed to instance store changes to ensure layout updates are reflected in real-time.

* fix: properly destroy WebContentsView renderer processes on tab close and window close

The desktop app had memory leaks where renderer processes persisted after:
1. Tab closure - tabs that had been visited kept their renderer processes alive
2. macOS window close - all renderers remained when window closed (app in dock)
3. Instance URL change - old renderers were never destroyed

Root causes:
- closeTab() only called removeChildView() without destroying the WebContentsView
- destroy() only unsubscribed from stores, didn't destroy any views
- Window used 'closed' event (fires after close) instead of 'close' event

Changes:
- Add #destroyView() helper that properly destroys WebContentsView instances
  by removing from parent, clearing event listeners, and calling
  webContents.close({ waitForBeforeUnload: false })
- Add #destroyTabBarView() for tab bar cleanup
- Update destroy() to clean up all views, tab bar, and resize handler
- Update closeTab() and handleInstanceUrlChanged() to use #destroyView()
- Switch from 'closed' to 'close' event for cleanup while window is valid
- Add will-quit handler to unregister global shortcuts

* refactor: standardize undefined usage across stores and managers

Replace null with undefined for optional values (instanceUrl, activeTabId) to improve type safety and consistency throughout the desktop app. This change:

- Unifies optional value handling in InstanceStore, TabStore, and related types
- Updates IPCBridge and ViewManager to handle undefined instance URLs correctly
- Simplifies type definitions and reduces null-checking complexity
- Aligns with TypeScript best practices for optional values

* feat(desktop): handle asset downloads with native save dialog

- Add isAssetPath helper to detect asset URLs by path patterns and file extensions
- Trigger native file save dialog for asset downloads instead of opening new tabs
- Fix electron-store usage: use delete() instead of set(undefined)
- Add favicon error handling with fallback to Plane logo
- Validate favicon URLs to only accept http, https, or data URIs
- Refactor view-manager to use guard-first approach throughout

* fix(desktop): register download handler once at app level instead of per-tab

All tabs share the same default session, so registering the will-download
handler per-tab caused duplicate handlers and multiple save dialogs.

* feat(desktop): update tab navigation shortcuts and add last tab functionality

- Changed tab navigation shortcuts from "CommandOrControl" to "Control" for consistency.
- Added a new shortcut for switching to the last tab, enhancing user experience in tab management.

* chore: disabled un-supported oauth options for desktop

* feat(desktop): multi-window tabs and React tab bar

* feat(desktop): multi-window tabs, React tab bar, and Chrome-like restore

* fix(desktop): resolve relative OAuth URLs against instance URL for self-managed deployments

* feat(desktop): handle deep links before app readiness and update tab navigation shortcuts

- Introduced a mechanism to process deep links that arrive before the app is fully initialized, enhancing user experience by ensuring deep links are handled appropriately.
- Changed tab navigation shortcuts from "CommandOrControl" to "Control" for both "Next Tab" and "Previous Tab" to ensure uniformity across the application.

* feat(auth): implement PKCE support for OAuth flows in desktop app

- Added PKCE challenge storage and validation in the authentication process.
- Updated OAuth endpoints for GitHub, GitLab, Gitea, and Google to handle PKCE.
- Introduced IPC methods for generating code_verifier and code_challenge in the desktop app.
- Enhanced token exchange process to include PKCE verification.

* chore: update copyright/license headers in desktop and web files

* fix: add missing copyright checks

* fix: build

---------

Co-authored-by: Prateek Shourya <[email protected]>
Co-authored-by: sriramveeraghanta <[email protected]>

* [WEB-6232] chore: seed data for quick links (#6138)

* Fix: ee builds by removing airgapped steps (#6133)

* chore: comment out FIPS build configuration in GitHub Actions workflow

- Removed FIPS build configuration from the build-branch-ee.yml workflow file by commenting out related sections.
- This change simplifies the workflow and disables FIPS build options for the time being.

* fix: update GitHub Actions workflow to conditionally set BUILDX_PLATFORMS

- Modified the build-branch-ee.yml workflow to conditionally set the BUILDX_PLATFORMS environment variable based on the ARM64_BUILD flag.
- This change allows for building images for both amd64 and arm64 architectures when ARM64_BUILD is true, enhancing build flexibility.

* refactor: update GitHub Actions workflow to enhance build configuration

- Replaced the airgapped_build input with cloud_builder in the build-branch-ee.yml workflow to streamline build options.
- Adjusted environment variable settings to reflect the new cloud_builder input, improving clarity and maintainability.
- Removed commented-out FIPS build configurations to simplify the workflow.

* fix: enhance ARM64 build condition in GitHub Actions workflow

- Updated the build-branch-ee.yml workflow to include an additional condition for setting the ARM64_BUILD flag.
- This change allows for ARM64 builds when the BUILD_TYPE is "Release" and IS_PRERELEASE is not true, improving build configuration flexibility.

* feat: add FIPS build support to GitHub Actions workflow

- Enhanced the build-branch-ee.yml workflow by introducing a new input option for selecting the type of images to build (regular or FIPS).
- Implemented conditional logic to set Dockerfile paths and environment variables based on the selected build type, allowing for more flexible image building.
- This update improves the build process by accommodating FIPS compliance requirements.

* fix: update GitHub Actions workflow to include AIO_BUILD input

- Added the AIO_BUILD input to the build-branch-ee.yml workflow, ensuring it is set in the environment variables for the build process.
- This change enhances the flexibility of the build configuration by allowing the specification of AIO build options during the workflow execution.

* feat: enhance GitHub Actions workflow for FIPS build support

- Updated the build-branch-ee.yml workflow to include conditional logic for handling FIPS builds.
- Added new steps to copy and modify Docker Compose files based on the FIPS build flag, improving the build process for compliance.
- Implemented separate upload steps for FIPS and non-FIPS Docker Compose files, enhancing artifact management.

* chore(deps): django version upgrade

* chore: migrate dependencies to pnpm catalog (#6162)

* chore: migrate dependencies to pnpm catalog

- Set save-workspace-protocol=rolling in .npmrc to prevent pnpm up from
  pinning workspace:* to versioned ranges
- Reverted all workspace:^2.3.0 back to workspace:*
- Migrated 169+ dependencies to use catalog: protocol via pnpm/catalog codemod
- Manually unified effect, postcss, and nanoid versions into catalog
- Fixed codemod regressions: restored lucide-react (0.542.0), uuid (13.0.0),
  and zod (^4.0.0) to their original catalog versions
- Kept zod v3 pinned in silo, live, etl, shared-state, and node-runner
  (not yet migrated to zod v4)

* chore: migrate silo from jest to vitest, use vite-tsconfig-paths

- Replace jest/ts-jest with vitest in silo (fixes ESM-only uuid@13 issue)
- Use explicit vitest imports instead of globals
- Replace resolve.alias with vite-tsconfig-paths in silo, live, mobile-editor

* fix: add missing typescript devDependency to @plane/etl and bump dev concurrency

* fix: add pnpm overrides for react, react-dom, and their @types packages

* [WEB-6504] fix: allow admin to toggle lock on workspace pages (#6170)

* fix: allow admin to toggle lock on workspace pages

* fix: use page workspace id instead of router slug for lock permission

* Revert "chore: migrate dependencies to pnpm catalog (#6162)" (#6175)

This reverts commit 0c9b3cb5f0.

* fix: force react/react-dom to v18 via pnpm overrides to eliminate duplicate instances (#6168)

@todesktop/cli pulls in react@17 transitively through ink, causing pnpm
to create two react-dom variants. This manifested as a runtime crash in
MobX's reactionScheduler accessing `isBatchingLegacy` on undefined.

* [WEB-6520] fix: use isDesktop to correctly handle web vs desktop OAuth flows #6176

* Refactored the handleOAuthNavigation function to utilize the isDesktop function for determining desktop environment.
* Moved the getDesktopAPI call inside the conditional check to ensure it only executes when necessary, improving performance and clarity.

* [WEB-6242] feat: add all the supported authentication methods to god mode as well (#5837)

* feat: add all the supported authentication methods to god mode as well

* fix: ensure email password auth is always available for admin app

* feat: implement ServiceDetailsSection component for improved authentication service details display

* feat: update authentication endpoints to use /api/instances/admin/ for various providers and fix saml and oidc auth related bugs

---------

Co-authored-by: Prateek Shourya <[email protected]>

* [WEB-6520] fix: update OAuth navigation to include query parameters in URL #6180

* Modified the handleOAuthNavigation function to correctly format the URL for web OAuth flows by adding a '?' before the query parameters. This change ensures proper navigation for web and unsupported desktop providers.

* [WEB-6524] chore: error page ux copy updated (#6187)

* chore: error page ux copy updated

* chore: code refactoring

* chore: code refactoring

* [WEB-6523] fix: space sso auth (#6186)

* [SILO-1019] fix: added management command for getting plane imported information (#6048)

* [SILO-1058] fix: jira start date, completion date fallback, assets and service api token (#6189)

* fix: remove unused base_host variable from OAuth space callback views (#6191)

* [WEB-6411] feat: instance user management (#5341)

* draf: instance user management

* draft: admin instance form

* chore: added instance and user forms

* draft: user members table

* chore: added viewset for instance users crud

* draft: added urls

* chore: instance workspace invite cleanup

* chore: integrated instance user management apis

* chore: added api integration

* chore: db migrations

* chore: added admin flag check decorator

* chore: added instance seats check for create endpoint

* chore: added empty state

* chore: reverted migrations and db changes

* chore: added check for available seats

* chore: disabled feature flag checks

* draft: password reset serializer

* fix: email check

* chore: added serializer for validation

* fix: instance seats availability check

* chore: added password reset endpoint

* feat: implemented user password reset service

* fix: updated decorator kwargs

* feat: added reset password functionality to instance admin

* chore: added INSTANCE_USER_MANAGEMENT flag to monitor

* chore: monitor build error

* fix: current plan api call

* fix: instance member check count

* fix: auth token

* * chore: removed redundatn migration file
* chore: added additional check for password strength
* fix: corrected caching uri

* * chore: added copyright checks
* fix: lint

* chore: added copyright check for python

* chore: removed unused file

* refactor: (admin-routes) move dashboard pages into with/without-sidebar route groups
refactor: (admin-sidebar) merge extended links into core menu and add billing/user-management entries
fix: (ui) harden combobox/select value handling and migrate admin user search debounce

* feat: enhance instance admin creation with logging and validation improvements

---------

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

* [WEB-6209] feat: intake work item type form enhancements (#5955)

* chore: pass form description to preview

* fix: add required asterisk to form title, remove from description

* chore: remove unused intake form translation keys

* chore: space app form ui enhancements

* chore: code refactoring

* chore: update serializers to include is_workitem_description_required and is_workitem_name_required

* feat: add is_workitem_name_required and is_workitem_description_required support to intake forms

---------

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

* [PAI-1280] feat: add bedrock custom model support (#6086)

* chore: handle bedrock custom llm

* fix: response formatting

* refactor: remove CUSTOM_LLM_TEMPERATURE and update related configurations to use None

* fix: validate custom llm command

* refactor: improve custom LLM validation success messages and suppress noisy AWS/Langchain logs.

* [WEB-6411]: fix instance user management (#6200)

* [WEB-6494] fix: custom intake form broken url #6145

* fix: add redirect_uri to OAuth providers for Gitea, GitHub, GitLab, and Google

* feat: enhance AddSeatsModal and InviteMembersModal with onClose and onSuccess callbacks

- Updated AddSeatsModal to accept onClose prop and trigger it upon successful seat addition.
- Modified InviteMembersModal to set the current step to "INVITE_ADMIN" on successful invitation.

* feat: implement admin authentication throttle and enhance instance user management

* fix: improve error handling and cleanup in DeactivateEnterpriseLicense function

* feat: implement user role management with promote/demote functionality in instance user management

* refactor: simplify user management component by removing role toggle functionality

- Removed handleToggleRole and associated logic from user management components.
- Updated NameColumn and AccountTypeColumn to utilize the new structure without role toggling.
- Enhanced readability and maintainability of the user management code.

---------

Co-authored-by: b-saikrishnakanth <[email protected]>
Co-authored-by: sriram veeraghanta <[email protected]>
Co-authored-by: Prateek Shourya <[email protected]>

* [WEB-6411] improvement: revert back to old UI and adds confirmation modal for role toggle in user management (#6214)

* fix: implement toggle role modal for instance user management

- Added ToggleRoleModal component to manage user role changes between "user" and "admin".
- Updated user management list to include role toggle functionality.
- Enhanced NameColumn to trigger role changes through the new modal.
- Refactored member list components to accommodate the new role management feature.

* fix: minor UI updates

* fix: ux copy

* fix: update role management UI text for clarity

---------

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

* [WEB-6568] chore: rename workspace settings "Project states" tab to "Projects" (#6225)

* chore: code refactoring

* chore: code refactoring

* [WEB-6571] fix: refresh workspace license on creation for self-managed instances #6229

* [WEB-6572] fix: add IS_GITLAB_ENABLED configuration variable #6234

* refactor: remove instance user management feature flags and related checks (#6241)

* refactor: remove instance user management feature flags and related checks

* chore: removed check for user management

---------

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

* [WEB-6599] feat: shared instance not ready component and ui revamp (#6259)

* feat: add InstanceNotReady domain component

* feat: InstanceNotReady common component implementation

* [WEB-6599] fix: instance not ready redirection (#6264)

* fix: instance not ready redirection

* chore: code refactoring

* chore: code refactoring

* chore: code refactoring

* chore: code refactoring

* fix: pi logger changes to debug (#6303)

* clean llm factory class. fix anthropic self-hosted bug

* [PAI-1311] fix: litellm Claude model conflict for self-hosted (#6218)

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Surya Prashanth <[email protected]>
Co-authored-by: Pratapa Lakshmi <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: Dheeraj Kumar Ketireddy <[email protected]>
Co-authored-by: pratapalakshmi <[email protected]>
Co-authored-by: Aaron <[email protected]>
Co-authored-by: Henit Chobisa <[email protected]>
Co-authored-by: Saurabh Kumar <[email protected]>
Co-authored-by: Anmol Singh Bhatia <[email protected]>
Co-authored-by: b-saikrishnakanth <[email protected]>
Co-authored-by: guru_sainath <[email protected]>
Co-authored-by: Akshita Goyal <[email protected]>
Co-authored-by: M. Palanikannan <[email protected]>
Co-authored-by: Sangeetha <[email protected]>
Co-authored-by: Manish Gupta <[email protected]>
Co-authored-by: Aaryan Khandelwal <[email protected]>
Co-authored-by: Vamsi Krishna <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nikhil <[email protected]>
Co-authored-by: Prateek Shourya <[email protected]>
Co-authored-by: pablohashescobar <[email protected]>
Co-authored-by: Akhil Vamshi Konam <[email protected]>
Co-authored-by: vamsikrishnamathala <[email protected]>
Co-authored-by: sunder <[email protected]>
2026-03-17 13:44:32 +05:30

74 lines
1.6 KiB
Docker

FROM python:3.12.10-alpine
# set environment variables
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PIP_DISABLE_PIP_VERSION_CHECK=1
ENV INSTANCE_CHANGELOG_URL=https://sites.plane.so/pages/f366114e9aba4cbfbe4265b8f2b74f65
# Update system packages for security
RUN apk update && apk upgrade
WORKDIR /code
RUN apk add --no-cache --upgrade \
"libpq" \
"libxslt" \
"xmlsec" \
"ca-certificates" \
"openssl" \
"openldap-dev" \
"su-exec"
COPY requirements.txt ./
COPY requirements ./requirements
RUN apk add --no-cache libffi-dev
RUN apk add --no-cache --virtual .build-deps \
"bash~=5.2" \
"g++" \
"gcc" \
"cargo" \
"git" \
"make" \
"postgresql-dev" \
"libc-dev" \
"linux-headers" \
"xmlsec-dev"\
&& \
pip install -r requirements/local.txt --compile --no-cache-dir \
&& \
apk del .build-deps \
&& \
rm -rf /var/cache/apk/*
# Add in Django deps and generate Django's static files
COPY manage.py manage.py
COPY pyproject.toml pyproject.toml
COPY plane plane/
COPY templates templates/
COPY package.json package.json
# Install the package to register the `plane` console script
RUN pip install --no-deps --no-cache-dir .
RUN apk --no-cache add "bash~=5.2"
COPY ./bin ./bin/
# Create user first so chown can reference it by name
RUN addgroup -g 1000 plane && adduser -u 1000 -G plane -s /bin/sh -D plane
RUN mkdir -p /code/plane/logs && \
chmod +x ./bin/* && \
chmod -R 755 /code && \
chown -R plane:plane /code
# Expose container port and run entry point script
EXPOSE 8000
CMD [ "./bin/docker-entrypoint-api-local.sh" ]