2024 Optimizely Graph release notes

  • Updated

Optimizely Graph packages released throughout 2024. Product packages are found on the Optimizely NuGet server

Are you looking for release notes before January 2024? See the Optimizely Release Notes on the Optimizely World site.

You can find prior versions of user guides and when functionality was released or deprecated at the following locations:

December 27

Optimizely.ContentGraph.Cms 3.14.3

Bug fixes

  • CG-8931 – Fixed a bug where users could not sort children by the page tree sort order when using a _link of type CHILDREN registered by the CMS integration because the SortOrder property is not exposed in the synced document.
  • CG-9798 – Fixed a bug where the ContentArea fields are sometimes synced as "String" types in the Optimizely Graph schema. This occurs due to the incorrect handling of ContentArea properties when pushed from the ContentTypeIndexer.
  • CG-10035 – Fixed a bug where ContentTypeNameValidator was not thread-safe.
  • CG-9355 – Fixed an issue in AsyncLocal in ContentTypeSerializer that caused issues when there were multiple parallel content type syncs (like when doing event indexing).
  • CG-9873 – Fixed an issue that caused an IndexOutOfRange exception for blocklist.
  • CG-9597 –  Fixed an issue in Optimizely.ContentGraph.Cms 3.13.0 that prevented synchronization of Forms to Gateway.
  • CG-10043 – Fixed an issue that called GetContentTypes over and over that caused huge unnecessary allocations from indexing.
  • CG-9216 – Changed the following interfaces from internal to external namespaces.
    • IContentIndexer
    • IContentApiModelProperty
    • ITypedContentApiModelProperty
  • CG-9218 Fixed an issue in Optimizely.ContentGraph.Cms 3.11.0 that broke LinkItemFilter for Content Delivery API.
  • CG-9801 –  Fixed an issue where the XhtmlString's structure in the Block property was null when RichTextStructAsJson=true.
  • CG-10049 –  Fixed an issue where Optimizely Graph sync status icon is always showed as unsynced.

December 17

Optimizely.ContentGraph.Cms 3.14.2
Optimizely.ContentGraph.Core 3.14.2

Introduced new settings to optimize the sync of related content in CMS 12. The CMS 12 and Optimizely Graph integration now expands ContentReference, Url, and LinkItem properties, as well as ContentArea and ContentAreaItem.

Previously, content related to other items through these properties could cause cascading updates. The new settings let you control when these expansions occur. For detailed information about these settings and their usage, see Configure resync of related content.

December 3

Optimizely.ContentGraph.Cms 3.14.1
Optimizely.ContentGraph.Core 3.14.1

Improved the internal class ContentTypeLoader for faster content creation. The ContentTypeLoader is frequently used for sending content to Optimizely Graph.

November 21

Optimizely.ContentGraph.Cms 3.14.0
Optimizely.ContentGraph.Core 3.14.0

  • Released the Conventions API that lets you add abstract CMS types and interfaces from CMS 12 to Optimizely Graph. You can also extend types with custom fields.
    • To configure conventions, get the singleton instance of ConventionRepository and then do the configuration.
    • Perform the configuration only once during the site's startup because modifying conventions while the site is running can cause unpredictable behavior.

Service deployment 3.13.3

  • Updated query results so that they stay longer in the CDN cache, by adding the query-string cache_uniq=true to the Optimizely Graph request.
    • The query-parameter cache_uniq must only be used for queries where you filter content for a specific item, for example, get content by id, get content by path, get content by url, or similar.
    • Optimizely Graph creates a cache-tag using the returned ID from the result and caches the result with that cache-tag. Optimizely Graph purges the cache (cache invalidation) for the cached result (when cache_uniq=true) when the content item with the specific ID is re-published or deleted.

November 5

Optimizely.ContentGraph.Cms 3.13.1
Optimizely.ContentGraph.Core 3.13.1

  • Updated the request protocols for the Client package from HTTP/1.1 to HTTP/2.0, improving performance and efficiency by leveraging Cloudflare's support for higher HTTP versions.

October 29

Optimizely.ContentGraph.Cms 3.13.0

Enhancements

  • Added the possibility to boost your results based on the value (number) that exists for a specific field. See Boosting.
  • Added the ability to specify a GeoPoint in the GraphQL schema using an inner latitude (lat) and longitude (lon) field. See Geo search.
  • Added the ability to boost by the datetime field. See Boosting of datetime fields with a Gaussian function.

Bug fixes

  • CG-8641 – Fixed a bug where queries using the Data type for SaaS CMS accounts returned zero results.
  • CG-8910 – Fixed a bug where content in a local block was not being indexed for search, preventing it from appearing in the parent content's _fulltext field.
  • CG-8935 – Fixed a bug where querying a page type's ContentArea returned an error after updating complex properties from non-required to required with CMSGraphOptions.EnableNullability set to true.

September 25

Optimizely.ContentGraph.Cms 3.11.0

Enhancement

Added the ability to mark required fields as not nullable in GraphQL for CMS 12.

Bug fixes

  • CG-7262 – Fixed a bug where pages with a LinkItem property set to Automatic in a multilingual CMS configuration did not generate language-specific Href links. Instead, both language versions are linked to the same language page.
  • CG-7731 – Fixed a bug where ContentReferences were instantiated using new ContentReference(id) instead of consistently utilizing the three-parameter override constructor, new ContentReference(id, workid, providername).
  • CG-8291 – Fixed a bug where the scheduled job in CMS would sometimes fail with the error "timed out while waiting for a dynamic mapping update".
  • CG-8314 – Fixed a bug where an empty CMS or Alloy site would crash if a user typed some keywords and searched for content. 
  • CG-8519 – Fixed a bug where requests could result in a 401 error when the Optimizely provisioning service experienced a high load.
  • CG-8558 – Fixed a bug where extracting content could sometimes give the error "Stream does not support reading".
  • CG-8566 – Fixed a bug where referenced content is not sent to Optimizely Graph in correct batches when a content item that is being referenced from different places is updated. This can lead to longer synchronization time.
  • CG-8955 – Fixed a bug where queries with facets on numbers could sometimes get the wrong matching values.

August 7

Optimizely.ContentGraph.Cms 3.10.0

Enhancements

Added the ability to add a property similar to __typename in the CMS integration.

Bug fixes

  • CG-6303 – Fixed a bug where links of page types did not display in relative paths when ForceAbsolute is set to false.
  • CG-7957 – Fixed a bug where when updating a property on a page with several languages and the property on that page is not unique per language, it would take a long time to update the property in Optimizely Graph. 
  • CG-8205 – Fixed a bug where blocks configured with language fallbacks were not appearing in the alternative language version of the page. 
  • CG-8253 – Fixed a bug where it was impossible to set the MaxDeepLevels for properties.
  • CG-8314 – Fixed a bug where an empty CMS or Alloy site would crash if a user typed some keywords and searched for content. 
  • CG-8319 – Fixed a bug where an error would display when editing a page containing a fallback language setting in ContentArea.

June 25

Optimizely.ContentGraph.Cms 3.9.0

Enhancements

Released the ability to use a scheduled job to send Commerce content to Optimizely Graph.

Bug fixes

  • CG-7431 – Fixed a bug where the indexing job failed with a "mapper_parsing_exception" error when content types had properties named "Link".
  • CG-7685 – Fixed a bug where the p_VirtualLinkProp field in the LinkPropertiesBlock query returned null instead of the correct value.
  • CG-6608 – Fixed a bug where indexing failed due to a Rich Text fields (XHtmlString) serialization error when a Form was included in a Rich Text field.
  • CG-7918 – Fixed a bug where indexing failed due to a Rich Text fields (XHtmlString) serialization error when a Form was included in an Inline block.
  • CG-8215 – Fixed a bug where the sync intermittently removed content items from the Optimizely Graph service, causing HTTP 404 errors on the website.

June 21

Service deployment

  • Introduced the capability to send XHTML strings as JSON objects within the schema.
  • Released the ability to use the `exist` operator for date or number fields. 
  • Released the ability to do recursive calls within a query.
  • Released the ability to use categorical facets to create facets for integer values.

May 21

Optimizely.ContentGraph.Cms 3.8.0

Enhancements

  • Added the ability to add an attribute to content type properties in C# to select if and how each property should sync with Optimizely Graph.
  • Implemented support for DateTime objects in the JSON content type. You can configure this in startup. 

Bug fixes

  • CG-6934 – Fixed a bug where Optimizely Graph encountered syncing issues with content providers that do not inherit from CMS or Commerce base types. This limitation hampered the integration of alternative content sources like Geta categories.

April 16

Optimizely.ContentGraph.Cms 3.7.0

Enhancements

  • Added the ability to prevent field collisions by updating the appSettings.json in CMS.
  • GraphQL implemented support for DateTime objects in JSON content type. Configure this in startup.
  • Added the ability to implement the interface IGraphLink and register the type in startup.cs.
  • Added the ability to add an attribute on content type properties in C# to select if and how each property should sync with Optimizely Graph.
  • Added support for the creation of snippets for values for searchable string fields. A snippet is a short text fragment comprising the words you have searched for.
  • Added the ability to sort by the _modified field, so you can sort content by the datetime of modification by the system.
  • Released the ability to set the minimum score for the returned search results so that you can limit the number of irrelevant results

Bug fixes

  • CG-7048 – Fixed a bug where you could not query a name inside inline fragments.
  • CG-7260 – Updated the sorting query to be more robust, so it can sort correctly, even when the type is incorrectly mapped to the index schema.
  • CG-7424 – Fixed an issue where the "contains" and "match" operators return incorrect data when handling text that contains tone marks.

March 19

Optimizely.ContentGraph.Cms 3.6.0

Enhancements

  • Included an option for users to choose not to extract text from media content. Go to startup.cs and set ExtractMedia to false.
  • GraphQL implemented support for DateTime objects in JSON content type. Configure this in startup.

Bug fixes

  • CG-6778 – Fixed an issue where restricted content did not display in the ContentArea of a page even though the content had the same access permissions as the page.
  • CG-6834 – Fixed an object mapping issue when the Optimizely Graph content synchronization job was run.
  • CG-6682 – Made SearchableSuffixContentTransformer.MaxDepth configurable by using code or appsettings.json.

January 16

Optimizely.ContentGraph.Cms.3.5.2

Enhancements

  • Implemented XHtmlString field in JSON format for the following content types:
    • ContentReference
    • ContentReferenceList
    • LinkItem
    • LinkItemCollection
    • ContentArea
    • ContentAreaItem
    • PageReference

Bug fixes

  • CG-6681 – Fixed an issue where the Content Management System (CMS) became unresponsive due to high memory usage when the Optimizely Graph sync job was run multiple times.
  • CG-4640 – Fixed an issue where the Optimizely Graph content sync job did not stop after the job was canceled and the page was refreshed.
  • CG-6567 – Ensured that when querying for form data using ContentDeliveryAPI, formModel property returns in the result.
  • CG-6268 – Fixed an issue where the MVC engine was called from Content Delivery.
  • CG-6361 – Fixed an issue where the Delta indexing job ran successfully after reindexing the site but an error message displayed in the console.
      [20:31:15 ERR] Deleting failed for content by path:
    System.ArgumentNullException: operations cannot be null, empty, or contain any null or empty items. (Parameter 'operations')
    at Optimizely.ContentGraph.Core.Internal.Helpers.ObjectExtensions.ValidateNotNullOrEmptyArguments[T](IEnumerable`1 argument, String paramName)
    at Optimizely.ContentGraph.Core.Client.StreamAsync(IEnumerable`1 operations, CancellationToken cancellationToken)
    at Optimizely.ContentGraph.Cms.Core.Internal.ContentIndexer.DeleteAsync(IEnumerable`1 deleteItems)
  • CG-6475 – Fixed an issue where IList property caused an error when you synchronized contenttype.
  • CG-6573 – Fixed an issue where the sync job failed and an error log displayed when a block list property was created from Content Types UI instead of with code.