Commit Graph
32 Commits
Author SHA1 Message Date
Daniel Hiller bd487e3f9f fix: Prevent path traversal in local file manager
The local file manager joined attacker-controlled path segments into the
uploads storage path without ensuring the result stayed under the uploads
root. Any authenticated user could read arbitrary files readable by the
Planka process (e.g. /etc/passwd, /app/.env) via `../` sequences on the
/user-avatars/*, /background-images/* and /favicons/* routes (CWE-22).

Resolve the path and enforce it stays within uploadsBasePath, centrally in
buildPath so every local file operation is covered. Additionally resolve
symlinks in read() and re-check containment, so a symlink inside the root
cannot be used to escape it.

Reported by Alpesh (github.com/Alpastx).
2026-08-10 03:00:29 +02:00
Daniel Hiller 2684198bf8 chore: Update version 2026-08-09 22:36:27 +02:00
Daniel Hiller 3ef87a8603 feat: Add configurable auto logout on inactivity
Users can pick an inactivity timeout in their preferences. A warning
appears 30 seconds before, and activity or a logout is synchronised
across open tabs.
2026-08-08 00:24:16 +02:00
Daniel Hiller a9d0c228df feat: Replace user edit popups with a single modal
Editing a user now opens a modal with an information tab and an API
key tab instead of a chain of popups. The user name in the list opens
it, and the admin two-factor reset moves in as well.
2026-08-08 00:16:35 +02:00
Daniel Hiller a6f6af8a6c fix: Replace Pro theme tokens with literal colors
The two-factor stylesheets were carried over from the Pro edition and
referenced CSS custom properties from its theme system, which this
edition does not define. They silently fell back to browser defaults.
2026-08-08 00:15:34 +02:00
Daniel Hiller 2e4904f77d feat: Add two-factor authentication via TOTP
Adds TOTP setup with QR code, login challenge, recovery codes and
trusted devices that let a browser skip the second factor for 30
days. Admins can reset another user's second factor by confirming
with their own password.
2026-08-07 20:11:55 +02:00
Daniel Hiller 36aa732fec feat: Remove OIDC and SSO support
Existing SSO accounts have no local password, so the migration
deactivates them before dropping is_sso_user and the
identity_provider_user table.
2026-08-07 19:15:43 +02:00
Daniel Hiller a1f0a2b3fa chore: Update dependencies 2026-08-07 16:45:51 +02:00
Daniel Hiller ebb9d6879e ci: Align workflows with Node 24 2026-08-07 16:36:02 +02:00
Daniel Hiller 3a9eea3020 ci: Drop armv7 from Docker image builds 2026-08-07 16:30:19 +02:00
Daniel Hiller bec5dd1597 chore: Update dependencies
Bump Node to 24 in Dockerfile and Dockerfile.dev.
Bump sharp to 0.35, nodemailer to 9 and concurrently to 10.
Add overrides for body-parser, qs, multiparty, uuid, diff,
serialize-javascript, linkify-it and svgo to pull in security fixes
that upstream pins block.
Rename the sails patch to match 1.5.18.
2026-08-07 16:17:24 +02:00
Daniel Hiller a8dcd7cef3 chore: Remove global npm update step from build workflow 2026-04-18 15:23:53 +00:00
Daniel Hiller 6e2e6539d1 chore: Update what's new documentation 2026-04-18 15:19:56 +00:00
Daniel Hiller e429b478ca chore: Bump version to 2.1.1 and update release notes 2026-04-18 15:10:14 +00:00
Daniel Hiller cd9ba8ff4f feat: Add Pro features discovery banner
Adds a dismissible banner in the topbar that informs users about
PLANKA Pro features.

- Dismissible per-user (stored in localStorage)
- Reappears after 30 days
- Rotates between main message and 3 feature highlights
- Links to planka.app/pro (with ref parameter for anonymous source attribution)
2026-04-18 13:32:22 +00:00
Daniel Hiller 4e23f3c8a9 refactor(docker): Remove global npm installation from Dockerfiles 2026-04-18 13:32:22 +00:00
Daniel Hiller 84b40ac67d CI: Fix dev Build 2024-04-16 03:43:54 +02:00
Daniel Hiller 752a73711b Update branch 2023-12-21 00:51:17 +01:00
Daniel Hiller 55d60d6c24 ci: Add retry on failure 2023-12-20 23:50:51 +01:00
Daniel Hiller 804a888827 ci: Switch to matrix workflow 2023-12-20 23:28:35 +01:00
Daniel Hiller 43f196c9e6 docs: adjust filenames to match the docs 2023-10-24 13:17:49 +02:00
Daniel Hiller d789498c2d ci: ignore some paths on push 2023-10-22 22:47:39 +02:00
Daniel Hiller 0a507da408 chore: update version 2023-10-22 22:31:10 +02:00
Daniel Hiller ed48090b6b fix: add admin user variables 2023-10-22 22:27:25 +02:00
Daniel Hiller c21e9cb60a CI: Add prebuild planka package on release 2023-09-30 01:59:09 +02:00
Daniel Hiller 9e2ae17dc0 Meta: Add missing return 2023-09-23 03:48:32 +02:00
Daniel Hiller 909a2ad41a Meta: Add Automated installation 2023-09-23 03:47:46 +02:00
Daniel Hiller 1dc8560618 chore: fix docker dev build 2023-09-14 01:27:29 +02:00
Daniel Hiller 21dedd00e0 chore: fix runs-on name 2023-09-13 22:55:09 +02:00
Daniel Hiller ca42b5cb77 chore: Switch to self hostet action runner 2023-09-13 22:47:08 +02:00
Daniel Hiller 88b058ad9d chore: Add dev container, based on latest commit 2023-09-13 22:39:37 +02:00
Daniel Hiller ff3cb6a1c8 chore: Switch to pnpm package manager 2023-09-13 22:38:37 +02:00