November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
New features for Optimizely Graph (formerly Optimizely Content Graph). Bug fixes for Optimizely Content Management System (CMS), Optimizely Graph and Optimizely Content Delivery API (headless). Security enhancement for Optimizely Google Analytics.
Area | ID | Type | Description | Released |
---|---|---|---|---|
HAPI-2681 |
Inconsistent behavior when you get expired content by Id and contentUrl
Fixed an issue that caused inconsistent behavior when you called CD to get expired content by Id and contentUrl. The Id returned 404 not found and contentUrl returned the expired page.
EPiServer.ContentDeliveryApi 3.9.0; (Or a related package);
| Sep 22, 2023 | ||
HAPI-2682 |
Url is not correct when the master language content and locale of machine is different from the master language
Fixed an issue that provided the incorrect URL when the local machine had a culture of en (for example), and you created content in master language (sv) and non-master language (en). When you called CD to get above content without setting accept-language, the content.url was linked to the en page.
EPiServer.ContentDeliveryApi 3.9.0; (Or a related package);
| Sep 22, 2023 | ||
HAPI-2703 |
Add stop gap solution for non HTML output
You can get rich text stored in XhtmlString in a different structured delivery format than just an HTML string.
EPiServer.ContentDeliveryApi 3.9.0; (Or a related package);
| Sep 22, 2023 | ||
CMS-30050 |
Editing block with JsonIgnore attribute shows infinite loader
Fixed an issue where the blocks that used the JsonIgnore attribute caused the UI to display an infinite loader due to an error on handling the ignored property while editing the block.
EPiServer.CMS.UI 12.22.7; (Or a related package);
| Sep 22, 2023 | ||
GA-475 |
Security Improvement
Improved security to mitigate a high-severity security vulnerability that might give an attacker access to sensitive data in the application. Read more at: https://world.optimizely.com/blogs/bien-nguyen/dates/2023/9/vulnerability-in-episerver-googleanalytics--v3-and-v4/
EPiServer.GoogleAnalytics 3.0.2; (Or a related package);
| Sep 22, 2023 | ||
HAPI-2717 |
Application synchronization may throw ConcurrencyException
Fixed an issue that caused a ConcurrencyException when the synchronization of application was configured from code and the web app was started with multiple instances simultaneous. The process was terminated due to an unhandled exception.
EPiServer.ContentDeliveryApi 3.9.0; (Or a related package);
| Sep 22, 2023 | ||
HAPI-2697 |
Could not get content by friendly URL if you set custom BaseRoute
Fixed an issue that returned login page content (instead of the 200 with detail content), when you set a custom {{BaseRoute}} and called to get the content by friendly URL.
EPiServer.ContentDeliveryApi 3.9.0; (Or a related package);
| Sep 22, 2023 | ||
HAPI-2513 |
Call CMA to create content return error 500 if item of ContentArea contains null item
Fixed an issue that returned 500 with error Object reference not set to an instance of an object when you called CMA to create content if item of ContentArea was null.
EPiServer.ContentDeliveryApi 3.9.0; (Or a related package);
| Sep 22, 2023 | ||
HAPI-2693 |
CD.Form hosted page does not resolve correctly
Fixed an issue that caused the {{IPageRouteHelper.ContentLink}} to return the Start page when you requested a CD endpoint and the host was language-mapped.
EPiServer.ContentDeliveryApi 3.9.0; (Or a related package);
| Sep 22, 2023 |
Previously, Optimizely Graph returned permanent links but now also returns friendly URLs for PropertyImageUrl and PropertyDocumentUrl.
The scheduled job was updated to meet the following criteria:
Added a feature to let you specify one or more Statuses, such as Published and/or Draft, that triggers a notification.
To simplify HMAC authentication, Optimizely supports Basic authentication as an alternative, which takes appKey as username and secret as password.
Usage: concat appKey and secret with column [:] character then encode value as base64.
The gateway implementation stores the auth object as HMAC auth on the tenant object. For example:
https://www.debugbear.com/basic-auth-header-generator Authentication: `Basic base64($appKey:$secret)`
You can now extend the fulltext search to all types, such as set dates, integers and other types. This feature includes the following criteria:
You can send content types for your source to Optimizely Graph using an OpenAPI client, so you can use existing OpenAPI tools for synchronizing content types for your source; from your application. You can use any OpenAPI client of customers choose to synchronize content types to Optimizely Graph. The OpenAPI client must get the "contract" of JSON-body for sending content types. As default value for the id parameter, system omits the source_routing parameter on the cluster request.
You can send content types for your source to Optimizely Graph using an OpenAPI client, so you can use existing OpenAPI tools for synchronizing content types for your source; from your application. You can use any OpenAPI client of customers choose to synchronize content types to Optimizely Graph. The OpenAPI client must get the "contract" of JSON-body for sending content types. As default value for the id parameter, system omits the source_routing parameter on the cluster request.
Added semantic search, which uses artificial intelligence (AI) to interpret the intention of a user query and the contextual meaning of terms as their occur to return more relevant results. Semantic search solves the “vocabulary mismatch” problem. The technology to implement this supports automating synonyms, clustering documents, detecting meaning and intent in queries, question answering, chatbots, and ranking search results.
Added semantic search, which uses artificial intelligence (AI) to interpret the intention of a user query and the contextual meaning of terms as their occur to return more relevant results. Semantic search solves the “vocabulary mismatch” problem. The technology to implement this supports automating synonyms, clustering documents, detecting meaning and intent in queries, question answering, chatbots, and ranking search results.
As a Optimizely Graph user that has multiple content sources to synchronize to Optimizely Graph, you can record synchronization status in Journal service for each of my content source.
The Journal service has the following endpoints:
For each of the endpoint, you can pass the content source ID and retrieve/update the record for that content source only. If content source parameter is not provided, the Journal service returns data for the default source (CMS). Indexing contents for another source with /content/v2 endpoint should writes journal records with that source.
For each endpoint, you can add a new optional parameter named sourceId as a querystring parameter. When creating new records, if the sourceId parameter is provided, it is added to the Journal record and the IndexingJob record. If sourceId is null/empty, it is not added to the record (for CMS - default source).
When retrieving Journal or IndexingJob records, if the sourceId parameter is provided, query and filter the records by the sourceId parameter. If the sourceId is null/empty, only records without or with sourceId = null are returned (for CMS source).
Fixed an issue where the result of a query did not return and updated name.
Fixed an issue that prevented GraphiQL from loading in Chrome or Firefox.
Fixed an issue where Optimizely Graph returned images that were deleted by the API in the CMS.
Fixed an issue that incorrectly returned the root and Recycle bin when you ran the following query.
query MyQuery {
Content(locale: ALL, orderBy: { Created: ASC }) {
total
items {
Name
Url
ContentType
}
}
}
Fixed an issue that returned expired content when you searched for property of Datetime
, DateList
, Double
, IntegerList
/Enumerable of Int
, Int
, or Boolean
.
Fixed an issue that cause the indexing job to fail after creating a StandardPage that has ContentAreaItem property referring to an Inline Block.
Fixed an issue where the Optimizely Graph indexing job failed if you changed the status of a block that included another block under For This Page.
Fixed an issue that did not index a content item that was previously set to deleted.
Fixed an issue that caused exceptions (The HTTP request failed with status code InternalServerError) when a number of tests were run at the same time; approximately 50% failed, but when each test was run individually, it passed.
Fixed an issue with the contains operator that did not return data.
Fixed an issue where no item was returned for the like operator when you used both a leading and trailing % character.
Fixed an issue that displayed the search parameter as undefined when you searched the Music Festival demonstration site with an empty string.
Fixed an issue that returned an incorrect result when you used the search facets in Music Festival demonstration site. If you clicked the number on the right of a specific item, it got that number as a search value, which returned an incorrect search result.
Fixed an issue where some blank values for the searchable properties that had no values filled were returned in _fulltext result with type of "".
Fixed an issue where the default value (false) for the _fulltext Boolean field did not display in the search results.
Fixed an issue that returned a 500 status instead of the correct 400 status when you synchronized content types with issues that caused GraphQL schema build errors with invalid ContentTypes.
Fixed an issue by adding documentation about how to configure synchronization of content type when the site starts.
Fixed an issue where the indexing job failed.
Fixed an issue that returned error 500 with the message: Oops, something went wrong. Please report us with request id. (It should have returned 0 items.)
Last updated: Sep 22, 2023