On this page
Joplin Server Changelog New: Add support for Postgres replication (a90e3e0) New: Add uploaded data size to report (e9e6d8a) New: Added report page (7ad3b34) Improved: Allow web client sync (#10775 by @personalizedrefrigerator ) Improved: Avoid logging automated resource deletions (#10157 by @personalizedrefrigerator ) Improved: Decrease maximum email and full_name sizes (#10303 by @personalizedrefrigerator ) Improved: Improve log quality by increasing specificity of error (#10287 by @pedr ) Improved: Optimize delta change query to prevent timeouts on large datasets (89dfbe3) Improved: Prevent item size calculation task from failing when a user has been deleted (e6ec27a) Improved: Print a heartbeat message to log once per minute (916fa39) Improved: Updated packages @adobe/css-tools (v4.3.3), async-mutex (v0.4.1), chokidar (v3.6.0), follow-redirects (v1.15.6), glob (v10.3.12), jsdom (v23.2.0), koa (v2.15.2), ldapts (v7.0.9), moment (v2.30.1), node-mocks-http (v1.14.1), nodemailer (v6.9.8), pg (v8.11.5), pm2 (v5.3.1), react, sass (v1.71.0), sharp (v0.33.3), style-to-js (v1.1.12), tar (v6.2.1), tesseract.js (v5.0.5), turndown (v7.1.3) Improved: Use slave database for reports (cd0ff94) Fixed: Missing record validation before trying to add item to user (#10471) (#10118 by @pedr ) Improved: Check Postgres required version before starting the server (#9695) Improved: Display correct date and time on published notes (f38abc5) Improved: Optimise synchronisation by making delta call return whole items (5341501) Improved: Revert to Formidable v2 to avoid random crashes (be94939) Improved: Updated packages fs-extra (v11.2.0), knex (v3.1.0), ldapts (v7.0.7), rate-limiter-flexible (v3.0.6), react, sharp (v0.33.1), style-to-js (v1.1.10), tesseract.js (v5.0.3) Improved: Support including items with delta call to optimise sync (67a6870) Improved: Updated packages @rmp135/sql-ts (v1.18.1), mermaid (v10.6.1), nanoid (v3.3.7), node-cron (v3.0.3), rate-limiter-flexible (v3.0.4), react, style-to-js (v1.1.9), tesseract.js (v4.1.4) Fixed: Redirect user from login to home if already logged (#9415) (#9367 by @pedr ) Improved: Increase number of items that are returned during sync (767bf9f) Improved: Updated packages highlight.js (v11.9.0), ldapts (v7.0.6), sass (v1.69.5) Fixed: Fix severe performance issue for certain delta calls (f698068) Fixed: Fixed issue with sync not immediately returning all items in certain cases (87aeffa) New: Added LDAP authentication (#9150 by Marco Rombach) Improved: Updated packages mermaid (v10.5.1), nodemailer (v6.9.7), sass (v1.69.0) Improved: Automatically restarts the server when it crashes, with exponential back-off (0c8b475) Improved: Improve parsing of uploaded content and error handling (db88dfc) Improved: Updated packages katex (v0.16.9), nodemailer (v6.9.6), react, sass (v1.68.0) Improved: Significantly improve sync performances, especially when there are many changes (5986710) Improved: Updated packages compare-versions (v6.1.0), dayjs (v1.11.10), follow-redirects (v1.15.3), glob (v10.3.6), katex (v0.16.8), markdown-it (v13.0.2), node-mocks-http (v1.13.0), nodemailer (v6.9.5), nodemon (v3.0.1), react, sass (v1.66.1), sharp (v0.32.6), sprintf-js (v1.1.3), tar (v6.2.0), uuid (v9.0.1) Fixed: Fixed publishing logo (01f37df) New: Add Joplin Server and Joplin Cloud favicons (1b00445) New: Add function to get db default value (6962ba1) New: Add support for separate admin instance (d78ab16) Improved: Add a link to resend email verification email (#8650) (#7808 by @hubert ) Improved: Allow any account to share with any other account (13c4eba) Improved: By default, sort user deletion in descending order (68ffdc5) Improved: Disallow loading env file that contains duplicate keys (9d16dd2) Improved: Do not allow the server to start if a migration needs to be applied (1acbb5d) Improved: Ensure that server does not crash when trying to start a task that is already running (5ed3d94) Improved: Remove event-based services (c718706) Improved: Removed obsolete node-env-file dependency (c0501fc) Improved: Set db default value in exported schema (6cdb1a7) Improved: Support setting an instance name (36e9e0a) Improved: Throwing an error if the password being saved already seems to be hashed (#8637 by @pedr ) Improved: Updated packages @rmp135/sql-ts (v1.18.0), buildTools, dayjs (v1.11.9), gettext-parser (v7.0.1), glob (v10.3.4), jquery (v3.7.1), jsdom (v22.1.0), knex (v2.5.1), markdown-it-multimd-table (v4.2.3), nodemailer (v6.9.4), pg (v8.11.3), rate-limiter-flexible (v2.4.2), react, sass (v1.65.1), sharp (v0.32.5), word-wrap (v1.2.5) Improved: Upgraded Formidable parsing library (a04654a) Fixed: Searching for user should be case insensitive (#8682) (#8307 by @hubert ) Fixed: Sorting users by "total size" leads to a crash (#8680) (#8308 by @hubert ) New: Add yarn patches to Docker image (e91e38c) Improved: Updated packages @rmp135/sql-ts (v1.17.0), clean-html (v2), dayjs (v1.11.8), glob (v10.2.7), jquery (v3.7.0), pg (v8.11.0), standard (v17.1.0) Improved: Allow giving a different version number to forks (091eff9) Improved: Improve performance and reliability when adding an item (17888a2) Improved: Process orphaned items (84b130e) Improved: Updated packages @koa/cors (v4), aws, buildTools, domhandler (v5), domutils (v3.1.0), formidable (v3), highlight.js (v11.8.0), jsdom (v21.1.2), markdown-it-multimd-table (v4.2.2), nodemailer (v6.9.3), sass (v1.62.1), sharp (v0.32.1), tar (v6.1.15), yargs (v17.7.2) Fixed: Fixed copyright year (a7e185e) Improved: Allow setting NTP server using NTP_SERVER env variable (#8153) Improved: Improved handling of items with duplicate IDs (a0b707c) Improved: Updated packages aws, fs-extra (v11.1.1), jquery (v3.6.4), jsdom (v21.1.1), koa (v2.14.2), markdown-it-multimd-table (v4.2.1), nanoid (v3.3.6), node-mocks-http (v1.12.2), nodemon (v2.0.22), pg (v8.10.0), reselect (v4.1.8), sass (v1.60.0), sharp (v0.32.0), sqlite3 (v5.1.6), turndown (v7.1.2) Improved: Updated packages nodemon (v2.0.21) Improved: Clean up share logic (107f2e1) Fixed: Fixed sharing issue when a user no longer has a user item associated with their account (293f621) Fixed: Fixed sharing issue for changes that are associated with deleted items (05c17fb) New: Add in ability to use Postgres connection string in configuration (#6836 by @halkeye ) Fixed: Fixed issue when an item is associated with a share that no longer exists (ba5f0bc) Fixed: Fixed regression that would prevent styles from being loaded in published notes (#7525) Fixed: Fixed regression introduced by form-parse lib update (#7463) Upgraded packages for performance and security improvements. Improved: Allow enabling and disabling tasks (1379c9c) Improved: Allow searching user by email or name (1cfbefb) Improved: Fail-safe when trying to delete a non-disabled account (21883b4) Improved: Paginate users (8ac8d53) Improved: Refactor table structure (8ea6d89) Improved: Update sender email (bf92ee7) Improved: Upgrade Koa framework to 2.13.4 (dc92546) Improved: Upgrade to Node 18 (f34078b) Improved: When re-activating an account, remove it from the deletion queue (bbc4228) Fixed: Fixed account activation logic (ccf5d20) New: Add support for sidebar in user pages (053dbab) Improved: Automatically delete expired sessions (d5dfecc) Improved: Cannot sort user deletions by email (8e18024) Improved: Do not make checkboxes in published notes clickable (cb637e8) Improved: Improve admin email UI (e3c9bcb) Improved: Process user deletions once an hour (f99b8df) Improved: Use apt to install tini to enable multi-platform support (#6097 by Erik Thomsen) Fixed: Could not manually start task (#6491) Fixed: Fixed Unsupported File Type error when sharing certain notes (#6531) Fixed: Fixed removal of user deletion tasks (8f8cc12) Fixed: Fixed sidebar menu selection (422a5bf) Fixed: Fixed user deletion schedule (bfe5ee8) Fixed: Published note must be scrollable when it contains a large table (#6370) New: Add task to automate deletion of disabled accounts (1afcb27) Improved: Always display Help link even when not logged in (00163f5) Improved: Call server start command directly, without going through npm (c185f00) Improved: Disable session expiration logic for now (4c11bbf) Improved: Enabled task to automatically delete sessions every 6 hours (69170dd) Improved: Fixed handling of mailer security settings, and changed env variable name MAILER_SECURE => MAILER_SECURITY, and default port 587 => 465 (Breaking change) (#5222) Improved: Improved env variable validation and support true-false as boolean values (fd322ed) Improved: Improved string localization in views (98bfb65) Improved: Make page wider only when displaying admin pages (df9c460) Improved: Move admin pages under /admin (#6006) Improved: Put admin pages under /admin (09cbe3c) Improved: Remove unneeded CSS file (9dbf5e0) Improved: Set NODE_ENV to "production" in Docker image (ed0f0fa) Improved: Set a timestamp when disabling a user (2f7ab7e) Improved: Simplify Docker image (#6010) Improved: Temporarily save user info before deleting account (68469bc) Improved: View sent emails from admin dashboard (f5f7981) Fixed: Fixed sharing notebook with a user that does not have E2EE enabled (#5958) Fixed: Use multi-stage builds and smaller base image (#6048) (#5397 by @aaron ) Improved: Allow deleting complete user data (#5824) Improved: Changed ID length from 32 to 22 characters (e9ce3d1) Improved: Disable logs and items pages for end-user (83a46e5) Improved: Display NTP server domain and port when there is an error, and display message when NTP check is skipped (4a1bc07) Improved: Increase default MAX_TIME_DRIFT to 2000 (35f684a) Improved: Setup localisation (aa42ceb) Improved: Improved storage command (122afd6) New: Added command to delete database item content (01048f5) Improved: Allow disabling NTP time drift check (dc67eac) Improved: Do not set the SMTP auth option when user or password are not set (#5791 by @MovingEarth ) Improved: Increase default MAX_TIME_DRIFT to 100ms (8e54a65) Improved: Optimise reading from external storage when fallback driver is not present (4fecb08) Improved: Remove unique constraint errors from the log when they are already handled by the application (a6884a2) Improved: Retry NTP request up to three times when it fails (7eb1d89) New: Added task to compress changes older than 6 months (75f7296) Improved: Allow specifying a max content size when importing content to new storage (080c3cc) Improved: Check for time drift when the server starts (#5738) Improved: Display more debug info in error log (3716972) Improved: Display more detailed error messages on SQL query errors (42a4edb) Improved: Perform storage checks before starting services (16d5047) Fixed: Fixed HandleOversizedAccounts task interval (fc419d9) Improved: Prevent large data blobs from crashing the application (5eb3a92) Improved: Improved storage migration error handling, and improved storage test units (5a41d80) Improved: Rename "ReadOnly" mode to "ReadAndClear" to avoid any confusion (5cd4537) Improved: Hide more credentials from the log (73137cf) New: Added command to test a storage connection (c6dec0a) New: Added command to migrate content to different storage (005f720) Improved: Allow storing item content in database, filesystem or S3 (depending on config) (#5602) New: Add support for sharing notes when E2EE is enabled (#5529) Improved: Disable mailer service if no-reply email is not set (ce5c5d6) Improved: Display latest migration name after auto-migration (7ad73df) Improved: Immediately ask user to set password after Stripe checkout (9e1cb9d) Improved: Set resource content size when viewing published note (70d5c7a) New: Add support for faster built-in sync locks (#5662) Improved: Improved env variable handling to make it self documenting and enforce type checking (b5d792c) Improved: Improved logging and rendering of low level middleware errors (3704413) New: Add unique constraint on name and owner ID of items table (f7a18ba) Fixed: Fixed issue that could cause server to return empty items in some rare cases (99ea4b7) Improved: Remove session expiration for now (4a2af32) New: Added item owner ID, and allow disabling db auto-migrations (b655f27) Fixed: Fixed Stripe portal page redirection (9ba90b5) Fixed: Fixed items.owner_id migration (a753429) Fixed: Fixed display of latest migration in startup log (#5627 by @KowalskiPiotr98 ) Improved: Moved CLI commands to separate files (dca13b3) Improved: Delete all sessions when a password is changed or reset (b497177) Improved: Expire sessions after 12 hours (0ada1df) Improved: Improved task service log entries (bc5a853) Improved: Run oversized account task more frequently (2f09f88) New: Added tool to delete old changes (169b585) Fixed: Fixed issue when a notebook is shared, then unshared, then shared again (47fc51e) New: Add support for promotion codes (5b58811) Improved: Sort flags by date (31efc9b) Fixed: Fixed links in published notes (#5507) New: Add support for events and use them to track background tasks (79d1ad7) Improved: Allow manually deleting a user flag (3a11885) Improved: Also clear admin session ID on logout after impersonating a user (24945a0) Improved: Correctly attach Stripe sub to Joplin Server sub when it is recreated from Stripe (5da820a) Improved: Display banner when an account is disabled and provide reason (8c9331c) Improved: Only disable API access when an account is disabled (6fec2a9) Improved: Remove AccountOverLimit flag from accounts that are now below the limit (5de5370) Improved: Send reminder email every time a payment fails (2dd8045) Improved: Do not allow accepting share more than once (57a1d03) Fixed: Fixed Stripe checkout when a coupon is used (c45f961) Improved: Improved share service reliability and optimised performance (0175348) Security: Implement clickjacking defence (e3fd34e) New: Add support for changing user own email (63e88c0) Improved: Allow an admin to impersonate a user (03b4b6e) Improved: Allow entering coupon code on Stripe checkout page (4577c9c) Improved: Clear cookie when account has been deleted to allow viewing login page again (061761f) Improved: Exclude certain queries from slow log (4e70ca6) Improved: Handle Joplin Cloud failed subscription payments (a6b1cff) Improved: Improved support for background tasks and added admin UI to view them (cd877f6) Improved: Improved user list page (4d38397) Improved: Link to Joplin Cloud signup page on login page (d850eed) Improved: Manage subscription entirely from Stripe (7fac194) Improved: Redirect to user page after changing a user (c91d4bd) Improved: Rename admin button "Send reset password email" to more correct "Send account information email" (37d446b) Improved: Sync deleted items first to allow fixing oversized accounts (43c594b) Fixed: Fixed calculating total item size after an item has been deleted (024967c) New: Added support for app level slow SQL query log (5e8b742) Improved: Improve flag logic (c229821) Fixed: Fixed handling of brute force limiter by getting correct user IP (3ce947e) New: Add link to Stripe subscription page to manage payment details (4e7fe66) New: Add transaction info to debug deadlock issues (01b653f) New: Added Help page for Joplin Cloud (6520a48) New: Added icon next to profile button (5805a41) Improved: Display note title as page title when sharing note (82331c9) Fixed: Fixed calculation of max sizes for Postgres (93a4ad0) New: Add request rate limiter on session and login end points (543413d) New: Add support for user flags (82b157b) New: Added commands to control db migrations - list, down, up (2c79ce2) Improved: Display user flags in profile when logged in as admin (4394329) Improved: Handle flags for accounts over limit (6e087bc) Improved: Increase cookies security - set HttpOnly, Secure and SameSite flags (bcadb36) Improved: No longer install vim into the image (#5337 by @piotrb ) Improved: Re-enable account when new subscription is associated with it (ac82e4b) Improved: Switch to node:16-bullseye base image (#5202 by @piotrb ) Fixed: Prevent crash when returning too many rows using SQLite (1efe3d3) Fixed: Filenames with non-ascii characters could not be downloaded from published note (#5328) Fixed: Fix missing CSS file error (#5309 by @whalehub ) Fixed: Fixed second duration (c7421df) Fixed: Fix migrations (a9961ae) Fixed: Fix migrations (f518549) Fixed: Fixed pagination link styling (d42d181) Improved: Allow setting email key to prevent the same email to be sent multiple times (391204c) Improved: Clarify beta transition message (c4fcfec) Improved: Disable upload for accounts with subscription failed payments (f14c74d) Improved: Re-enable account when subscription is paid (4b5318c) Improved: Set better filename and mime type for files downloaded via published notes (#5286) Fixed: Fixed publishing of notes with HTML markup type (97726b0) Fixed: Fix regression (6359c9c) Fixed: Fixed layout of notes on mobile devices (#5269) Improved: Disable beta account once expired (785248b) Improved: Handle beta user upgrade (8910c87) Improved: Prevent duplicate Stripe subscriptions and improved Stripe workflow testing (6ac22ed) Fixed: Fixed support emails (724aa72) Improved: Allows providing a coupon when creating the Stripe checkout session (b5b6111) New: Add Docker major, minor and beta version tags (#5237 by @JackGruber ) New: Add support for Stripe yearly subscriptions (f2547fe) Improved: Improve installation instructions (53b4d7a) Fixed: Fixed certain URLs (282f782) Fixed: Published notes that contain non-alphabetical characters could end up being truncated (#5229) New: Added form tokens to prevent CSRF attacks (CVE-2021-23431) (19b45de) Improved: Allow admin to change Stripe subscription (75a421e) Improved: Allow enabling or disabling a user. Handle cancelling subscription. (27c3cbd) Improved: Allow user to upgrade account (e83ab93) Improved: Allow users to cancel Stripe subscription (b7e9848) Improved: Clarify error message when user info cannot be saved (4567b78) Improved: Explain how to use Joplin Server with a Joplin app (3f993af) Improved: Handle Stripe webhook receiving multiple times the same event (252d069) Improved: Make sure email URLs are displayed as clickable links (7245aea) Improved: Moved email templates to separate files (6a93cb2) Improved: Set default of env SUPPORT_EMAIL to "SUPPORT_EMAIL" to make it clear it needs to be set (92520e5) New: Added support for resetting user password (62b6198) Improved: Check password complexity (240cb35) Improved: Disallow changing email address until a secure solution to change it is implemented (f8d2c26) Fixed: Fixed mail queue as some emails were not being processed (89f4ca1) New: Add Docker image labels (#5158 by @JackGruber ) Fixed: Fixed change processing logic (5a27d4d) Fixed: Fixed styling of shared note (6c1a6b0) Improved: Make app context immutable and derive the per-request context properties from it (e210926) Fixed: Fixed issue with user sessions being mixed up (238cc86) Fixed: Fixed size of a database field (264f36f) Improved: Improved logging and reliability of cron tasks (d99c34f) Improved: Only emit "created" event when new user is saved (8883df2) New: Add support for account max total size (b507fbf) Improved: Display max size info in dashboard (3d18514) Improved: Hide "Is Admin" from dashboard (7447793) Improved: Moved Joplin-specific context properties under its own namespace (bfa7ea7) Improved: Normalize email addresses before saving them (427218b) Improved: Remove dangerous "Delete all" button for now (125af75) Fixed: Fixed accessing main website (Regression) (f868797) New: Add support for X-API-MIN-VERSION header (51f3c00) Improved: Split permission to share note or folder (0c12c7f) Fixed: Fixed handling of max item size for encrypted items (112157e) Fixed: Fixed transaction locking issue when a sub-transaction fails (12aae48) New: Add support for uploading multiple items in one request (3b9c02e) New: Added account info to dashboard and title to pages (7f0b3fd) New: Added way to batch requests (currently disabled) (c682c88) New: Added way to debug slow queries (e853244) Improved: Hide Reset Password button when creating new users (ac03c08) Improved: Sort users by name, then email (65c3d01) Improved: Allow sending reset password email from admin UI (479237d) Improved: Tokens would expire too soon (6ae0e84) Improved: Allow creating a new user with no password, which must be set via email confirmation (1896549) Improved: Allow creating a user with a specific account type from admin UI (ecd1602) Fixed: Fixed error message when item is over the limit (ea65313) Fixed: Fixed issue with user not being able to modify own profile (3c18190) Fixed: Fixed handling of user content URL (31121c8) New: Add navbar on login and sign up page (7a3a208) New: Added option to enable or disable stack traces (5614eb9) Improved: Handle custom user content URLs (a36b13d) Fixed: Fixed error when creating user (594084e) New: Add navbar on login and sign up page (7a3a208) New: Added option to enable or disable stack traces (5614eb9) Improved: Handle custom user content URLs (a36b13d) Fixed: Fixed error when creating user (594084e) New: Add Stripe integration (770af6a) New: Add request duration to log (c8d7ecb) New: Add terms and privacy page (db7b802) New: Added way to disable signup page, and added links between signup and login pages (75d79f3) Improved: Check share ID when uploading a note (3c41b45) Improved: Load shared user content from correct domain (de45740) New: Add version number on website (0ef7e98) New: Added signup pages (41ed66d) Improved: Allow disabling item upload for a user (f8a26cf) Fixed: Fixed Item and Log page when using Postgres (ee0f237) Fixed: Fixed handling of request origin (12a6634) New: Add mailer service (ed8ee67) New: Add support for item size limit (6afde54) New: Added API end points to manage users (77b284f) Improved: Allow enabling or disabling the sharing feature per user (daaaa13) Improved: Allow setting the path to the SQLite database using SQLITE_DATABASE env variable (68e79f1) Improved: Allow using a different domain for API, main website and user content (83cef7a) Improved: Generate only one share link per note (e156ee1) Improved: Go back to home page when there is an error and user is logged in (a24b009) Improved: Improved Items table and added item size to it (7f05420) Improved: Improved log table too and made it sortable (ec7f0f4) Improved: Make it more difficult to delete all data (b01aa7e) Improved: Redirect to correct page when trying to access the root (51051e0) Improved: Use external directory to store Postgres data in Docker-compose config (71a7fc0) Fixed: Fixed /items page when using Postgres (2d0580f) Fixed: Fixed bug when unsharing a notebook that has no recipients (6ddb69e) Fixed: Fixed deleting a note that has been shared (489995d) Fixed: Make sure temp files are deleted after upload is done (#4540) New: Add support for sharing notes via a link (ccbc329) New: Add support for sharing a folder (#4772) New: Added log page to view latest changes to files (874f301) Fixed: Prevent new user password from being hashed twice (76c143e) Fixed: Fixed crash when rendering note with links to non-existing resources or notes (07484de) Fixed: Fixed error handling when no session is provided (63a5bfa) Fixed: Fixed uploading empty file to the API (#4402) Fixed: Fixed password hashing when changing password Improved: Many other internal changes for increased reliability