Releases: dotCMS/core
Releases · dotCMS/core
Release 26.05.22-01
Release: v26.05.19-01 → v26.05.22-01
Features & Enhancements
- Analytics: New
DotAnalyticsCountPipestandardizes compact/full count formatting across the analytics dashboard, with improved tooltips and ARIA labels on pageview bar charts. (#35744) - Push Publishing:
AllPushPublishEndpointsFailureEventandSinglePushPublishEndpointFailureEventnow carry an optionalList<EndpointFailureDetail>payload with HTTP status,FailureCategory(auth/authz/client/server/network/bundle), and aretryablehint — legacy 1-arg constructors preserved for backward compatibility. (#35765) - Content Search: Date and date_time fields in the Content Search portlet now render FROM/TO date pickers that build a Lucene range value, replacing the free-text Lucene input. (#35745)
- UVE: Lock/unlock state is now validated across different pageViews behind the
FEATURE_FLAG_UVE_TOGGLE_LOCKflag. (#35747) - Workflow API: New
GET /api/v1/workflow/contenttypes/schemesendpoint accepts a comma-separatedcontentTypeIdsquery parameter and returns workflow schemes grouped by content type. (#35729) - Telemetry: Per-window and lifetime request-cost (token) counters are now published to an external REST collector on the existing 60s monitor tick — gated by
REQUEST_COST_PUSH_URL+REQUEST_COST_PUSH_TOKEN, off by default. (#35749) - Security: New
EncryptPlainPasswordsJob(Quartz, every 5 minutes) scansuser_for rows withpasswordEncrypted = false, hashes the cleartext password viaPasswordFactoryProxy, and flips the flag — gated byENABLE_ENCRYPT_PLAIN_PASSWORDS_JOB(defaulttrue). (#35767) - Toolbar: The "Report an Issue" toolbar menu item is now gated behind
FEATURE_FLAG_REPORT_ISSUE_ENABLED(defaultfalse). (#35759) - VTL Grid Block: Grid block renderer now collapses columns to full-width stacking below 768px via a scoped style block injected once per page. (#35783)
Fixes and Known Issues
- OpenSearch:
ConfigurableOpenSearchProvidernow actually applies the configuredSSLContextto the async connection manager, loads trust flags regardless of how TLS was enabled, and skips certificate verification by default via the newOS_TLS_CERT_REQUIREDproperty (set totruefor strict validation). (#35735) - UVE Palette: Content retrieval now passes sorting parameters so palette results display in the expected order. (#35774)
- Feature Flags:
ConfigurationResourcenow case-insensitively normalizes boolean feature-flag property values ("True","FALSE","1", etc.) to canonical"true"/"false"strings — the frontend=== 'true'comparison no longer silently fails for non-lowercase values. (#35769) - Edit Content (Locale Translation): Binary fields are now cleared on both populate and manual translate;
HOST_FOLDERandRELATIONSHIPvalues are preserved during manual translation; relationship items resolve to the target language with the correctDotLanguageobject so the language column renders; tags are no longer cleared by the legacy editor's populate flow. (#35738) - dotAI: Example image-model config updated to
gpt-image-1; Image Playground response JSON now pretty-prints and wraps without overflowing;EmbeddingContentListener,BulkEmbeddingsRunner, andSearchResourcenow resolve the host before callinggetEmbeddingsAPI()so site-scoped configurations work; search form validates required fields; model dropdown reads fromproviderConfig.chat.model; missing index now returns404with known indexes listed. (#35716) - Velocity:
VelocimacroFactorynow fails loud when a configuredvelocimacro.libraryfile cannot be loaded — engine init throws and readiness probes go red until macros are healthy. Opt out withvelocimacro.library.fail-on-missing=false. (#35768) - Tomcat:
RemoteIpValveinternalProxiesregex insetenv.shnow includes CGNAT100.64.0.0/10(RFC 6598) used by cloud load balancers, Kubernetes overlay networks, and Tailscale; also fixes a pre-existing brace bug inserver.xmlthat broke Tomcat property resolution. (#35805)
Infrastructure & Security
- CI Filters:
.github/filters.yamlexclusion patterns refined so language property files underWEB-INF/messagesand other path matches are correctly routed toarea_backend. (#35779) - Release Tooling: Slack release announcement now includes a QA-coverage section listing PRs whose linked issues lack a recognized QA label (
failed,missing,unlinked,external). (#35762) - Test Stability:
Template_ResourcePostman collection andSiteAPIITintegration test now retry the default-language lookup on cold start to avoid intermittentlanguage_id = -1FK violations. (#35787) - Test Stability:
Workflow_Resource_TestsandGraphQLTestsPostman collections now resolve and pass an explicitdefaultLanguageIdin request bodies that previously fell through to the-1Lserver default. (#35795)
dotcms-cli - 26.05.22-01
Changelog
- 0a14f77 🏁 Publishing dotCLI release version [26.05.22-01]
Contributors
We'd like to thank the following people for their contributions:
- dotCMS-Machine-User
Release 26.05.19-01
Release: v26.05.18-01 → v26.05.19-01
Features & Enhancements
- Maintenance: New REST endpoints for session management — list active sessions, invalidate a single session, or invalidate all but the caller — replacing the legacy
UserSessionAjaxDWR class. (#35733) - Maintenance: Added
GET /api/v1/maintenance/_threadsand/api/v1/maintenance/_threads/inforeturning structured JSON, replacing the legacyThreadMonitorToolHTML output. (#35463) - Maintenance: Added
GET /api/v1/maintenance/_logFilesreturning a sorted, regex-filtered list of log file names for use with the existing tail and download endpoints. (#35741) - Search: Introduced a vendor-neutral
SearchAPIwith a phase-aware router that delegates reads to Elasticsearch or OpenSearch;ContentletAPI.esSearch/esSearchRaware now@Deprecated(forRemoval = true)in favor ofsearch()/searchRaw(). (#35609) - Report Issue: Added a
/api/v1/report-issueendpoint and toolbar user-menu dialog for submitting issue reports, with multipart upload, client metadata capture, and a newREPORT_ISSUE_INCLUDE_USER_PIIconfig to control whether user details are included. (#35717)
Fixes and Known Issues
- Edit Content: Lock warning banner on Pages now correctly displays the locker's name and no longer appears when the current user holds the lock, by normalizing the dual string/object shape of
lockedByon the frontend. (#35726)
dotcms-cli - 26.05.19-01
Changelog
- 9179020 🏁 Publishing dotCLI release version [26.05.19-01]
Contributors
We'd like to thank the following people for their contributions:
- dotCMS-Machine-User
Release 26.05.18-01
Release: v26.05.14-01 → v26.05.18-01
Features & Enhancements
- dotAI: Azure OpenAI is now a supported LangChain4J provider for chat, streaming, embeddings, and image — enterprise customers can configure Azure-hosted deployments via
providerConfigJSON with no code changes. (#35243) - ES Search portlet: Applied product/design polish — parameters panel switched to the standard form pattern with checkboxes, "Wrap code" moved into the Query panel header, Help button relocated next to the Query title, top toolbar removed, Share/Export buttons moved into the right side of the results stats bar, and the Status column is now sortable. (#35702)
- Analytics dashboard: Engagement report now shows device and browser breakdowns as pie charts (via new
transformBrowsersToPieChartEntries/transformDevicesToPieChartEntriesaggregation utilities capped at 10 entries), with the engagement rate metric spanning the full width. (#35695) - UVE Style Editor: Accordion content styling and radio field visibility improvements for better UI consistency. (#35724)
Fixes and Known Issues
- UVE: The pencil icon in the hover toolbar now opens the Angular-based new edit content dialog when
CONTENT_EDITOR2_ENABLEDis on for the content type, for both single- and multi-page contentlets. (#35674) - Edit Content (History tab): Polished the Versions and Push Publish accordions in the new side panel — context-menu options now filter by status (Draft/Published/Other), the current version has a distinct active highlight, status chips align with Content Drive, the kebab is hover/active only, Compare view supports reversed columns with a "Return to current version" button, and Push Publish entries are sorted newest-first with a readable "Bundle ID" label. (#35687)
- Edit Content (side panel): Added tooltips to sidebar tab icons, copy button now shows the "Copied" tooltip and checkmark immediately on click, replaced the local status tag with the shared
dot-contentlet-status-chip(including a "New" state), and replaced the untranslated locale component with the sharedDotBinaryOptionSelectorComponentwith locale-aware copy options. (#35671) - Maintenance: Fixed broken double-checked locking in
MaintenanceResource.jobHelper()where two threads could race and both initialize the CDI bean — now uses the full volatile + synchronized + double null-check pattern. (#35713)
Infrastructure & Security
- CI/CD: The
dotcms-devimage build now derives its base from the release's Java major version via a newJAVA_BASE_IMAGEbuild-arg, so thejava-25variant is actually built onjdk:25-ubuntuinstead of being hardcoded to Java 21. (#35718) - URL Map: Added an integration regression test that locks down the cross-site URL map fix —
processURLMapmust return empty when the requesting site has no matching content, preventing the foreign-host content bleed previously introduced by an unrestricted ES fallback. (#35723)
Release 26.05.14-01
Release: v26.05.11-01 → v26.05.14-01
Caution
Rollback Warning: This release contains an irrevertable change that is non-trivial to rollback from.
- Push Publish: Bundles now carry
dotStylePropertiesand Style Editor schemas; receivers persist data that older senders/receivers did not write. (#35659)
Features & Enhancements
- Content Analytics: Split the
docker-compose-examples/analyticsstack into a dedicatedexperiments/directory and redirected CA infrastructure setup to the newdot-ca-event-managerrepo. (#35624, #35678) - Content Analytics: Renamed
DOT_ANALYTICS_CUSTOMER_ID→DOT_ANALYTICS_TENANTandDOT_ANALYTICS_ENVIRONMENT→DOT_ANALYTICS_PROJECT(and the upstream?environment=query param to?project=) to align with Platform Team naming conventions. (#35662) - Queue: Added a cloud-agnostic
DotQueuePublisherabstraction withDOT_QUEUE_PROVIDERconfig-driven selection, shippingSqsQueuePublisherand a defaultNoOpQueuePublisher. (#35628) - Folder Resource: Added
offsetandlimitquery parameters toPOST /api/v1/folder/byPath, replacing the silent 20-row truncation with paginated subfolder results (default 40,-1for unlimited up to a 10000 safety cap). (#35618) - Maintenance Portlet: Added
DELETE /api/v1/maintenance/_contentletsREST endpoint for bulk contentlet destruction, replacing the legacy DWR path. (#35233) - Analytics Dashboard: Added
getContentAttributionandgetConversionsOverviewservice methods plus refactored conversions state for the new dashboard charts. (#35657) - API Documentation: Expanded OpenAPI descriptions for
NavResource,ContentTypeResource,TempFileResource, andWorkflowResourceto better serve AI agents and API consumers. (#35382)
Fixes and Known Issues
- Edit Content: Dismissing the unsaved-changes dialog via the X icon or ESC key now keeps the user on the editor instead of discarding their work. (#35646)
- Edit Content: Switching content items of the same type and translating manually between locales now properly clear stale field state (binary/image, date picker, relationship, and custom fields). (#35596)
- Edit Content: Required Custom Fields left empty now show the standard "This field is mandatory" inline message and a red border, exposed via new
getValidationState()andonValidationChange()methods onDotCustomFieldApi. (#35653) - SDK Client:
client.page.get({ mode: 'EDIT' | 'PREVIEW' })now correctly translatesUVE_MODEkeys to backendPageModevalues, so preview/edit modes no longer silently fall back to LIVE. (#35656) - OpenSearch Migration: Startup connectivity failures are now hard errors that trigger an emergency
haltMigration()reset to phase 0;hasEmptyIndices()is phase-aware; thread-unsafeSimpleDateFormatreplaced withDateTimeFormatterinESIndexResource. (#35632) - CSV Import: Tag processing now uses a diff-based approach under a
SELECT ... FOR UPDATErow lock and propagates exceptions, eliminating a race condition that produced tag unions and silently swallowed failures. (#35648) - Categories API: Single quotes in category names are now escaped in the recursive path SQL literal, fixing "Unterminated identifier" errors on
/api/v1/categories/childrenand closing a SQL injection vector. (#35676) - Page Cache: Vanity URL 200-forward responses now include the original request URI in the cache key, preventing different vanity-forwarded URLs that resolve to the same detail page from serving each other's cached content. (#35704)
- Permissions:
PermissionBitFactoryImpl.loadPermissions()no longer caches empty walk-up results, preventing intermittent 401s on public pages after Push Publishing. (#35684) - Template Builder: Templates portlet wrapper no longer echoes layout changes synchronously back to the designer, fixing column reordering and row duplication after row deletion. (#35698)
- Legacy Edit Content UI: Tag chips in the legacy Dojo edit screen now grow to fit their full text instead of being clipped at 112px. (#35667)
- dotAI: Default embeddings search threshold lowered from
0.5to0.25across backend constants and frontend defaults. (#35660) - UVE: Fixed auto-expand of tabs on style editor changes. (#35689)
- Block Editor 2.0: Follow-up improvements and bug fixes. (#35691)
Infrastructure & Security
- CI/CD: Docker
:latestpush and "Next Release" issue relabeling in the-6 Release Processworkflow are now gated tomain-branch dispatches only. (#35652) - TipTap: Pinned
@tiptap/coreviaresolutionsand promoted@tiptap/extension-code-blockto a direct dependency to unblockyarn nx serve dotcms-uiafter the Block Editor 2.0 merge. (#35685) - SDK: Bumped SDK
VERSIONfrom1.5.2to1.5.3to keep trunk@nextbuilds ahead of@latest. (#35562) - Tooling:
gh-issue-troubleshootslash command now auto-registers new integration tests in the correct JUnit 4/5 suite file. (#35644)
dotcms-cli - 26.05.14-01
Changelog
- bd50cbd 🏁 Publishing dotCLI release version [26.05.14-01]
Contributors
We'd like to thank the following people for their contributions:
- dotCMS-Machine-User
Release 25.07.10_lts_v9
v25.07.10_lts_v9 🏁 Publishing release version [25.07.10_lts_v9]
Release 25.07.10_lts_v10
v25.07.10_lts_v10 🏁 Publishing release version [25.07.10_lts_v10]
Release 24.12.27_lts_v20
v24.12.27_lts_v20 🏁 Publishing release version [24.12.27_lts_v20]