Skip to content

Release 26.03.26-01

Choose a tag to compare

@dotCMS-Machine-User dotCMS-Machine-User released this 26 Mar 14:51

Release: v26.03.23-01 → v26.03.26-01

Caution

Rollback Warning: This release contains an irrevertable change that is non-trivial to rollback from.

  • GraphQL / SDK: Adding numberContents to the DotPage GraphQL schema and SDK interfaces means headless consumers may already depend on this field; rolling back removes it and breaks those callers. (#34966)

Features & Enhancements

  • GraphQL: Added numberContents: Int field to the DotPage GraphQL type, matching the REST Page API and unblocking headless edit-mode logic that depends on page content count; field is also propagated through the TypeScript SDK's DotCMSGraphQLPage interface and default query. (#34966)
  • SDK (React): Added React Server Component support via a react-server export condition that excludes TinyMCE and browser-only hooks, a buildSlots/slots API for injecting pre-rendered async server components into the client page layout, and a server-compatible DotCMSBlockEditorRenderer with synchronous validation. (#35049)
  • SDK (create-app): Added --starter <url> CLI flag to set CUSTOM_STARTER_URL when running docker compose up for local dotCMS Docker deployments. (#35025)
  • UVE: Implemented data-dot-style-properties attribute on container-rendered output and added script injection for registerStyleEditorSchemas() on traditional pages, covering all Content Types with defined Style Editor schemas. (#35046)
  • UI: Standardized .input / .btn.btn-primary classes across custom field templates, replaced a custom dropdown for tag storage host selection with a native <select> element, and enhanced daisyui-theme.css with new primary color CSS variables and improved select-field focus states. (#35085, #35102)
  • Search (OpenSearch): Introduced vendor-neutral write-side abstractions (ContentletIndexOperations, IndexBulkRequest, PhaseRouter) with Elasticsearch and OpenSearch implementations, completing the dual-write infrastructure required for ES → OpenSearch migration phases 1–3. (#35103)

Fixes and Known Issues

  • Search (OpenSearch): Fixed ContentFactoryIndexOperationsOS instantiating a new OSQueryCache on every call instead of using the shared CacheLocator singleton, which silently bypassed the query cache in production. (#35104)
  • Docker: Added automatic FIPS mode detection at container startup that sets CMS_SSL_ENGINE=off when /proc/sys/crypto/fips_enabled is set, preventing JVM crashes with OpenSSL 3.x while keeping APR SSL enabled by default for performance; manual override is available via CMS_DISABLE_APR_SSL or CMS_SSL_ENGINE. (#34213)
  • Edit Content (Relationship Field): Fixed a circular dependency (NG0919) in dot-relationship-field.component.ts by lazy-loading DotEditContentDialogComponent, and corrected a signalMethod call that was passing a signal reference instead of its value. (#35099)
  • SDK: Synced create-app package version to 1.2.5 to match all other SDK packages. (#35107)

Infrastructure & Security

  • CI/CD: Fixed CLI Deploy step not forwarding artifact-run-id to deploy-jfrog, which caused deployment failures when build reuse was enabled and no maven-repo artifact existed in the current run. (#35105)
  • CI/CD: Added AI-powered backend code reviewer workflow (security, database, Java standards, REST API sub-agents) for pilot developers, and expanded the pilot group. (#35095, #35115)
  • CI/CD: Updated CODEOWNERS to allow all dotDevelopers to modify GitHub Actions and workflow files, reflecting the shift to full-stack ownership of CI/CD pipelines. (#35125)
  • Backend: Updated instance initialization to report system telemetry to a new internal endpoint for usage reporting. (#35088)
  • Frontend: Replaced deprecated CoreWebService with Angular's HttpClient across multiple services, and applied Angular template migrations (self-closing tags, removal of redundant CommonModule imports in standalone components). (#34165, #35112)