Brightspot Releases

v4.8.0-rc.2024.5.28 beta release

Release date: May 28, 2024


v4.8.0-rc.2024.5.28 beta release has 78 bug fixes, 34 improvements, and nine new features.

Significant new features

  • Zapier:
    • Created a Zapier API endpoint.
    • Created a private Zapier integration with Brightspot.
    • Created GraphQL-based search and action Zapier implementations allowing users to create and retrieve assets from Brightspot.
    • Created a Zapier webhook for configuring notification triggers in Zapier. The webhook enables users to select a topic they want to allow Zapier to subscribe to.
    • Added an Admin area in Brightspot for managing the Zapier integration.
    • Created a non-GraphQL-based search implementation for Zapier.
    • Implemented asset-level analytics for Zapier execution. This feature enables editors and admins to validate if an asset is being used, if an asset is working, and if an asset is failing.
  • GraphQL:
    • A new directive @sdl causes GraphQL queries to fetch raw-text schema.
    • The GCA can now create permalinks through mutations.

Significant improvements

  • GraphQL:
    • Restored a Dari profiler response in the top-level query response extensions entry.
    • Special content edit fields were moved behind settings for more control over the returned schema.
    • The fields Query Endpoint View Model Classes and Mutation Endpoint View Model Classes now allow for selecting all available view model classes.
    • Added support for boolean arguments and return types.
    • A GCA static method that returns void now returns null.
    • Admins can configure if an API key is required to query a GCA endpoint.
  • Improved the user experience for placing tags on assets during post-publish actions when the asset already has tags applied.
  • Added the ability to limit hotspot types by class that implements HotSpots.
  • Improved the error message that appears when attempting to perform an integrated search with an invalid API key. (Previously Brightspot displayed only an IllegalArgumentException message.)
  • The Java Server Page edit.jsp was migrated to the ContentEditPage class.
  • Converted the following files to TypeScript:
    • SavedSearches.js
    • RecalculateDimensions.js
    • ContentEditDrawer.js
    • Board.js
    • Chart.js, ChartCompat.js, and ChartTable.js
    • Conversation.js
    • UrlsWidget.js
    • PrePublish.js
  • Refactored and simplified the method DashboardWidgetPage#doService.
  • The list of workflow transitions is now alphabetized when opening the list box Edit Tool Role > Permission Settings > Types > Actions > Only or All Except.
  • Exposed AWS credentials version 2 for AWS authentication.
  • Coded the rich-text toolbar for Brightspot version 5.
  • Enabled integration tests for releases 4.8 and 5.0.
  • When Solr search data is not cached, Brightspot now searches only the default original database instead of traversing the entire database stack.
  • Added support for MySQL 8. See "Breaking changes," below.
  • Notifications for the Content Reporting topic have been expanded to filter based on combinations of event, site, and creator as well as combinations of report configuration and event.
  • Added the query parameter _callers to URLs to display levels in a stack trace. For example, with _callers=10, the profiler provides 10 levels of stack trace.
  • Added a system-wide limit to the number of assets that can be exported from each report in the Reports widget. This limit is configured in the context.xml setting brightspot/contentReporting/reportLimit.
  • The task initiated by clicking on Run Report in an Edit Report widget is now asynchronous. Editors no longer experience a UI freeze when the run time is longer than a few seconds. Editors can view the report by clicking the Last Run link or by selecting more_horiz > Recent Reports in the Edit Report widget.
  • Expanded and enhanced integration test APIs.
  • Added an integration test for pre- and post-publish actions.
  • Increased the size of the runner for Github Actions.
  • Expanded testing to Firefox and Safari to detect if browsers are retaining outdated cookies.
  • Improved keyboard navigation inside a reference field's list of assets. Specifically, after pressing the right arrow key to focus on the favorite icon star_border, pressing the up/down, escape, and tab keys now have expected behaviors.

Significant defects addressed

  • Corrected an issue causing improper placement of the success message in the Post Publish Actions widget.
  • Corrected an issue preventing the appearance of Is Missing in the search panel's content-type specific filters.
  • Corrected an issue preventing a content template from populating its fields when that template is embedded in a parent asset.
  • Corrected an issue causing the number of suggestions in the Add Section widget to exceed the limit set in Edit Global > CMS > Suggestions > Number of Suggestions.
  • Corrected an issue causing selection fields to display an enum's constants that are annotated as @Deprecated.
  • Corrected an issue preventing display of the Post Publish Actions widget for assets on the Global site.
  • Corrected an issue causing contextual edits to a shared image to replicate to all instances of that shared image in the same asset.
  • Corrected an issue preventing correct initialization of notification payloads, which in turn prevented proper transmission of notifications.
  • GraphQL:
    • Corrected an issue causing GraphQL codegen to generate code that did not resolve type name IDs properly.
    • Corrected an issue causing GraphQL codegen to generate code that annotated primitive fields with @NotNull.
    • Corrected an issue causing queries along the path Query/Records/from/type to return old or incorrect data.
    • Corrected an issue causing GraphQL codegen queries to fail on SDLs lacking a mutation field.
    • Corrected an issue causing GraphQL codegen to throw a compile-time error when a root type's field did not have arguments.
    • Corrected an issue causing GraphQL view requests to fail for view models containing the @CurrentPageViewModel annotation.
    • Corrected an issue causing GraphQL queries missing an operation type to throw a NullPointerException.
    • Corrected an issue causing GraphQL to throw a NullPointerException when when a GraphQLSchemaLoader implementation returns null from getPreDataFetchListener().
    • Corrected an issue causing ViewRequestInput to have no effect on ViewModel parameters.
    • Corrected an issue causing the method getLocations() to return missing directive locations which in turn created invalid schema.
    • Corrected an issue preventing the GraphQL Persisted Query Request Data widget from loading cURL and wget options.
    • Corrected an issue causing fields to appear in a GraphQL editorial endpoint even though those fields were excluded from the endpoint's configuration.
  • Corrected an issue causing an error 404 when a new user attempted to change a password during first login.
  • Corrected an issue causing error 404 when clicking on an asset in the References widget. Specifically, when an editor created a shared module, and added that module to a parent asset. After refreshing the shared module, the parent asset appeared in its References widget. Clicking on that parent asset's link threw an error 404.
  • Corrected an issue preventing localizing the message Are you sure you want to leave this page? Unsaved changes will be lost..
  • Revisions widget: Corrected an issue causing the Revisions widget to disappear after toggling Only show named revisions or clicking the pagination controls chevron_leftchevron_right; corrected an issue throwing an error 404 after clicking Edit Live.
  • Corrected an issue causing a blank popup to appear after clicking one of the create buttons in a landing page's Associated Content cluster. For example, in a podcast's landing page, clicking Podcast Episode displayed a blank popup.
  • Corrected an issue preventing rendering of hotspots on images when those hotspots have a @DisplayName of anything other than Pin.
  • Corrected an issue preventing labels from appearing in hotspot pins.
  • Corrected an issue preventing a border from appearing around the Recent Searches widget when tabbing through the search panel.
  • Corrected an issue causing a phrase in the search field that was surrounded in quotation marks to ignore all filters and return all assets. For example, searching for "cms workflow" returned all assets, not just those identifiable by the phrase cms workflow.
  • Corrected an issue causing loss of context in the search panel after clicking refresh. For example, clicking search in the Users widget opens the search panel with filters applicable for users. Clicking refresh removed those user-specific filters.
  • Corrected an issue preventing a deleted watcher from being added again without reopening the View Watchers widget. For example, Adam inadvertently deleted Olivia from an asset's watchers list. The only way Adam could add Olivia back to the list is to reopen the View Watchers widget and then search for and select Olivia.
  • Corrected an issue preventing the conversion of a list from basic to advanced. For example, an editor added videos to a basic playlist. When converting the playlist to advanced, the added videos did not appear in the list.
  • Corrected an issue preventing expected operation of the annotation @Ignored(false).
  • Corrected an issue causing incorrect layout of the preview pane.
  • Corrected an issue causing a filtered search field to become empty after typing a space. For example, in the Authors field, typing Adam displayed all the authors starting with Adam. After typing a space, the list of matching authors was empty.
  • Corrected an issue causing all Material icons within Brightspot to appear in their solid version even when not selected. For example, the favorite icon star_border always appeared solid even when not toggled on.
  • Corrected an issue preventing the typing of an HTML hex code in the color picker.
  • Corrected an issue preventing editing text in the rich-text editor when entering full-screen mode with the preview pane open.
  • Corrected an issue causing incorrect layout of the warning messages appearing under search fields in the left rail. For example, when selecting menu > Content Templates, if there are no content templates, the warning message No matching items was not laid out correctly.
  • Corrected an issue throwing an error in The Shelf. Specifically, after saving a search for an external type (such as YouTube Video), opening The Shelf and selecting Recent Activity > Saved searches threw a NullPointerException.
  • Corrected an issue preventing the publication of a video when the provider was HTML5.
  • Corrected an issue disabling the Format menu when an X (formerly Twitter) post is embedded in the rich-text editor.
  • Corrected an issue causing a hyperlink in the rich-text editor to be applied to all selected characters except the last one.
  • Corrected an issue throwing a NullPointerException error to appear in a dashboard's Reports widget.
  • Corrected an issue preventing updates to scheduled revisions from being saved. For example, an editor created a new revision of a homepage, and added a module to the contents. The editor then scheduled this revision. Subsequently, the editor removed a module from the scheduled homepage's contents, and scheduled this new revision. The removed module still appeared. See "Breaking changes," below.
  • Corrected an issue preventing population of the Suggestions widget when both annotations @ToolUi.Suggestions and @Where are present on a Set<E> field. See "Breaking changes," below.
  • Corrected an issue preventing usage of editorial content types during CloudSQL maintenance.
  • Corrected an issue allowing an admin to restore a site without permission to do so.
  • Corrected an issue preventing correct styling of the menu to add hotspots.
  • Corrected an issue causing the preview pane's width to equal the content edit form's width on initial load.
  • Corrected an issue that caused the method SegmentationDatabase#personalize to trigger a large number of extraneous reference resolves.
  • Corrected an issue that did not account for the Zip Slip vulnerability. A security check now exists to detect and avoid this vulnerability.
  • Corrected an issue throwing JavaScript errors when clicking edit to open the Edit Post widget in an asset's Conversation cluster.
  • Corrected an issue throwing a Paths must be unique error even after deleting the duplicate path from an asset.
  • Corrected an issue causing the rich-text editor to accept changes beyond any text actually selected.
  • Corrected an issue preventing setting permissions on content types for a copied role. For example, Adam added permissions for the Image content type to the role Reporters. He then copied the role Reporters to a new role Proofreaders. Next, he changed the Proofreaders permissions for the Image content type to Video and saved the role. The permissions for Video were not saved.
  • Corrected an issue preventing rCDA schema generation when a field's internal name has a prefix containing a dash. For example, a prefix declared as String PREFIX = "brightspot.custom-components." prevented schema generation.
  • Corrected an issue in which View ID appeared in the error message Credentials and View ID must be populated in order to make requests while authentication with Google Analytics 4. View ID was replaced with Property ID.
  • Corrected an issue causing fields of type java.time.OffsetTime to be ignored in publication dates.
  • Corrected an issue causing cluster labels to display on two lines when a validation error occurs inside that cluster.
  • Corrected an issue throwing a NullPointerException in The Shelf when one of The Shelf's labels are null.
  • Corrected an issue in which the StateWalker class was calling the deprecated RichTextElement.fromElement(Database db, Element element) method. The class now calls RichTextElement.fromElement(Recordable parent, Element element).
  • Corrected an issue preventing an image's Hotspots tab from displaying correctly.
  • Corrected an issue preventing preview-to-edit containers from rendering fields correctly when those fields do not have a valid preview.
  • Corrected an issue preventing an asset's revision URL from being stored when that revision was created.
  • Corrected an issue causing user sessions to unexpectedly end.
  • Corrected an issue in which an impersonated editor became the active editor. For example, Adam impersonated Olivia. When Adam clicked Stop Impersonating, Olivia became the active editor instead of Adam.
  • Corrected an issue preventing admins from saving a header background color at the global level.
  • Corrected an issue incorrectly assembling a URL after clicking help to open a field's developer text.
  • Corrected an issue preventing proper closure of the Bulk Workflow widget in the search panel.
  • Corrected an issue preventing the method ToolUi#setHidden() from actually showing or hiding fields and clusters.
  • Corrected an issue preventing an asset's state to update if a Set field has dynamic placeholder text.
  • Corrected an issue preventing the removal of images from a gallery.
  • Accessibility
    • Ensured the audience menu in the content edit form is keyboard accessible.
    • Ensured focus is applied to fields associated with the add_circle_outline control. For example, when adding tags to an article, clicking add_circle_outline ensures the focus moves to the newly opened field.
    • Ensured focus is applied to fields associated with the edit and Back controls. For example, in an article, clicking edit to edit a tag opens an Edit Tag form and applies focus to the Display Name field; clicking Back applies focus to the originating tag field.
    • Added keyboard accessibility to the pagination controls chevron_left and chevron_right in the date picker.
    • Ensured the order of screen reader announcements matches the visual layout of the content edit form.

Breaking changes

  • The behavior for ToolUi#isEffectivelySuggestions has changed since it no longer automatically returns false if there is a field predicate present.
  • Connections to MySQL 8 may not function with an existing dataset due to the following reasons:
    • Upgrading from MySQL 5.6 to 8 is not supported.
    • The UIDs between two images differ.
    • Passwords need to be updated to conform to MySQL 8's caching_sha2_password authentication plugin. See Caching SHA-2 Pluggable Authentication.
  • In the class com.psddev.cms.db.Draft:
    • The method void update(Map, Object, Map, boolean) has been removed.
    • The method void update(Map, Object) is still available.
Previous Topic
v4.8.0-rc.2024.6.10 beta release
Next Topic
v4.8.0-rc.2024.3.28 beta release
Was this topic helpful?
Thanks for your feedback.
Our robust, flexible Design System provides hundreds of pre-built components you can use to build the presentation layer of your dreams.

Asset types
Module types
Page types
Brightspot is packaged with content types that get you up and running in a matter of days, including assets, modules and landing pages.

Content types
Modules
Landing pages
Everything you need to know when creating, managing, and administering content within Brightspot CMS.

Dashboards
Publishing
Workflows
Admin configurations
A guide for installing, supporting, extending, modifying and administering code on the Brightspot platform.

Field types
Content modeling
Rich-text elements
Images
A guide to configuring Brightspot's library of integrations, including pre-built options and developer-configured extensions.

Google Analytics
Shopify
Apple News