What's new in EzyPlatform 1.4.0?

EzyPlatform 1.4.0 is a major release introducing Local Settings, a significantly enhanced Data Index Search engine, improved Market integration, expanded media access control, a redesigned Admin Settings interface, and numerous SDK and platform improvements for plugin development and system operations.
  1. Added Local Settings
    The platform now supports Local Settings, which are stored in data/local-setting.properties and allow configuration values that apply only to the current server. Administrators can view and edit Local Settings directly from the Admin Settings page through the PUT /api/v1/settings/local API. The local settings cache is automatically synchronized whenever the file is modified.
  2. Enhanced Data Index Search
    Data Index Search has been significantly expanded with new search capabilities. The platform introduces DataTypeIdModel and DataTypeIdResult, supporting searches across multiple dataType values and keywordPrefix. Free-text search now uses Reciprocal Rank Fusion (RRF) to combine results from multiple keywords for improved relevance. Stop words, keyword split regex, maximum keyword count, minimum keyword length, and the RRF coefficient are all configurable through Settings.
  3. Extended Data Index support for Socket
    Added SocketDataIndexRepository and SocketDataIndexService, allowing Socket modules to share the same indexing and search capabilities as the rest of the platform.
  4. Added Configuration Properties Manager
    Introduced ConfigurationPropertiesManager and SocketPropertiesManager to load Socket configuration from socket/settings/config.properties and socket/settings/ezy-settings.json. Default values are automatically provided for TCP, UDP, WebSocket, and SSL WebSocket ports when configuration values are missing.
  5. Support for multiple Market URLs
    EzyPlatform now supports multiple Market endpoints through market.url and market.urls. All Market requests now include a marketUrl parameter, accept only whitelisted URLs, and automatically fall back to https://ezyplatform.com when no valid configuration is available.
  6. Improved module installation and updates
    The Market installation and update workflow has been enhanced to search across multiple Market servers. The platform can now resolve dependencies, discover the latest module version, and install modules using the correct marketUrl. Dependency validation has also been migrated to the batch endpoint /released-projects/check-existing for improved performance.
  7. Added "Only Me Can View" media permission
    Media now supports an Only Me Can View access mode, stored using the access_to_owner_only metadata key. Even administrators with permission to view all media cannot access owner-only media unless they are the owner. The accessToOwnerOnly property has also been added to media requests, models, and detail responses.
  8. Refactored the Admin Settings interface
    The Settings interface has been split into dedicated fragments, including setting-list.html, local-settings.html, and separate add/edit setting dialogs. Pagination limits can now be selected from 12, 30, 50, 100, 200, 300, and 500.
  9. Added a right-side toolbar in Admin
    The Admin interface now includes a fixed right-side toolbar featuring a Dark Mode toggle, expandable and collapsible states persisted in localStorage, and a new extension point, rightToolbarToolFragments, allowing plugins to add custom tools.
  10. Improved Dark Mode
    Dark Mode has been refined across tables, links, hover states, and shared color definitions by leveraging CSS variables, providing a more consistent visual experience.
  11. Extended meta filtering in the HTTP SDK
    DefaultAdminMetaFilter and DefaultUserMetaFilter now support filtering by metaKey, excluded metaKey, exclusiveMetaKeys, metaValue, and likeKeyword. DefaultDataMetaFilter has also been extended to support filtering by metaValue.
  12. Improved Content Templates
    Added new Service and Repository APIs for retrieving available content template statuses. Database indexes have also been added for template_type and status to improve query performance.
  13. Optimized Data Meta queries
    Added the index_data_type_meta_key_meta_value_id database index on data_type, meta_key, meta_value, and id, significantly improving metadata lookup performance.
  14. Enhanced SQL Runner
    SQL Runner now supports executing scripts across multiple projects. Standard scripts are executed before alter scripts, and when processing multiple projects, failures can be logged individually without stopping the entire execution batch.
  15. Improved Data Appender
    Data Appender start and stop states are now persisted in Local Settings. The isRunnable() method first checks Local Settings before falling back to the master server status. A new restart() method has been added, and AdminDataRemover has been removed from the scheduler.
  16. Updated default configuration and translations
    The default ezyplatform.version in the Admin configuration has been updated from 1.3.5 to 1.3.9. New translations have also been added for limit, local_settings, and only_me_can_view in Vietnamese, Japanese, Korean, and Chinese.