github Vateron-Media/XC_VM 2.5.2
v2.5.2

pre-release4 hours ago

๐Ÿš€ XC_VM v2.5.2

โœจ Major Features

๐ŸŽฌ Player v2

  • Added the new Player v2 web application with dedicated frontend assets, SPA scripts, styles and vendored libraries.
  • Added Player v2 access-code authentication and scope wiring.
  • Added stream and subtitle token generation through the centralized token system.
  • Added Active Code login support for Player v2.
  • Hardened Player v2 against IDOR and XSS vulnerabilities.
  • Added output restrictions and protection against empty output configurations.
  • Improved legacy player integration and controller compatibility.
  • Restored player resize authorization checks.
  • Made channel listings fail-closed when ACL validation fails.
  • Added escaping for catalog poster URLs and category emoji.

๐ŸŽŸ๏ธ Active Codes & Category Templates

  • Expanded the Smart Activation Codes system with the complete code lifecycle.
  • Integrated Active Codes into reseller and admin line/MAG workflows.
  • Added category-template custom_data support to activation codes.
  • Added admin and reseller interfaces for Category Templates.
  • Added automatic application of template custom_data to supported entities.
  • Restricted applyToAll operations according to template visibility.
  • Improved Active Code tables using the standard DataTable implementation.
  • Localized Active Code management pages and restored missing ac_* translations.
  • Added server-side voucher details rendering.
  • Fixed package and bouquet selection, null handling and reseller portal URLs.
  • Fixed device-locked activation codes so they can only be used by their assigned device.
  • Prevented concurrent requests from activating the same code more than once.
  • Fixed an information disclosure issue where locked codes could expose their bound MAC address.

๐Ÿ” Security

  • Added a unique per-install OPENSSL_EXTRA secret for stronger installation-specific cryptographic isolation.
  • Added tamper-proof stream tokens using AES-256-GCM, configurable per panel.
  • Hardened stream authentication by performing constant-time comparisons for shared secrets and HMAC stream links.
  • Hardened admin and reseller authentication with fresh session IDs and improved session-cookie handling.
  • Restored login flood protection for blocked addresses.
  • Hardened image-resize requests against SSRF and DNS rebinding.
  • Added TLS verification for outbound image requests, with TLS verification disabled only for trusted servers.
  • Removed credentialed reflected-Origin CORS behavior from the Player API.
  • Hardened reseller API authentication against operator-precedence issues.
  • Prevented empty output configurations from bypassing authorization logic.
  • Improved device and activation-code authorization boundaries.

๐Ÿ—๏ธ Bootstrap & Core Architecture

BootKernel

  • Replaced the monolithic procedural XC_Bootstrap flow with an injectable BootKernel pipeline.
  • Added dedicated PSR-4 ConstantsInitializer and ErrorResponder components.
  • Consolidated legacy bootstrap prelude shims into ConstantsInitializer::init().
  • Routed Web API database initialization through the shared bootstrap stages.
  • Removed redundant require_once operations from the streaming bootstrap path.
  • Centralized STATUS_* initialization.
  • Added explicit handling for bootstrap stage skip paths and side-effect stages.
  • Converted remaining procedural prelude code into backward-compatible shims.
  • Added documentation describing the purpose and lifecycle of the bootstrap system.
  • Removed stale documentation references to the old prelude files.

โš™๏ธ Configuration

  • Moved frequently edited release constants to clearly visible top-of-file define() declarations.
  • Improved boolean configuration handling with the corrected getBool() behavior.
  • Hardened Web API profile guards and handling of falsy HTTP status codes.
  • Fixed fanout idle-buffer ratio handling so decimal values such as 0.25 are accepted.

๐Ÿงน Code Quality & Refactoring

Rector Migration

  • Added a dedicated Rector refactoring infrastructure with configuration, documentation and Make targets.
  • Applied reviewed Rector transformations across core, streaming, public controllers and Ministra components.
  • Performed multiple convergence passes to simplify control flow and remove dead code.
  • Decomposed RadioService::process() and its massEdit() logic into smaller tested helpers.
  • Improved type declarations throughout the codebase.
  • Corrected overly restrictive automatically inferred parameter types.
  • Added nullable PID support across process-management paths.
  • Restored access-control conditions affected by automated transformations.
  • Reverted unsafe __DIR__ include transformations that could break table loading.
  • Converted inline \XcVm\... fully-qualified references to normal PSR-4 imports.
  • Reworked database access to use DatabaseAware::db() instead of passing the global $db through call chains.
  • Added additional Router, Translator and parsing cleanups.

๐ŸŽจ Coding Standards

  • Adopted the project's K&R + tab formatting convention across the codebase.
  • Required parameter type hints as part of the coding-standard migration.
  • Updated PHPCS rules and documented the remaining exceptions.
  • Kept extract() prohibited while explicitly allowing selected safe is_null() usage.
  • Resolved PHPStan and PHPCS failures introduced during the refactoring work.
  • Updated the PHPStan dependency.

๐Ÿงช Testing

  • Added broader bootstrap tests covering stage execution, skipped stages and side effects.

  • Added a dual-backend test database supporting SQLite and MariaDB.

  • Added panel-aware test skipping for environments where integration tests cannot run.

  • Expanded core test coverage for:

    • Database and migrations
    • Settings and repositories
    • FileCache
    • Authorization
    • Brute-force protection
    • DomainResolver
    • RequestManager
    • XML streaming
    • HTTP request abstractions and sanitizers
    • Update channels
    • Module extension registries
  • Added tests for ChannelService mass-edit and ordering branches.

  • Improved the SQLite test harness after strict-typing changes.

  • Moved phpunit.phar into the tests/ directory and updated references.

  • Reduced test-run noise from stdout and error_log.

๐Ÿ“Š Admin UI

  • Restored the Users navigation tabs from the bottom "More" catch-all menu.
  • Fixed saving edits from the new UI returning an empty page.
  • Fixed adding streams without an icon.
  • Fixed deletion of unpaired MAG and Enigma2 devices.
  • Restored the Streams page Resources column data.
  • Fixed CPU information so it is populated correctly from the first resource pass and remains available.
  • Added responsive-table configuration at the panel level.
  • Added profile appearance/customizer options to the user profile editor.
  • Added bouquet sorting controls for moving entries up, down, to the top or to the bottom.
  • Applied the live-channel filter correctly on the live connections page.

๐Ÿ“บ VOD & Streaming

  • Added MediaAnalyzedEvent dispatch after successful VOD media analysis.
  • Improved VOD stream Range worker lifetime during concurrent requests.
  • Exposed bouquet ID, name and order through bouquet listing output.
  • Added safeguards around cached FileCache instances and static cache deletion helpers.
  • Fixed database connections to explicitly use utf8mb4.
  • Improved handling of nullable database hosts for CLI bootstrap compatibility.
  • Fixed CLI monitor crashes caused by nullable process IDs.
  • Fixed server permission handling when permissions are null.
  • Improved live/on-demand and fanout-related authentication and process handling.

๐Ÿ› ๏ธ Stability & Bug Fixes

  • Fixed stream resource reporting and restored missing resource information.
  • Fixed new UI edit submissions returning empty responses.
  • Fixed stream creation when no icon is supplied.
  • Fixed deletion of devices that have not yet been paired.
  • Fixed several nullability issues exposed by stricter typing.
  • Fixed transactional database operations so an Error also triggers a rollback.
  • Fixed concurrent on-demand viewer startup so multiple viewers do not start the same stopped stream more than once.
  • Fixed various authentication, access-control and process-management edge cases.
  • Fixed stale configuration and documentation references left behind by the bootstrap migration.

๐Ÿ“š Documentation & Maintenance

  • Reworked bootstrap documentation to describe the new BootKernel architecture.
  • Updated contributor and development infrastructure to support the ongoing Rector/PSR-4 modernization.
  • Removed obsolete bootstrap references and unused legacy code paths.
  • Integrated dependency updates and community pull requests.
  • Continued migration toward stricter typing, test coverage and maintainable PSR-4 architecture.

Don't miss a new XC_VM release

NewReleases is sending notifications on new releases.