What's new in EzyPlatform 1.3.3?

This release improves Web/Admin/Socket URL management for multi-server deployments, enhances media management with public visibility APIs and original filename support, and streamlines Admin settings and media workflows.
  1. Improved URL management for multi-server environments
    Refactored Web, Admin, and Socket URL handling to better support multi-server deployments. SettingService now provides getCurrentWebServerUrl(), getCurrentServerWebSocketUrl(), and resolveCurrentWebServerUri(...). The platform also supports overriding these values through server.web_url and server.websocket_url, automatically falling back to the shared web_url and websocket_url settings when no override is configured.
  2. Enhanced Admin dashboard and Settings APIs
    The Admin Dashboard now uses currentWebServerUrl for management APIs such as health check, CPU usage, memory usage, API information, and live-time monitoring. Socket monitoring now connects through currentServerWebSocketUrl. Added a new GET /api/v1/settings/web-url endpoint, support for sortOrder in the settings API, and a GET /api/v1/settings/names/{name} endpoint for retrieving individual settings. Settings pagination and response decoration have also been refactored into dedicated controller services.
  3. Improved Admin usability
    Added username input guidance to the Admin and User creation screens. New shared view variables are now available, including adminUrl, webUrl, websocketUrl, currentWebServerUrl, and currentServerWebSocketUrl. New localization entries have also been added for username guidance and media URL path labels across supported languages.
  4. Media public visibility management
    Added new Admin and Web APIs for retrieving and updating the public visibility of media by name. The platform now supports GET, PUT .../public, and PUT .../unpublic endpoints. Permission checks ensure that administrators must either own the media or have full-media permissions, while users may only modify media they own. A new MediaPublicResponse model has also been introduced.
  5. Original filename support
    Media can now update its originalName through UpdateMediaRequest, UpdateMediaIncludeUrlRequest, and UpdateMediaModel. The converter now merges originalName into the entity when a valid value is provided. Validation has been extended to ensure the field is not blank and does not exceed MAX_MEDIA_ORIGINAL_NAME_LENGTH.
  6. Expanded media name validation
    Media filename validation now supports Unicode characters, numbers, spaces, and additional commonly used symbols such as ()[]+~!@$%^&=-. This provides greater flexibility while maintaining validation consistency across the platform.
  7. Improved Media Details modal
    The Media Details dialog has been redesigned to provide a richer editing experience. Administrators can now edit both the filename and original filename, view Admin original URLs, Admin random URLs, and Web original URLs, and copy each URL path individually. The media update form has also been streamlined, with improved internal URL handling and simplified frontend validation.
  8. Better media service and validation
    MediaService.updateMediaPublicIfExists(...) now returns the updated MediaModel after changing the media's public status, allowing event handlers to receive the latest media data. Additional unit and integration tests have also been added for media validation, media converters, and numeric utility classes.
  9. Breaking and compatibility notes
    The web_management_url setting has been completely removed from both the configuration UI and update APIs. Applications using SettingService.getWebManagementUrl() or resolveWebManagementUri() should migrate to getCurrentWebServerUrl() and resolveCurrentWebServerUri(...). In addition, MediaService.updateMediaPublicIfExists(...) now returns a MediaModel instead of void.