You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Configuration API: Introduces five new /api/v1/configuration REST endpoints (branding, locale, authentication, key regeneration) with semantic field names to replace legacy form-encoded APIs. (#34672)
Custom Fields: Adds a Settings tab to the Content Type field editor for custom fields, providing a native UI to configure hideLabel and render options (modal dimensions) without manual edits to the Field Variables tab. (#35027)
OSGi Plugins: Migrates the legacy Dojo/JSP OSGi Plugins portlet to a full Angular implementation with real-time WebSocket sync, drag-and-drop JAR upload, and context-menu actions per bundle. (#34957)
Relationship Field: Already-related items are now shown as disabled (with tooltip) in the "Select Existing Content" dialog for ONE_TO_ONE and ONE_TO_MANY relationship fields. (#35134)
Fixes and Known Issues
Multilingual Content: Fixes addContent() hanging indefinitely when DEFAULT_CONTENT_TO_DEFAULT_LANGUAGE=true causes mixed-language content re-submission, and corrects entity.containers incorrectly including wrong-language contentlets in the JSON response. (#35030)
Relationship Field: Fixes pagination showing the same items on every page by computing a paginatedData slice signal and correctly translating drag-reorder indices across pages. (#35126)
Relationship Hydration: Fixes GET /api/v1/content/{inodeOrIdentifier}?depth=N returning default-language relationships instead of the contentlet's actual language when fetching by inode. (#35168)
Velocity Templates: Escapes trailing bare $ in contentlet field values in FieldLoader.buildVelocity() to prevent a Velocity ParseException that caused ContentMap.get() to return null. (#35163)
Secrets: Fixes site-specific secrets not being resolved in background/Quartz workflow jobs — SecretTool now uses the contentlet's actual site hostname instead of falling back to System Host. (#35158)
REST API: Fixes non-admin users receiving an "Only Admin user can request a token for another user" error when issuing their own API token, caused by a reference equality (!=) bug. (#35166)
Rules Engine: Fixes the Rules dialog in Edit Content sending the site identifier instead of the page identifier to the rules engine by switching to an iframe pointing to the existing /dotAdmin/#/fromCore/rules?realmId={pageIdentifier} route. (#35159)
Inline Edit: Disables TinyMCE's convert_urls option to prevent root-relative asset paths (e.g. /dA/...) from being rewritten to relative paths on editor blur. (#35172)
Content Types: Fixes custom Page content types being rejected as valid detail pages by replacing a hardcoded "htmlpageasset" string check with a BaseContentType.HTMLPAGE base-type lookup. (#35175)
Content Palette: Restores the search bar visibility signal lost during modernization, and hides system content types (e.g. Dot Favorite Page) from the /api/v1/contenttype/page endpoint. (#35173, #35181)
Lara Theme: Fixes Firefox button styling in Containers/Templates Permissions tab, cross-browser file upload button hover, native <dialog> centering, login page "Remember Me" label wrapping, missing HEADING/INFO field rendering in Apps portlet, Tags bulk action toolbar, and Locales table UX. (#35157)
Infrastructure & Security
CI/CD: Registers OpenSearchUpgradeSuite in the CI test matrix with the OpenSearch 3.x upgrade container to validate upgrade compatibility automatically. (#35133)
CI/CD Diagnostics: Fixes the cicd-diagnostics skill misidentifying continue-on-error steps as root failures; adds diagnose.py as a single entry point with progressive subcommands. (#34866)
Content Types: Removes the deprecated Relationships tab from the Content Type editor along with all backing legacy JSP pages, Struts actions, and form beans. (#35167)
UVE: Improves logging and error handling in the UVE script injection flow, with graceful fallback when script building fails. (#35128)
Frontend: Replaces [ngClass] with idiomatic [class] and [class.class-name] bindings across several Angular components. (#35155)
Docker: Updates CUSTOM_STARTER_URL across all Docker Compose example configurations to starter version 20260331. (#35135, #35169)
Documentation: Updates plugin-seeds repository references to dotcms-community/plugin-examples. (#35171)