What's new in EzyPlatform 1.0.8?
This release focuses on server-side JavaScript extensibility, improved user-role management, and more stable web/admin runtime behavior.
- JavascriptService – server-side JavaScript execution with flexible configurationIntroduced
JavascriptServicein the common SDK, along withAdminJavascriptServiceandWebJavascriptServicefor their respective runtimes. The service providesexecute(...)to run scripts with input parameters and expose beans into the JavaScript scope. Allowed beans can be configured viaSETTING_NAME_JAVASCRIPT_SERVICE_BEAN_NAMES, with defaults defined inAdminSettingConfig. This release also integrates Rhino for server-side JavaScript execution. - Extended UserRoleService for clearer role management
UserRoleServicenow includes methods such assaveUserRoleByUserIdAndRoleId(...),deleteUserRoleByUserIdAndRoleId(...), and multiplecontainsUserRole(...)checks by userId, roleId, roleName, or username.DefaultUserRoleServicefully implements these methods, making role assignment, removal, and validation more explicit and consistent across authorization flows. - Improved global error handling for web/admin runtime
WebGlobalErrorHandlerhas been refined to better distinguish between API requests and UI requests. TheprocessError(...)method now usesRequestURIManagerandmatchedUrito determine the request type. API requests return aResponseEntity, while page requests are routed through error endpoints such as/bad-request,/not-found, and/server-error. - SettingService improvements for absolute URL handlingThe methods
resolveAdminUri(...)andresolveWebUri(...)now preserve absolute URLs instead of always prefixing them with a base URL. This allows more flexible configuration when working with full domains or multi-environment setups. - Stricter external URL validation for enhanced security
DefaultValidator.isValidExternalUrl(...)has been significantly tightened. The new logic strictly validates localhost, direct IPs, private/internal ranges, multicast ranges, documentation/test ranges, and certain IPv6 cases. This is an important update for systems accepting external URLs from user input or configuration. - New endpoint to check media existence
WebApiMediaControlleradds the endpointGET /api/v1/media/{name}/containsviamediaNameContainsGet(...), returning aContainsResponse. This is useful for flows that need to verify media existence before upload, linking, or referencing. - Standardized link status with LinkStatus enumIntroduced the
LinkStatusenum and thegetAllLinkStatuses()method inLinkService. This provides a consistent reference for link states instead of relying on loosely defined string values. - Extended DataMeta filtering with exclusion support
DefaultDataMetaFilternow includesexclusiveMetaKeyandexclusiveMetaKeys, enabling metadata exclusion directly at the query builder level for more precise and flexible data retrieval. - Improved admin dashboard setting update flow
AdminDashboardControllernow includes SSL/domain status viaisSslDomain(...). UI functions such asupdateAdminSettings(),updateWebSettings(),setAdminUrl(),setWebUrls(),setTargetProperties(), andsetTargetVmOptions()have been refactored into a more sequential async flow, followed by a page reload upon completion. The UI also provides guidance for configuring domain and SSL when current URLs do not meet required conditions.