Loading installer base images from remote URLs is no longer supported for security reasons. Administrators using custom base images should place the SQL file in the appropriate local `db/` directory and reference it locally.
PHP CLI paths are now validated before execution. Administrators using a custom or non-standard PHP CLI path should ensure that it points to a valid PHP executable.
2. Security
[+]Language: block path traversal and PHP injection in translation editor
[+]API tokens: strengthen token generation and storage
Generate API tokens with cryptographically secure randomness and store only SHA-256 verifiers instead of plaintext tokens, while adding support to revoke all API and OAuth tokens.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10982
[+]Harden auth tokens and tighten token access controls
Strengthen authentication tokens with HMAC-SHA256 signing and a per-installation secret, improve token validation and usage limits, and add support for rotating the signing secret to revoke existing tokens.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10983
[+]MediaWiki importer: prevent path traversal in attachment filenames
[+]TikiAccessLib: refactor CSRF handling and remove unnecessary logging
Improve CSRF handling for login and password changes, add brute-force protection to password-change attempts, and avoid logging sensitive GET/POST request data in CSRF error logs.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10986
[+]Harden remember-me cookies and invalidate them after password changes
Strengthen remember-me cookies with session-aligned Secure, HttpOnly, and SameSite attributes, centralize their handling, and invalidate existing remember-me tokens after a password change.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10991
[+]Installer: prevent SQL injection in database user provisioning
Validate database names and users, safely quote credentials in GRANT queries, and restrict database-user creation to initial installation to prevent SQL injection during setup.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/11001
[+]API: prevent tracker/form data from being cached in wiki page responses
[+]FileGals: make file delete permissions consistent across all views
Standardize file deletion permission checks across File Gallery views, allowing file owners to delete their files consistently in both the standard gallery and elFinder interfaces.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10830
[+]Element Plus Select: keep remote multiple selects usable after selection
Prevent duplicate options in remote multiple-select fields by deduplicating results while preserving already selected values, keeping the selector usable after a selection.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10858
[+]Cookie consent: preserve category keys in defaults
[+]Calendar: correctly import all-day events from ICS files
Detect all-day events from ICS DTSTART values even when the Tiki-specific X-Tiki-Allday property is absent, ensuring imported events are correctly marked as all-day.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10967
[+]MediaWiki importer: block unsafe attachment URLs and sanitize filenames
Harden MediaWiki attachment imports by allowing only public HTTP(S) URLs, blocking local or private network targets, and sanitizing filenames to prevent SSRF, local file access, and path traversal.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10951
[+]MediaWiki importer: block unsafe attachment URLs and sanitize filenames
Harden MediaWiki attachment imports by allowing only public HTTP(S) URLs, blocking local or private network targets, and sanitizing filenames to prevent SSRF, local file access, and path traversal.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10951
[+]User mentions: replace modal with inline suggestions dropdown
[+]Date Time field: use current date on initial display
Fix Tracker Date Time fields so the default year is based on the current date instead of displaying a date far in the past when no value has been submitted or stored.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/11029
[+]Installer: avoid secdb duplicate key during release packaging
Move InstallerDatabaseSetupTest into the correct lowercase lib/test/core directory on Tiki 29.x, preventing duplicate index.php entries in tiki_secdb that could cause fresh installations to report SQL failures
https://gitlab.com/tikiwiki/tiki/-/merge_requests/11035
4. Enhancements
[+]System configuration: support multiple INI files
Allow Tiki to load multiple system configuration INI files in a defined order, with later files overriding earlier ones while preserving compatibility with the legacy single-file configuration.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10237
[+]GetStringsCommand: add custom translation and string preservation options
Enhance getstrings with support for extracting custom translations, including strings from wiki pages, and add --skip-remove to preserve translations no longer found during scans.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10852
[+]Calendar: export all events from selected calendars
Regenerate the npm lock file using Node.js 20 to restore compatibility with the supported build environment and avoid dependencies requiring newer Node.js versions.
https://gitlab.com/tikiwiki/tiki/-/merge_requests/10805