After months of testing, feedback, and iterations, we're thrilled to announce the final release of PLANKA v2! 🎉
We want to extend a huge thank you to everyone who contributed, reported issues, and helped identify security vulnerabilities. Your support has made this release possible.
Our SaaS version goes live in just a few hours! Enjoy fully secure, cloud-hosted instances with zero setup - start using PLANKA without worrying about infrastructure or maintenance.
We're also excited to introduce our new Pro version with additional features, which you can explore at https://planka.app/pro.
How to Upgrade From v1.26.3
Please follow the official upgrade guide in our documentation.
How to Update From v2.0.0-rc.4
Please follow this post to see all breaking changes and items to verify before updating.
Security Disclosure
We would like to thank @reasoningsec for responsibly reporting a Blind SSRF in outbound request features, which was promptly addressed in this release.
What's Changed
- feat: Add ability to mention users in comments (#1162)
- feat: Allow to add custom annotations for deployment in Helm (#1168)
- feat: Add download button for file attachments
- feat: Strikethrough cards in closed lists
- feat: Make card descriptions expandable
- feat: Add copy-to-clipboard for custom fields
- feat: Include task assignees in member filter logic (#1214)
- feat: Move webhooks configuration from environment variable to UI
- feat: Add
INTERNAL_ACCESS_TOKENto support internal user configuration - feat: Display card name when linking in task (#1234)
- feat: Persist closed state per card
- feat: Add ability to link tasks to cards
- feat: Open card actions on right-click
- feat: Add ability to create new card at top (#1261)
- feat: Add ability to hide completed tasks (#1210)
- feat: Move infrequent card actions to more actions menu
- feat: Add dedicated button to make project private
- feat: Parse dates as UTC without relying on
TZenvironment variable - feat: Track navigation path when switching between cards
- feat: Add OAuth callback support for OIDC (#1290)
- feat: Add legal requirements (#1306)
- feat: Track storage usage
- feat: Add ability to move lists between boards (#1208)
- feat: Restore toggleable due dates (#1332)
- feat: Add ability to use Gravatar as avatar provider (#1319)
- feat: Add board setting to expand task lists by default
- feat: Add ability to configure and test SMTP via UI
- feat: Extra volume mounts in Helm (#1382)
- feat: Add API key authentication (#1254)
- feat: Ghost error page for improved error display
- feat: Add basic shortcuts (#1436)
- feat: Extend card action shortcuts
- feat: Add create-board button to open-board screen (#1438)
- feat: Add object-path support to OIDC attribute mapping
- feat: Allow setting customer panel URL via environment variables
- feat: Add ability to copy/cut cards with shortcut support
- feat: Enhance card actions menu with separators and action bar
- feat: Move About and Terms into separate modal
- feat: Display last updates in About modal
- feat: Improve mime type detection, limit image processing size
- feat: Optimize and parallel image processing
- feat: Add demo mode with restricted user actions
- feat: Add support for sidecar containers in Helm (#1494)
- feat: Add internal runtime configuration
- feat: Add ability to pre-fill login credentials in demo mode
- feat: Add ability to unlink SSO from user
- feat: Add OIDC debug mode
- feat: Re-stream static files from S3, introduce protected static files
- feat: Migrate file storage to unified data directory
- feat: Apply color to entire list instead of card bottoms
- feat: Add configurable proxy for outgoing traffic to prevent SSRF
- feat: Add Greek translation (#1176)
- feat: Add Finnish translation (#1180)
- feat: Add Estonian translation (#1212)
- feat: Add Portuguese translation (#1262)
- feat: Add Catalan (ca-ES) translation (#1424)
- feat: Add Vietnamese translation (#1459)
- fix: Prevent auto-updating translation files when key is missing
- fix: Add mentions support when editing comments
- fix: Canonicalize locale codes
- fix: Prevent text overflow in activities
- fix: Prevent text overflow in card name
- fix: Prevent auto-filling title in YFM note
- fix: Use console as logger for YFM note
- fix: Handle escape actions properly in mentions input
- fix: Align text to center in content error message
- fix: Responsive label color selector, improve action button styles (#1184)
- fix: Fix mentions input styles
- fix: Fix deps in download attachment handler
- fix: Increase max username length for identity provider users
- fix: Add cancel button when editing comment
- fix: Use correct action to clear user creation error
- fix: Display tasks with preserved newlines in card modal
- fix: Fix filtering by task assignees
- fix: Improve PDF viewer cross-browser compatibility
- fix: Move webhooks declaration to correct position
- fix: Handle webhooks correctly during socket reconnection
- fix: Fix toolbar styles in markdown markup editor
- fix: Fix red curtain background gradient
- fix: Enable spellcheck on all textareas
- fix: Add icons to popup menu items
- fix: Set font-size on add task button
- fix: Improve current board context indication
- fix: Fix mentions input styles
- fix: Preserve newlines in markdown with mentions
- fix: Read secret files without requiring trailing newline
- fix: Improve upgrade script, log statuses
- fix: Prevent editors from deleting any comment
- fix: Improve mentions behavior
- fix: Replace user settings icon
- fix: Fix projects order popup styles
- fix: Fix regex-based id validation when fetching user
- fix: Remove meta markdown plugin
- fix: Handle markdown-to-text errors gracefully
- fix: Handle saga watcher errors gracefully
- fix: Correctly parse environment variables, little refactoring
- fix: Reflect task lists expansion instantly after switching setting
- fix: Display users alphabetically in board memberships popup (#1334)
- fix: Prevent accidental modal close when switching windows on Windows
- fix: Support multiple CORS origins via comma-separated
BASE_URL - fix: Change background color for own comments
- fix: Increase browser cache time for attachment files
- fix: Prevent app crash when board is added before its project in the store
- fix: Add missing default for
showOnFrontOfCardin custom fields - fix: Switch to bitnamilegacy Postgres repo in Helm, add ingress labels (#1368)
- fix: Always display "Add comment" button when input has text (#1379)
- fix: Make model-level username regex less strict
- fix: Set detected language on first login, remove auto-detect language option
- fix: Prevent popup header text from wrapping to new line
- fix: Add missing keys to chart values file (#1401)
- fix: Adjust margins in menu-styled popups
- fix: Make date command cross-platform in backup script (#1409)
- fix: Log errors when sending notifications via Apprise
- fix: Properly prevent shortcut events, update dependencies
- fix: Prevent shortcuts from triggering in actions popup
- fix: Increase max username length
- fix: Create isolated i18n instances to prevent locale collision
- fix: Rename
getCardsinputs for consistency - fix: Optimize query methods
- fix: Rename GIN indexes
- fix: Improve browser caching for public files
- fix: Improve login page appearance
- fix: Prevent clearing linked tasks when soft deleting
- fix: Prevent attachment gallery content from going out of bounds
- fix: Fix attachment file handling when S3 is enabled
- fix: Align markdown colors
- fix: Align markdown quote border color
- fix: Disable fuzzy links in markdown editor
- fix: Fix variable name in seeder
- fix: Prevent sending notifications to deactivated users
- fix: Prevent deactivated users from receiving socket events when possible
- fix: Correctly track password field modification in SMTP pane
- fix: Enable favorites by default
- fix: Hide unlinking SSO when OIDC is enforced
- fix: Enhance response headers for file attachments
- fix: Fix server error when fetching custom field group
- fix: Forward headers correctly when reading from S3
- fix: Block unsupported local Apprise schemas
- fix: Prevent collisions when generating local ids
- fix: Update Italian translation (#1163, #1195, #1268, #1324)
- fix: Update Spanish translation (#1170, #1189, #1355)
- fix: Update Danish translation (#1173, #1177)
- fix: Update Chinese translation (#1250)
- fix: Update Czech translation (#1185, #1331, #1337)
- fix: Update Bulgarian translation (#1187)
- fix: Update French translation (#1192, #1238, #1242)
- fix: Update Hungarian translation (#1193, #1298, #1318, #1354)
- fix: Update Indonesian translation (#1194)
- fix: Update Japanese translation (#1196)
- fix: Update Korean translation (#1197)
- fix: Update Dutch translation (#1201)
- fix: Update Brazilian Portuguese translation (#1202, #1301)
- fix: Update Romanian translation (#1203)
- fix: Update Slovak translation (#1205)
- fix: Update Serbian (Cyrillic) translation (#1206)
- fix: Update German translation (#1235)
- fix: Update Turkish translation (#1239)
- fix: Update Finnish translation (#1251)
- fix: Update Greek translation (#1255)
- fix: Fix typo in English translations (#1259)
- fix: Update Ukrainian translation (#1299, #1326)
- fix: Update Russian translation
- fix: Complete missing client translations, improve consistency
- fix: Correct
copy_inlinetranslations to use noun form - fix: Complete missing server translations
- fix: Complete missing markdown editor translations
- build: Add tmpfs to compose file (#1165)
- build: Use Node.js v22
- build: Apply patches correctly during Docker image build
- build: Refine server build steps
- docs: Add example SMTP config using
extraEnvin Helm (#1217) - docs: Add full Swagger JSDoc coverage
- docs: Validate Swagger docs (#1486)
- license: Remove ambiguity in usage restrictions
- license: Improve clarity of commercial license terms
- chore: Add chart to feature request template (#1414)
- chore: Add Swagger generation script
Plus all changes from v2.0.0-rc.4, v2.0.0-rc.3, and v2.0.0-rc.2.
New Contributors
- @jasonajack made their first contribution in #1165
- @anthosz made their first contribution in #1168
- @marioaparcero made their first contribution in #1170
- @symonbaikov made their first contribution in #1176
- @millenium-codebug made their first contribution in #1214
- @stufently made their first contribution in #1217
- @valcriss made their first contribution in #1238
- @Winston-1874 made their first contribution in #1242
- @HanJiang-cn made their first contribution in #1250
- @uppertoe made their first contribution in #1259
- @ranamashood made their first contribution in #1261
- @jorgecarleitao made their first contribution in #1262
- @luisgreen made their first contribution in #1290
- @martonmiklos made their first contribution in #1298
- @saulotarsobc made their first contribution in #1301
- @and-ri made their first contribution in #1326
- @maryojo made their first contribution in #1319
- @arsonists made their first contribution in #1355
- @patroldo made their first contribution in #1368
- @kekekuli made their first contribution in #1379
- @freinold made their first contribution in #1382
- @varadiistvan made their first contribution in #1401
- @rogerclotet made their first contribution in #1424
- @shanickcuello made their first contribution in #1409
- @zserge made their first contribution in #1436
- @SUMMERxKx made their first contribution in #1438
- @huynguyeexn made their first contribution in #1459
- @hwelch-fle made their first contribution in #1486
Full Changelog: v2.0.0-rc.4...v2.0.0