v3.0.0 - Ardennais 🐴
We're releasing a major update, with PostgreSQL support being the key highlight. While this is a significant change, we’ve worked hard to keep things smooth and maintain compatibility. Alongside this, there are many other improvements and fixes, all designed to enhance stability, security, and performance. We’ve followed our backward compatibility promise wherever possible, so most users shouldn’t experience any disruptions. If anything unexpected comes up, let us know!
🚀 Highlights (Major Changes)
- PostgreSQL support for Registry (#533, #534, #542)
- Multi-language template support (#382)
- Added structured logs support for Registry (#531)
- NewRelic native metrics for better monitoring (#404, #405)
- Node.js 16 & 20 support (#395, #538)
- Added
/api/v1/entries/:fqrn
endpoint to update common properties for general entities (like localization manifest) in Shared libraries and Applications (#475) - New API for localized templates (#610, #613)
- Significant security fixes for open redirect vulnerabilities (#520, #615, #618, #621, #622, #628)
🏗 Core / Server
- Added: ILC TypeScript support (#560)
- Added: Encapsulated error classes for better logging (#461)
- Improved: Structured logging with better context (client IP, paths) (#554, #561, #584)
- Changed: Switched from
window.console
to reporting plugin fromilc-plugins-sdk
(#472) - Fixed: Handling of transition for clientless routes (#555)
- Fixed: Improved SSR-only applications to load on the client-side (#519)
🔀 Routing & Templates
- Added: Optional slots for routes and templates (#411, #413)
- Added: Customizable static error page (#437)
- Added: Global
onIntlChange
handler for locale updates (#451) - Added: Support for redirect HTTP codes in transition plugin (#629)
- Improved: Increased default request payload limit to 1MB (#541)
- Fixed: Trailing slash and asterisk issues in route handling (#406)
- Fixed: Default error behavior for CORS-related errsors (#458)
📦 Registry / Database
- Added: PostgreSQL support for Registry (#533, #534)
- Added: Ability to select PostgreSQL search path (#542)
- Added:
versionId
field to Registry and responses (#575, #576, #579) - Added: Registry UI filters for applications and templates (#607)
- Improved: Registry structured logging (#531)
- Fixed: Retrieval of routes by ID from MySQL (#412)
- Fixed: Invalid parsing of URLs like '///' in Registry (#535)
🔒 Security & Authentication
- Added: Restriction to prevent exposure of unrelated registry configurations (#422)
- Fixed: Open redirect vulnerabilities (#520, #615, #618, #621, #622, #628)
- Fixed: OpenID identifier match (case-insensitive) in Registry (#551)
- Fixed: Access log fixes to ensure correct path logging (#492)
- Fixed: Handling of OpenID login errors due to missing strategy registration (#385, #386)
📊 Monitoring & Logging
- Added: Structured logs for Registry (#531)
- Added: NewRelic native metrics for better monitoring (#404, #405)
- Added: Audit message on login (#553)
- Improved: Error obfuscation fixes for better debugging (#462, #466)
- Fixed: Status code changed from 503 to 500 for registry template render errors (#540)
🌍 Localization & Internationalization
- Added:
getSettingsByKey
method to read key settings (#451) - Added: Support for
data-ilc-instructions
attribute in Link header for CSS stylesheets (#564) - Added: Ability to send current domain as a fragment URL parameter (#568)
- Fixed: Handling of
i18nCookie
when missing on the client (#566)
🚀 Performance & Asset Management
- Added: Tracking and removal of unused CSS files (#428)
- Added: Wrapper for CSS tracking for dynamically loaded apps (#431)
- Improved: Assets discovery worker stability (#597)
- Fixed: CSS removal when cloned DOM nodes were still alive (#429)
- Fixed: Unmounting of CSS for embedded apps (#611, #616, #619, #624)
🐞 Bug Fixes
- Fixed: Transition issues between routes with different templates (#415)
- Fixed: Registry service caching errors (#557)
- Fixed: Unhandled promise issue when slot blocker timeout occurs (#548)
- Fixed: Infinite
useEffect
issue causing performance degradation (#528) - Fixed: Issues with duplicated
TransitionManager
instances (#454)
📖 Documentation & Maintenance
- Added: Documentation for routing system, transitions, and matching patterns (#354, #357, #363, #365, #366)
- Improved: Registry API documentation (#375, #376, #377, #380, #383, #384, #387, #388, #389, #390)
- Refactored: Code cleanup and performance optimizations (#452, #571)
Docker images:
- namecheap/ilc:
3.0.0 3.0 3
- namecheap/ilc_registry:
3.0.0 3.0 3