Highlights & New Features
-
Instant Real-Time Sync (WebSocket Event Stream):
- Jellyfin and Emby plugins can now connect directly to Posterizarr’s live WebSocket event stream (
/ws/events). - When Posterizarr finishes rendering or replacing an asset (Movie poster, Show backdrop, Season poster, or Episode title card), it is streamed and applied directly to Jellyfin/Emby items in < 1 second — eliminating the wait for scheduled tasks or library scans.
- Updates the persistent plugin sync cache immediately so future scheduled scans skip already-synced items.
- Jellyfin and Emby plugins can now connect directly to Posterizarr’s live WebSocket event stream (
-
Non-Intrusive Engine Integration (
LogsWatcher):- Automatically detects newly appended items from
ImageChoices.csvas runs complete. - Baseline tracking prevents re-broadcasting historical assets when the server starts or restarts.
- Automatically inspects asset mounts to resolve extensions.
- Automatically detects newly appended items from
-
Security Hardening & Robustness:
- Header-Only Authentication: Posterizarr API keys are transmitted strictly via
X-API-KeyHTTP headers (never exposed in URLs or query strings). - CWE-22 Path Traversal Defenses: Plugins canonicalize all received file paths and verify they strictly reside within the configured asset root folder.
- Cross-Container Volume Flush Retries: Added a 2-second retry window to smoothly absorb Docker storage mount latency.
- Dual Key Deserialization: Event payloads support both
snake_caseandcamelCasefor universal compatibility across all plugin versions.
- Header-Only Authentication: Posterizarr API keys are transmitted strictly via
-
Jellyfin Plugin Catalog Branding:
- Added official 16:9 banner
imageUrlto repository manifests (manifest.jsonandmanifest-dev.json) for display in the Jellyfin Plugin Catalog.
- Added official 16:9 banner
Jelly/Emby Plugin Changes:
- WebSocket Real-Time Sync: Added background listener service connecting to
/ws/eventsfor instant image updates. - Direct Image Application: Streams and persists image updates directly using internal provider APIs upon receiving events.
- Enhanced Configuration Page: Added Real-Time Sync toggle, Posterizarr URL input, and API key configuration with live connection test diagnostics.
- Volume Latency Tolerance: Added 2-second retry loop for newly created image files.
- Catalog Image: Configured
imageUrlin repository manifests.
What's Changed
- Real-Time WebSocket Media Server Sync & Plugin Branding by @fscorrupt in #659
- fix: Information exposure through an exception (CodeQL Scan) by @fscorrupt in #661
Full Changelog: 3.3.3...3.3.4