Whats new:
- S3 uploads do now work with and without path elements in the filename, and the "Include Subdirectories" slider has an actual effect:
- The exception it a remote motionEye instance does not respond to HTTP requests at all is now properly handled:
- It is now possible to do S3 uploads with SSE-C server-side encryption enabled, defining the base64-encoded key:
- Cameras can now be flagged as admin-only, which hides them from the normal/surveillance user GUI and requires admin credentials to access their API:
- The
picture/ID/currentAPI has been fixed for requests which are not done withinmjpg_client_idle_timeout(default: 10) seconds after another: - Python 3.14 compatibility has been fixed:
- Accessing camera streaming with digest authentication enabled has been fixed @MichaIng:
- Streaming access is not automatically done via normal/surveillance user credentials anymore, instead one needs to enter username and password for each streamed camera individually. In the same turn, streaming is disabled by default, and needs to be enabled explicitly. On motionEye upgrade, existing camera re-streams are not affected, but we recommend to check whether re-streaming is needed, and if so, to apply individual credentials for each camera:
- Our CI/CD tests have been hardened and extended, applying certain coding standards and typing across our code more widely:
- Our frontend went through some major cleanup: removing obsolete scripts, updating all other scripts, updating or jQuery methods, or switching to vanilla JavaScript, and merging some of the frontend input validators to reduce the number of event listeners @MichaIng:
- Passwords and usernames with special characters for RTSP network cameras do not cause authentication issues anymore:
- API requests via basic authentication with
http_basic_auth trueinmotioneye.confdo not fail anymore: - The
motionconfiguration files are now created and stored with0600UNIX mode, to prevent read access for anyone but the motionEye daemon user and root @MichaIng: - Any file or directory paths passed via API requests or internally do now cause a 403 response or exception respectively, when containing traversal path elements:
- Several translation updates, many thanks to all @weblate contributors ❤️
🚨 Since this version contains a number of security-related changes, we highly recommend to update your instances ASAP 🚀.