· CMS13

What else changed in Optimizely CMS 13.5.1

The release notes for Optimizely CMS 13.5.1 list a single fix:

CMS-57937 – Fixed smooth rebuild failures in Optimizely Graph for languages that have a fallback language in Language Settings but no content of their own.

After upgrading, I wanted to know whether that was really all, so I started digging.

Almost everything is unchanged. 47 of 51 assemblies are identical apart from the version number, and no third-party dependencies changed. The differences are all in Optimizely.Graph.Cms, plus one small change in EPiServer.Cms.Shell.UI. Most of them concern editor search when it's backed by Optimizely Graph.

Editors can find expired content

There is a new option, IncludeExpiredContentInEditorSearch, read from the config section Optimizely:ContentGraph:Search. It is false by default. When set to true, logged-in editors can find expired content in CMS search and through the Graph proxy. Anonymous requests never get expired content.

{
  "Optimizely": {
    "ContentGraph": {
      "Search": {
        "IncludeExpiredContentInEditorSearch": true
      }
    }
  }
}

The XML documentation for AddContentGraph(authenticationScheme) now carries a warning. The scheme you pass decides who counts as an editor. If it also logs in ordinary site users, those users can see expired content through the proxy once you enable the setting.

Editor search got a rewrite

Before, the Graph search providers ran one query with limit: 20 against _Content, and pages, blocks and media shared those 20 results. Now:

  • Each provider searches only its own types: _Page, _Component, or _Media/_Image/_Video.
  • Results are fetched in pages of 100, up to 5 pages, and filtered in the CMS until there are enough hits.
  • Search roots are respected, including "For this page" folders. If you search within a root that can't be found, you get no results instead of results from the whole site.
  • Searching the trash returns only deleted content. There is also a new filterOnDeleted parameter, which works the same way as in the classic search providers.

The indexed path changed

ContentPathResolver now includes the root and wastebasket in _metadata.path; before, they were left out. Because this changes what is written to the index, I ran a full reindex after upgrading so that scoped and trash searches work on existing content as well.

Conclusion

If you use Optimizely Graph for editor search, 13.5.1 contains a lot more than one bug fix. The changed classes are internal, so you are unlikely to notice anything when building. You will notice it in edit mode.