Skip to main content

4.2 releases

Read below for more information on each version in the 4.2 release.

v4.2.53

v4.2.53 had one improvement and one bug fix.

Improvements

  • Replaced *:* queries with ping&df=data. As a result, this change updates the query in dari/db/DefaultDatabasePing to a ping&df=data query. This correction introduced a breaking change described below.

Bug fixes

  • Corrected an issue preventing the proper display of images when querying and trying to import from external AP Images libraries.

Breaking changes

  • ping APIs have changed to throw Exception instead of Throwable. Implementations should be changed to reflect this.

v4.2.52

v4.2.52 had one improvement and one bug fix.

Improvements

  • Added state information to logs for better diagnosis of replication cache failures.

Bug fixes

  • Corrected an issue causing unexpected results after accepting deletions in text with tracked changes. For example, spaces in some positions were not deleted.

v4.2.51

v4.2.51 had two improvements and eight bug fixes.

Improvements

  • Deployed a security update required by AP Images. For details, see Important API Security Updates.
  • When Solr search data is not cached, Brightspot now searches only the default original database instead of traversing the entire database stack.

Bug fixes

  • Corrected an issue allowing editors to close a nested module's rich-text editor without seeing a warning to save unsaved changes. Specifically, the warning was missing after pressing Escape.
  • Corrected an issue generating different robots.txt rules for visitors to a URL with a www subdomain compared to a URL without a www subdomain.
  • 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 causing the rich-text editor to accept changes beyond any text actually selected.
  • 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 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 an asset's state to update if a Set field has dynamic placeholder text.

v4.2.50

v4.2.50 had three bug fixes.

Bug fixes

  • 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 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. Correcting this issue introduced a breaking change described below.
  • Corrected an issue that did not account for the Zip Slip vulnerability. A security check now exists to detect and avoid this vulnerability.

Breaking changes

  • 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.

v4.2.49

v4.2.49 had three bug fixes.

Bug fixes

  • Corrected an issue that threw a java.lang.NullPointerException error when uploading images through the Upload widget.
  • Corrected an issue preventing proper update of default placeholder text. For example, a Byline field's default placeholder text is an asset's author. Deleting the author from the asset did not remove the author from the Byline field.
  • Corrected an issue causing the rich-text editor to mark correctly spelled words as incorrect, and incorrectly spelled words as correct.

v4.2.48.3

v4.2.48.3 had one bug fix.

Bug fixes

  • 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. Correcting this issue introduced a breaking change described below.

Breaking changes

  • 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.

v4.2.48.2

v4.2.48.2 had one bug fix.

Bug fixes

  • Corrected an issue causing the rich-text editor to mark correctly spelled words as incorrect and incorrectly spelled words as correct.

v4.2.48.1

v4.2.48.1 had one bug fix.

Bug fixes

  • Corrected an issue causing the method ByIdIterator#next to indefinitely return the same object.

v4.2.48

Note

v4.2.48 is an official, cumulative release of all of its previous release candidates. See below for a breakdown of what each release candidate included. When upgrading to this version, your implementation of Brightspot receives all bug fixes, improvements, and new features detailed in this topic.

v4.2.48 had six bug fixes.

Bug fixes

  • Corrected an issue causing display of the SAML tab in a user's profile.
  • Corrected an issue preventing display of the control at the end of an embedded record list.
  • Corrected an issue preventing display of archived dashboards in the Dashboards widget.
  • Corrected an issue preventing images from exiting the draft state after uploading those images into a gallery enhancement in the rich-text editor and then publishing the parent asset. For example, an editor starts a new article and adds a gallery enhancement in the rich-text editor. The editor then bulk uploads images into the gallery and publishes the asset. The bulk-uploaded images never appeared as published.
  • Corrected an issue causing extraneous resolution of references when the referred object is invisible.
  • Corrected an issue in which the replication server stopped sending ping requests.

The following release candidates are also part of this release.

v4.2.48-rc.2024.1.8

v4.2.48-rc.2024.1.8 had two bug fixes.

Bug fixes

  • Corrected an issue causing text marked as deleted in tracked changes to be deleted without explicitly accepting the change.
  • Corrected an issue causing inconsistent and incorrect behavior when attempting to accept a change that deleted a paragraph.

v4.2.48-rc.2023.12.13

v4.2.48-rc.2023.12.13 had nine bug fixes and one improvement.

Improvements

  • If an error occurs when uploading a media file (image, video, audio), Brightspot displays diagnostic messages.

Bug fixes

  • Corrected an issue causing words to be flagged as spelling errors when part of the word was typed as a tracked change.
  • Corrected an issue preventing operational restriction of the Solr facet limit.
  • Corrected an issue for which inserting an @-mention of an editor in the Conversation widget incorrectly added the widget's placeholder text.
  • Corrected an issue in which spell checking caused a reduction in performance.
  • Corrected an issue preventing spell checking on Macs with the Apple Silicon chip.
  • Corrected an issue causing logins to X (Twitter) from Brightspot to expire after approximately two hours.
  • Corrected an issue causing drafts of vanity redirects to behave as if they were live. For example, an editor creates a new vanity redirect from Asset A to Asset B. Even though the redirect was in draft status, Brightspot activated the redirect.
  • Corrected an issue preventing saving updates to objects created with the method Copyable#copy.
  • Corrected an issue throwing a NullPointerException when replying to a post in an asset's conversation.

v4.2.48-rc.2023.10.31

v4.2.48-rc.2023.10.31 had four bug fixes.

Bug fixes

  • Corrected an issue preventing scheduled assets from being published when the scheduled date arrives.
  • Corrected an issue that prevented correct initialization of values in the content edit form, such as when changing a list from advanced to dynamic.
  • Corrected an issue causing the ingestion of Google Analytics 4 to fail.
  • Corrected an issue throwing a NullPointerException error when attempting to log in.

v4.2.48-rc.2023.9.28

v4.2.48-rc.2023.9.28 had three bug fixes and two improvements.

Bug fixes

  • Corrected an issue preventing the Add Shared control from working as expected.
  • Corrected an issue that displayed the tab selector in the content edit form when only one tab was available. (When only one tab is present in a form, the tab selector should not appear.)
  • Corrected an issue exposing an XSS vulnerability for text fields.

Improvements

  • Deployed compatibility with Twitter API v2.
  • Greatly improved performance of notification deliveries. See "Breaking changes," below.

Breaking changes

  • A reindex of all ToolSubscriber types (e.g., ToolUser) is necessary in order for the Publish, Workflow, and Translation notifications to continue to be delivered to those subscribers. (Active users will not experience an interruption because they are resaved automatically during their session.)

v4.2.48-rc.202308

v4.2.48-rc.202308 had one bug fix and two improvements.

Bug fixes

  • Corrected an issue that prevented editors from assigning to a role any content forms having a site-specific scope.

Improvements

  • Logging triggered by cms/tool/isActivityLogged was expanded to include the following:

    • Bulk actions (edit and archive).
    • Saves triggered by API requests, such as via GraphQL CMA and REST CMA.
    • Saves done via impersonation.
  • Added README documentation to the OneLogin authentication module.

v4.2.47.3

v4.2.47.3 had one bug fix.

Bug fixes

  • Corrected an issue that threw a java.lang.NullPointerException error when uploading images through the Upload widget.

v4.2.47.2

v4.2.47.2 had one bug fix.

Bug fixes

  • Corrected an issue causing words to be flagged as spelling errors when part of the word was typed as a tracked change.

v4.2.47.1

v4.2.47.1 had one bug fix.

Bug fixes

  • Corrected an issue preventing operational restriction of the Solr facet limit.

v4.2.47

v4.2.47 had 10 bug fixes and two improvements.

Bug fixes

  • Corrected an issue causing insertion of extraneous <br/> tags when pasting text into a blank rich-text editor.
  • Corrected an issue causing overwrite of HTTP headers on StorageItemBeforeSave objects.
  • Corrected an issue causing overflow of long usernames in the Revisions widget.
  • Corrected an issue causing repeated /contentState calls when opening an asset in the browser, and when that asset has a dynamically hidden embedded record.
  • Corrected an issue preventing expected application of CSS classes in the content edit form when those classes are applied with the annotation @ToolUi.CssClass. For example, if a field has the annotation @ToolUi.CssClass("is-third"), the class is-third was applied to the field only after the first save.
  • Corrected an issue preventing display of AWS Comprehend suggestions.
  • Corrected an issue causing a gateway timeout when searching for a URL and sorting the results by calendar date.
  • Corrected an issue causing degraded performance during cache replication.
  • Corrected an issue causing an audience selector to appear in the editorial toolbar when an asset is in a workflow and before the asset is published.
  • Corrected an issue allowing a user to see a dashboard without appropriate permissions. Specifically, User A is assigned to a role that excludes the dashboard. When User B impersonates User A, User B sees the dashboard.

Improvements

  • Improved robustness of the regular expression SearchQueryParser.URL_PATTERN.
  • The method DefaultDatabasePing#ping now calls Database.Static#getDefaultOriginal to ensure it retrieves the original default database (instead of a possibly overridden default database).

v4.2.46.1

v4.2.46.1 had one improvement.

Improvements

  • If an error occurs when uploading a media file (image, video, audio), Brightspot displays diagnostic messages.

v4.2.46

v4.2.46 had seven bug fixes.

Bug fixes

  • Corrected an issue causing a copied value to be assigned a default value instead of retaining an assigned null. For example, an instance of Article has a subheadline intentionally set to null, and the class Article specifies the subheadline field has a default value of Short read. When copying the instance, the new object's subheadline was set to Short read instead of null.
  • Corrected an issue that threw a java.lang.ClassCastException when attempting to retrieve an ExternalContentRichTextElement (such as TweetUrl or RawHtml).
  • Corrected an issue that caused incorrect placement of the icon for resetting dashboard column widths.
  • Corrected an issue that caused permissions from different roles to be unnecessarily restrictive. For example, User A is assigned Role 1 (having access to all content types) and Role 2 (having access to only articles). In this scenario, User A had access only to articles (instead of all content types).
  • Corrected an issue that caused edits to be lost when an asset transitions from one status to another.
  • Corrected an issue that caused pinned replies in an asset's conversation to be lost. For example, a post in the Conversation widget has three replies. Pinning one of those replies removed it from the post.
  • Corrected an issue that applied incorrect styling to posts in the Conversation widget.

v4.2.45

v4.2.45 had five bug fixes and two improvements.

Improvements

  • Added support for customized User-Agent request headers when sending requests to a DIMS endpoint.
  • Added logic to prevent data loss when adding objects to a List<T>.

Bug fixes

  • Corrected an issue in which an editor's local time zone America/Mexico_City was not accounted for when the Brightspot server's time zone was America/New_York. For example, publishing an asset at 13:00 in Mexico City appeared as published at 15:00.
  • Corrected an issue that prevented a selection's form from being initialized correctly. For example, if you selected an internal call to action, and then selected an external call to action, the external call to action's URL field was not initialized.
  • Corrected an issue that prevented the method ContentDeliveryApiEndpointTest#testAnnotationsQuery from cleaning up all instances of WebRequestOverride.
  • Corrected an issue that caused unit tests involving WebRequest objects to fail.
  • Corrected an issue that caused the method ReplicatorCacheUpdater#pull to fail when the inbound message was longer than 4194304 bytes.

v4.2.44

v4.2.44 had one bug fix and three improvements.

Improvements

  • Added an interface to ingest data from Google Analytics 4.
  • Implemented Google Analytics 4 for reporting at the site, search, and asset levels.
  • Added features for ingesting and reporting custom Google Analytics 4 events.

Bug fixes

  • Corrected an issue that prevented new fields from being included in custom content forms. In particular, the Hidden Items widget in Edit Content Form did not include the new field, so admins could not add it to existing content forms. For example, a developer added a new field Eyebrow to the standard content type Article. Admins had no way of adding Eyebrow to custom content forms based on Article.

v4.2.43

v4.2.43 had 15 bug fixes and one improvement.

Improvements

  • Introduced a code change that dramatically reduced the time required for localizing text in the UI.

Bug fixes

  • Corrected an issue in which fields annotated with @Where were disabled in the Bulk Edit widget.
  • Corrected an issue in which copying Location objects to a Solr database generated a RemoteSolrException.
  • Corrected an issue in which importing data from Google Analytics generated duplicate entry and queue full errors.
  • Corrected an issue that prevented field notes marked up with <ul><li> to appear as a bulleted list.
  • Corrected an issue that prevented correct paging of form submissions.
  • Corrected an issue that caused a border to appear in the content edit form when adding tags or authors.
  • Corrected an issue that, in the context of a workflow, caused the Revisions widget to mark an asset's state as Published when the transition was actually back to the New state.
  • Corrected an issue that caused a blank error message to appear in an editorial content type's rich-text field.
  • Corrected an issue that caused a Location field to extend outside its allocated space in the content edit form when the browser's window is narrowed.
  • Corrected an issue that prevented deletion of custom content forms when the underlying editorial content type was deleted.
  • Corrected an issue preventing a module's Template field from displaying all available templates. For example, when selecting a list module for a page's content, the module picker previewed five available templates. After selecting one of the templates and returning to the content edit form, the Template tab listed only one of those five templates (instead of all five).
  • Corrected an issue causing a Query generated by Grouping#createItemsQuery to throw an SQLException when the original Query contained a Query#having predicate.
  • Corrected an issue that caused a long error message starting with Multiple entries with same key to appear when creating multiple content forms with the same name for the same underlying content type. (For example, creating a content form named Article1 based on the Article content type, and creating another content form with the same name Article1 for the Article content type.) Starting with this release, such duplicate content forms are flagged with the standard error message Must be unique but duplicate at.
  • Corrected an issue that prevented a null-value field annotated with class implementing DynamicField from correctly updating. For example, a field endDate is annotated with @DynamicFieldClass(EndDateDynamicField.class). If endDate is null, its value was never updated even though the method EndDateDynamicField#update required it to do so.

v4.2.42

v4.2.42 had 60 bug fixes and 6 improvements.

Improvements

  • Removed numeric sorting of possible statuses in the Workflow widget. Sorting of statuses are now case-insensitive, which may not intuitively reflect the "next" status in a workflow. Administrators can force a natural sorting of the statuses by prefixing each possible status with numbers. For example, labeling statuses as 01 Fact Check, 02 Review, and 03 Proof guarantees a natural sort order in the workflow widget.
  • Deleting a conversation's post now updates the listing in the Conversation cluster. Until now, editors needed to refresh the entire content edit form to update the posts in the conversation (and no longer view the deleted post).
  • Thumbnails are no longer automatically generated for file types that have no inherent preview, such as .zip. Thumbnails continue to be automatically generated for all supported image files.
  • After opening a sequence of widgets (such as the search panel and then Select Fields), pressing Escape closes the most recently opened widget. Users need to press Escape multiple times to close all widgets.
  • Initial loading of all global content edit forms is more performant.
  • Improved performance of the reloader so that it does not scan the entire code base for every page request.

Bug fixes

  • Corrected an issue in which exporting results from the search panel using default columns did not export the default columns.

  • Corrected an issue preventing an asset from being published on its scheduled date.

  • Corrected an issue that suppressed the first column's heading in table reports and associated .csv exports.

  • Corrected an issue in which closing the Replace All widget unexpectedly pasted text into the rich-text editor.

  • Corrected an issue that caused A/B promos to disappear from the front end of published assets containing them.

  • Corrected an issue causing incorrect content-type specific filters in the search panel to appear. For example, when searching for Articles, one the filters under Article Filters was Test Type.

  • Corrected an issue in which the method LazyLoadEnhancer#findRecordableClass did not ignore unsupported static fields types.

  • Corrected an issue causing the trigger Copyable#onCopy to be fired more than once.

  • Corrected an issue throwing an error Query took too long to execute! when selecting more than 50 users in the search panel and then clicking the hotdog menu .

  • Corrected an issue causing an incorrect background color to appear in the preview pane.

  • Corrected various errors in the rendering of CMS forms.

  • Corrected an issue causing infinite recursion after upgrading to H2 database version 1.4.200.

  • Corrected an issue causing the deprecated annotation @ToolUi.Placeholder to ignore changes returned from the referred method.

  • Corrected an issue in which, when printing the search panel's results in board view, the printed rendition actually reflected list view.

  • Corrected an issue in which Integer fields in embedded objects did not validate correctly after first publish. For example, an integer field in an embedded object is constrained with annotations @Minimum(1) and @Maximum(12). After clicking Publish for the first time, editors could enter values beyond the annotated range, and even enter non-integer values.

  • Corrected an issue in which the search panel did not display correct values in certain columns when the results included mixed content types. For example, a column was blank and the corresponding values appeared in a separate column outside of the results table.

  • Corrected an issue in which clicking the information icon in an image in the search panel displayed a summary widget that was empty.

  • Corrected an issue causing several seconds' delay before correctly rendering the labels in a list of modules.

  • Corrected an issue in which certain front-end templates, such as Simple List - Grid, did not render assets correctly.

  • Corrected an issue that prevented Editor A (with two-factor authentication configured) from impersonating Editor B (who needs two-factor authentication but has yet to configure it). Editor A can now impersonate Editor B even though Editor B has not yet configured two-factor authentication.

  • Corrected an issue in which the static block in StateValueUtils did not account for embedded objects as a value in a comparison predicate.

  • Corrected an issue causing generation of intermediate image sizes even when such generation was disabled.

  • Corrected an issue in which including the subdirectory /_track in a URL generated a NullPointerException.

  • Corrected an issue preventing text fields in embedded records annotated with @DisplayGrid from wrapping after publishing.

  • Corrected an issue causing the preview pane to update several times after a single change in the content edit form.

  • Corrected an issue in which, with paragraphs after a list separated by multiple line breaks (<br/><br/>), the rich-text editor replaced those line breaks with a single line break (<br/>), causing the paragraphs to appear as one. The rich-text editor now replaces one or more of such line breaks with a single paragraph tag.

  • Corrected an issue preventing the Lead field from changing color in the content edit form to indicate it has been changed but not yet saved.

  • Corrected an issue generating a NullPointerException when a user cancels out of the Google Drive authentication workflow (instead of completing the workflow).

  • Corrected an issue that labeled copied assets as Scheduled instead of Draft.

  • Corrected an issue in which SiteMapTask was throwing unnecessary NoCurrentWebRequestException errors.

  • Corrected an issue in which rich text set in a font weight different from 400 was set as boldface.

  • Corrected an issue in which .jpg and .png favicons configured in the Favicon field were not rendered.

  • Corrected an issue in which data in the Site Search Queries widget appear outside the widget's boundaries.

  • Corrected an issue in which certain back-end clusters could not be collapsed.

  • Corrected an issue in which, in the Sites widget, certain sequences of selections in the Owner and Access fields threw JavaScript errors.

  • Corrected an issue in which Solr faceting was limited to 100. The new limit is Java's Integer.MAX_VALUE.

  • Corrected an issue in which the delivery option CMS Only displayed intermittently.

  • Corrected an issue in which loading a list (such as Settings > CMS > Quick View > Quick View Type Settings > Fields) was done intermittently and gave the impression Brightspot became unresponsive. Such fields remain in their original state until the data is fully retrieved from the server, and then displayed simultaneously.

  • Corrected an issue that threw an error while attempting to work through a workstream containing 5,000 or more assets.

  • Corrected an issue that prevented adding hyperlinks in the rich-text editor.

  • Corrected an issue that retained assets in scheduled status even after the schedule itself was deleted. With this release, when a schedule is deleted, all of the associated assets are no longer scheduled.

  • Corrected an issue that prevented the @CollectionMinimum annotation from accounting for null values.

  • Corrected an issue preventing previews from appearing in the module picker.

  • Corrected an issue that prevented selection of a shared asset as a section's lead.

  • Corrected an issue in which the system default EST/EDT time zone was used as a timestamp when restoring work in progress, even though the editor selected a different preferred time zone.

  • Corrected an issue causing the theme editor's paintbrush icon to appear over the production guide's help icon .

  • Corrected an issue causing links to a module having a .gif as the lead image to render the image extremely large in the back end.

  • Corrected an issue causing the content edit form for galleries to be laid out incorrectly: field labels and values did not line up as expected.

  • Corrected an issue preventing the production guide's scrolling to a date field when clicking on the field's help icon .

  • Corrected an issue in Styleguide that caused the widget at the bottom of the right rail to appear half missing.

  • Renamed the Utils class to DariUtils.

  • Corrected an issue in which updating a revision's publish date ( > Tools > Advanced Edits > New Publish Date) actually published the revision.

  • Corrected an issue causing text in the rich-text editor to be saved as encoded HTML. For example, the text This is some text with spaces was saved as This%20is%20some%20text%20with%20spaces.

  • Corrected an issue in which, when creating a tag with a shared image as a lead, the image does not appear in the front end.

  • Corrected an issue in which dynamic placeholder text (using the annotation @DynamicPlaceholderClass) was not being applied to fields inside embedded objects.

  • Sitemap generation—

    • Corrected the contents of a sitemap's <lastmode> element so that it conforms to YYYY-MM-DDThh:mm:ssTZD as specified in the W3C's Date and Time Formats.
    • Corrected the value of the xsi:schemaLocation attribute so that it points to the correct URL of a sitemap index schema.
  • Corrected an issue with the GraphQL Management API form that threw an error in the Read Types field.

Breaking changes

  • Improved performance of reloader relies on the file system's watcher virtiofs. This feature is not available in Docker versions prior to 4.6. If you are running one of those earlier Docker versions, you need to disable the file system's watcher by setting dari/sourceWatchersDisabled=true.

v4.2.41.3

v4.2.41.3 had two bug fixes.

Bug fixes

  • Corrected an issue in which spell checking caused a reduction in performance.
  • Corrected an issue preventing spell checking on Macs with the Apple Silicon chip.

v4.2.41.2

v4.2.41.2 had one bug fix.

Bug fixes

  • Corrected an issue causing multiple Slack and email notifications for a single triggering event.

v4.2.41.1

v4.2.41.1 had two bug fixes.

Bug fixes

  • Corrected an issue that caused error messages to appear in place of code blocks when the containing topic included anchors.
  • Corrected an issue causing text in the rich-text editor to be saved as encoded HTML. For example, the text This is some text with spaces was saved as This%20is%20some%20text%20with%20spaces.

v4.2.41

v4.2.40 had 18 bug fixes and two improvements.

Improvements

  • A new Query.option is available to opt out of Solr query joins.
  • When searching for a child asset to include in a parent asset, the status Revision is no longer available in the search panel. For example, when searching for an author to add to an article, editors can no longer filter for authors in the Revision status.

Bug fixes

  • Corrected an issue in which a question mark ? in a search term incorrectly returned zero results.
  • Corrected an issue that caused the message Restored Work In Progress to appear after publishing, closing, and then re-opening an asset.
  • Corrected an issue in which queries working in Solr 4.6.1 no longer work in Solr 8.11.1.
  • Corrected an issue in which fields annotated with @Hidden are unavailable in custom content edit forms.
  • Corrected an issue in which SVG images split a child RTE module when placed inside a parent RTE. For example, a child RTE module Priority Tag contains an embedded SVG. When embedding the Priority Tag module into a parent rich-text editor, the SVG split the module into two.
  • Corrected an issue in which faceted fields are not retained in a cloned Solr query.
  • Corrected an issue in which character formatting was lost in the ProseMirror rich-text editor after applying a hyperlink. For example, applying a hyperlink to the formatted text Brightspot User Guide removes the boldface and underline.
  • Corrected an issue with the SitemapTask iteration that resulted in an invalid offset for an SQL query.
  • Corrected an issue in which using using Alteration<?> to move fields between tabs caused those fields to always appear above the fields originally in the tab. For example, you define public class SiteAlteration extends Alteration<Site> that uses @ToolUi.Tab(TAB_MAIN) to move the Favicon field from the Front-End tab to the Main tab. The Favicon field appeared above all other fields originally in the Main tab, even if the field order in code or various @ToolUi annotations indicated differently.
  • Corrected an issue in which the method ImageSize#getAttributes did not use external ImageMetadata information when the image itself has no explicit width or height.
  • Corrected an issue in which archived vanity and site redirects always threw error 404. For example, an admin archived the redirect from /index to /welcome. With this fix, requests to /index display the actual asset at /index.
  • Corrected an issue in which the height and width were not set for uploaded WebP images.
  • Corrected an issue in which requests for a www subdomain used a different robots.txt than those for the domain itself. For example, requests for www.brightspot.com used a different robots.txt file than a request for brightspot.com.
  • Corrected an issue in which clips made through Amazon Elemental did not appear in the video's Edit Video > Clip tab.

Breaking changes

  • The fix for Solr 8.11.1 described above requires a SQL-to-Solr copy.

v4.2.40.1

v4.2.40.1 had one bug fix.

Bug fixes

  • Corrected an issue causing insertion of extraneous <br/> tags when pasting text into a blank rich-text editor.

v4.2.40

v4.2.40 had 10 bug fixes and one improvement.

Improvements

Bug fixes

  • Corrected an issue that caused unresponsive attempts to log in to Brightspot using the Google Authenticator.
  • Corrected an issue in which, when adding a module in the rich-text editor, the Enhancement Style fields were not appearing.
  • Corrected CSS styling for widgets used to upload files in a list field.
  • Corrected an issue that caused the Credit field from images imported from Adobe Bridge to appear incorrectly.

v4.2.39.3

v4.2.39.3 had one bug fix and one improvement.

Improvements

  • Greatly improved performance of notification deliveries. See "Breaking changes," below.

Bug fixes

  • Corrected an issue causing multiple Slack and email notifications for a single triggering event.

Breaking changes

  • A reindex of all ToolSubscriber types (e.g., ToolUser) is necessary in order for the Publish, Workflow, and Translation notifications to continue to be delivered to those subscribers. (Active users will not experience an interruption because they are resaved automatically during their session.)

v4.2.39.1

v4.2.39.1 had one bug fix.

Bug fixes

  • Corrected an issue in which queries working in Solr 4.6.1 no longer work in Solr 8.11.1.

Breaking changes

  • The fix described above requires a SQL to Solr copy.

v4.2.39

v4.2.39 had one bug fix and two improvements.

Improvements

  • Added the SQL predicate HAVING to query hash code.
  • A new setting brightspot/ui/disableImageProxy is available to disable the CMS proxy servlet.

Bug fixes

  • Corrected an issue in which editors logging in to Brightspot sites integrated with OneLogin saw an extraneous SAML warning.

v4.2.38.1

v4.2.38.1 had one bug fix.

Bug fixes

  • Corrected an issue causing track changes in the rich-text editor to throw a Cannot read properties of undefined (reading 'displayName') message in the JavaScript console.

v4.2.38

v4.2.38 had two bug fixes.

Bug fixes

  • The Query Usages debug tool repeatedly launched a background task, thereby affecting performance. That tool is no longer supported and was removed from the Dari standard tools. Developers using previous versions of Brightspot should avoid using that tool.
  • Corrected an issue that prevented the content edit form from displaying an asset's content.

v4.2.37.3

v4.2.37.3 had one bug fix.

Bug fixes

  • Corrected an issue that caused edits to be lost when an asset transitions from one status to another.

v4.2.37.2

v4.2.37.2 had one bug fix.

Bug fixes

  • Corrected an issue in which certain back-end clusters could not be collapsed.

v4.2.37.1

v4.2.37.1 had three bug fixes.

Bug fixes

  • Corrected an issue in which character formatting was lost in the ProseMirror rich-text editor after applying a hyperlink. For example, applying a hyperlink to the formatted text Brightspot User Guide removes the boldface and underline.
  • Corrected an issue in which SVG images split a child RTE module when placed inside a parent RTE. For example, a child RTE module Priority Tag contains an embedded SVG. When embedding the Priority Tag module into a parent rich-text editor, the SVG split the module into two.
  • Corrected an issue in which the system default EST/EDT time zone was used as a timestamp when restoring work in progress, even though the editor selected a different preferred time zone.

v4.2.37

v4.2.37 had seven bug fixes and two improvements.

Improvements

  • A new setting at the global level allows editors to create comments directly from selected text in the rich-text editor.
  • In the Brightspot header, the banner containing the environment name now renders multi-line text.

Bug fixes

  • Corrected an issue in which a next arrow appears on the last page in a list of paginated results.
  • Corrected an issue in which text pasted inside an existing comment was pasted as plain text. For example, an editor copied a URL from a browser. The editor placed the cursor inside a comment in the rich-text editor and pastes. The pasted URL appeared as plain text, not as part of the comment.
  • Corrected an issue in which exact-match queries were returning incorrect results.

Breaking changes

  • The fix for exact-match queries described above requires a fresh SQL to Solr copy.

v4.2.36

v4.2.36 had two bug fixes.

Bug fixes

  • Corrected an issue that caused a JavaScript error when no broadcast component is present.
  • Corrected an issue that caused a compilation error when calling ToolPageContext#createObjectLabelHtml.

v4.2.35.3

v4.2.35.3 had one bug fix.

Bug fixes

  • Corrected an issue preventing changes from being saved in a copied asset. For example, an editor created a new asset by copying an existing one. Changes to that copied asset were not saved.

v4.2.35.2

v4.2.35.2 had one bug fix.

Bug fixes

  • Corrected an issue in which an ampersand & incorrectly returned zero results when using the AP Images integrated search.
  • Corrected an issue that threw a StringIndexOutOfBoundsException when getting DIMS image URLs.
  • Corrected an issue in which old Styleguide assets were never removed from a browser's cache, causing those assets to be used in rendering.

v4.2.35.1

v4.2.35.1 had three bug fixes.

Bug fixes

  • Corrected an issue in which links and other enhancements embedded into a custom priority tag (in the rich-text editor) were causing the priority tag to be split into multiple instances instead of a single tag that encompassed all text and enhancements added to it.
  • Corrected an issue in which the system default EST/EDT time zone was used as a timestamp when restoring work in progress, even though the editor may have selected a preferred time zone.

v4.2.35

v4.2.35 had 8 bug fixes and 2 improvements.

Note

v.4.2.35 fixes an issue discovered in v.4.2.34. When evaluating an upgrade, Brightspot advises that customers upgrade to v.4.2.35 version or later.

Improvements

  • Table rows can now be isolated for processing on the front end.
  • When uploading an image with dots in the path, the method RandomUuidStorageItemPathGenerator#createPath assigns the variable lastDotAt as fullFileName.lastIndexOf('.').

Bug fixes

  • Addressed an XSS security vulnerability.
  • Corrected an issue in which invalid paths produced server error 500.
  • Corrected an issue in which Google Authenticator stopped working for two-factor authentication.
  • Corrected an issue that incorrectly resolved some references in the REST CMA.

Breaking changes

  • None

v4.2.34

v4.2.34 had 3 bug fixes and 5 improvements.

Caution

A significant issue that affects two-factor authentication was discovered in v.4.2.34 on September 23, 2022. v.4.2.35 fixes this issue. When evaluating an upgrade, Brightspot advises that customers upgrade to v.4.2.35 version or later.

Improvements

  • Styleguide now generates static HTML files that are useful for analysis and testing.

Bug fixes

  • Corrected an issue preventing the References widget from appearing in the content edit page.
  • Corrected an issue preventing update of the Status field in the content edit page for (front-end) Users.
  • Corrected an issue resulting in incorrect display of broadcast messages.
  • Corrected an issue that displayed an error message java.lang.NullPointerException when attempting to log in with a username but without a password.

v4.2.33.1

v4.2.33.1 had one bug fix.

Bug fixes

  • Corrected an issue causing insertion of extraneous <br/> tags when pasting text into a blank rich-text editor.

v4.2.33

v4.2.33 had 5 bug fixes and 4 improvements.

Improvements

  • The rich-text editor now renders standard tags coded in the HTML editor.
  • Styleguide now supports arbitrary properties in templates and style configurations.

Bug fixes

  • Corrected an issue in which clicking Earlier in an asset's Conversation widget duplicated the current post instead of paging through previous posts.
  • Corrected an issue in which a method in the TimeSeriesType class caused an array index out-of-bounds exception.

v4.2.32.1

v4.2.31.3 had two bug fixes.

Bug fixes

  • Corrected an issue in which the criteria for creating a workstream were not saved with the workstream itself.
  • Corrected an issue that caused re-connection to the replicator server to deliver an asset's old revision (the replicator server's cache was not invalidated after re-connection to Brightspot).

v4.2.32

v4.2.32 had 7 bug fixes and 6 improvements.

Improvements

  • The InDesign synchronization now recognizes paragraph styles.
  • The controls > Start Revision and Start New Revision now behave identically.
  • Content search queries were improved.
  • Editors can now start a revision from a revision. (Prior to this release, any new revision started from the currently live version.)

Bug fixes

  • Corrected an issue in which translations of assets in memory, such as standalone dynamic lists, overwrote the original asset instead of creating the translation as a new asset.
  • Corrected an issue in which two editors working simultaneously on a scheduled asset may overwrite or revert each other's changes to that asset.
  • Corrected an issue that was preventing the replication cache from staying in sync or updating.

Breaking changes

A bug fix to the rich-text editor mandates the following update to code: RTE implementations with preview set to true but not implementing the required writePreviewHtml method must now implement that method to avoid a run-time error.

v4.2.31.4

v4.2.31.4 had one improvement.

Improvements

  • Added the SQL predicate HAVING to query hash code.

v4.2.31.3

v4.2.31.3 had one bug fix.

Bug fixes

  • Corrected an issue that was preventing the replication cache from staying in sync or updating.

v4.2.31

v4.2.31 had 9 bug fixes and 4 improvements.

Improvements

  • Solr implementations were refactored to improve performance of indexing, searching, and sorting.
  • Database cache replication is now more robust to cover non-MySQL layers and to account for multi-tenant environments.

Bug fixes

  • Corrected an issue causing dynamic fields to behave erratically. Examples included slow rendering in the content edit form, requiring two clicks of Publish to save, and incorrect show/hide behavior.
  • Corrected an issue causing tables to be rendered incorrectly on the front end.
  • Objects instantiated from a Modified<ObjectField> class intermittently lost data in the new fields, or duplicated the new fields. Symptoms included extraneous markings in the content edit form and lost meta data for imported videos.
  • Corrected interaction with the Create New list when clicked from inside a pop-up.
  • Corrected an issue with the workflow notifications mechanism that did not honor certain filter settings.
  • Corrected rendering of tabs in an editorial content edit form.
  • Resolved a run-time exception that was thrown when the argument to the method Utils.toLabel(String label) started with an underscore.
  • Corrected an issue that prevented links to specific migration jobs from appearing in a migration widget.

v4.2.30.4

v4.2.30.4 had one bug fix.

Bug fixes

  • Corrected an issue in which default text in a rich-text field did not revert to a read-only appearance when clicking in and then clicking out of the field (without making any changes). For example, an editor creates and saves an article. Brightspot populates the Promo Title field based on the headline. The editor views the Promo Title field, whose default text appears as read-only (italic, light gray). The editor clicks inside the field, and the text appears as editable (normal, black). The editor clicks outside the field without making any changes. The field's text retained the editable appearance when it should revert to read-only.

v4.2.30.3

v4.2.30.3 had one bug fix.

Bug fixes

  • Corrected interaction with the Create New list when clicked from inside a pop-up.

v4.2.30.2

v4.2.30.2 had one improvement.

Improvements

  • A new setting at the global level allows editors to create comments directly from selected text in the rich-text editor.

v4.2.30.1

v4.2.30.1 had one improvement.

Improvements

  • Added ability to sort interface implementations in the GraphiQL explorer.

v4.2.30

v4.2.30 had 21 bug fixes and 3 improvements.

Improvements

  • Error indicators in content edit pages and settings forms now also appear at the field level.
  • When expanding an object in the GraphiQL Explorer, no child objects are automatically selected.
  • Commenting and tracked changes were improved when the rich-text editor is in full-screen mode.

Bug fixes

  • Corrected an issue in which developers could not customize a field's display name.
  • Added protection against open-redirect attacks from the search panel.
  • Corrected an issue causing image searches to ignore colors when an editor keys the color's hex value.
  • Corrected an issue in which the criteria for creating a workstream were not saved with the workstream itself.
  • Corrected an issue in which the Recent Activity widget did not correctly display results when there are more than 250 editors.
  • Corrected an issue preventing the rich-text editor from displaying Instagram enhancements.
  • Corrected an issue causing an extraneous option to appear in an editorial content type's selection field.
  • Corrected an issue in which dynamic placeholder text did not correctly update.
  • Corrected an issue in which implementing the Substitution interface caused a run-time error.
  • Corrected an issue that allowed placing makers on read-only Location fields or placing shapes on read-only Region fields (even though the markers and shapes were never actually saved).
  • Corrected an issue was occasionally adding unintended line breaks to items in a list.
  • Corrected an issue that caused a JavaScript error when creating a new image.

v4.2.29.6

v4.2.29.6 had one improvement.

Improvements

  • Added the SQL predicate HAVING to query hash code.

v4.2.29.5

v4.2.29.5 had one bug fix.

Bug fixes

  • Corrected an issue that caused a JavaScript error when creating a new image.

v4.2.29.4

v4.2.29.4 had one improvement.

Improvements

  • A workflow permission can be configured to allow a role to only transition an asset to the Publish state.

v4.2.29.3

v4.2.29.3 had one bug fix.

Bug fixes

  • Corrected an issue in which objects instantiated from a Modified<ObjectField> class intermittently lost data in the new fields, or duplicated the new fields. Symptoms included extraneous markings in the content edit form and lost meta data for imported videos.

v4.2.29.2

v4.2.29.2 had two bug fixes.

Bug fixes

  • Corrected an issue in which implementing the Substitution interface caused a run-time error.
  • Corrected an issue in which the Recent Activity widget did not correctly display results when there are more than 250 editors.

v4.2.29.1

v4.2.29.1 had two bug fixes.

Bug fixes

  • Corrected an issue in which dynamic placeholder text did not correctly update.
  • Corrected an issue was occasionally adding unintended line breaks to items in a list.

v4.2.29

v4.2.29 had 43 bug fixes and 12 new features.

Improvements

  • The sorting in the content picker is now more intuitive; the sort is by descending update date.
  • The commenting function in the rich-text editor was enhanced to allow for expanding and collapsing comments, displaying @-prompts, and inserting a comment after a region of selected text.
  • The RestManagementAPI class now supports sorting.
  • The GraphQL editor now allows queries and updates associated with one site to access content associated with another site (subject to permissions).
  • The performance of the copy job from MySQL to Solr was significantly improved.
  • The GraphQL Explorer now hits client-side endpoints instead of server-side endpoints.
  • In the rich-text editor, pressing Shift+Enter inserts a single <br> line break, and pressing Enter inserts two consecutive <br><br> line breaks.
  • A performance improvement reduced the use of parallel streams when examining StorageItems on AWS S3 servers.
  • The performance of GraphQL validation of non-persisted queries was significantly improved.
  • The task ScheduleFilter no longer increments the run count when it is not running on the configured task host.
  • The graphql-java library was upgraded to version 17.

Bug fixes

  • In some scenarios, a custom content edit widget was not rendered on the back end. This defect has been addressed.
  • Due to a permissions problem, editors who clicked on the link View all x references in the References widget received an error Request URI Too Long. This defect has been addressed.
  • In some scenarios, the Scheduled Events widget displayed an incorrect date or incorrect assets for a particular date. This defect has been addressed.
  • In some scenarios, a regression error caused oEmbed requests to return a status code 403. This defect has been addressed.
  • Prior to this release, an editor with an assigned role could not view archived sites in Admin > Sites & Settings > Sites. Starting with this release editors can see archived sites (subject to other permissions).
  • Due to a regression error, some UUID fields appeared as their JSON representations instead of the actual value. This defect has been addressed.
  • Boost algorithms in front-end search could lead to parse exceptions on the Solr server. This defect has been addressed.
  • In classes that implement DynamicField, calling the method #setHidden(true) and then #setHidden(false) did not display the field on the content edit form. This defect has been addressed.
  • In some scenarios, the Scheduled Activity widget did not render correctly in the dashboard. This defect has been addressed.
  • In some scenarios, performing an otherwise valid SAML authentication generated an error message. This defect has been addressed.
  • In some scenarios, when pasting text from Microsoft Word into the rich-text editor, and that text included a hyperlink, only the link address was pasted, not the label associated with the link. This defect has been addressed.
  • When using the two annotations @ToolUi.DropDown and @ToolUi.Placeholder on a single field, the placeholder text did not appear. This defect has been addressed.
  • When pasting tables from Microsoft Word into the rich-text editor, the table overflowed into the preview pane. This defect has been addressed.
  • When using the three annotations @DynamicPlaceholderMethod, @EditablePlaceholder, and @ToolUi.RichText on a field, the editor's updated text did not persist as WIP and the value returned to the placeholder text. This defect has been addressed.
  • In some scenarios, when inserting an asset into a workflow, the content edit form displayed a UUID instead of a workflow status. This defect has been addressed.
  • In some scenarios, a site's theme caused the content edit page for creating a Page to display incorrectly. This defect has been addressed.
  • In some scenarios, words with different character formatting lost the spaces between the words. For example, formatting such as Headless CMS caused the space between the two words to disappear. This defect has been addressed.
  • In the rich-text editor, moving an enhancement between two paragraphs eliminated the blank paragraph that was before the enhancement, causing two paragraphs to appear as one. This defect has been addressed.
  • In some scenarios, instances of a class extending Alteration<T> did not did not render correctly in the content edit form. This defect has been addressed.
  • Starting with this release, edits made in the live version do not impact locking on a new, unpublished revision. For example, Editor A starts a new revision of a published asset. Simultaneously, Editor B edits the live version, modifies some fields, and publishes. In the new revision, Editor A no longer sees that the fields modified by Editor B are locked.
  • Prior to this release, unpublished assets added to the Quick Start widget were not retained after clicking Save. This defect has been addressed, and now those assets are saved to the Quick Start widget.
  • The Author selection field no longer obscures selected authors.
  • Corrected an issue causing dashboard widgets to display a Can't render error message.
  • GraphQL nested lists, similar to Java's private List<List<List<String>>> getNested() are now supported in CMA models and CDA view models.
  • Corrected an issue causing a field to flash when the field has dynamic behavior.

Breaking changes

  • A change to the class HtmlEmbed removed the uniqueness constraint from internalName. Projects should review code to ensure this does not cause any run-time errors.

v4.2.28.6

v4.2.28.6 had one improvement.

Improvements

  • Added the SQL predicate HAVING to query hash code.

v4.2.28.5

v4.2.28.5 had one bug fix.

Bug fixes

  • Corrected an issue causing insertion of extraneous <br/> tags when pasting text into a blank rich-text editor.

v4.2.28.4

v4.2.28.3 had one improvement.

Improvements

  • When uploading an image with dots in the path, the method RandomUuidStorageItemPathGenerator#createPath assigns the variable lastDotAt as fullFileName.lastIndexOf('.').

v4.2.28.3

v4.2.28.3 had one bug fix.

Bug fixes

  • Corrected an issue in which a site's theme caused the content edit page for creating a Page to display incorrectly.
  • Corrected an issue causing a field to flash when the field has dynamic behavior.

v4.2.28.2

v4.2.28.2 had one improvement and three bug fixes.

Improvements

  • The task ScheduleFilter no longer increments the run count when it is not running on the configured task host.

Bug fixes

  • Corrected an issue in which a site's theme caused the content edit page for creating a Page to display incorrectly.
  • Corrected an issue with the rich-text editor in which moving an enhancement between two paragraphs eliminated the blank paragraph that was before the enhancement, causing two paragraphs to appear as one.
  • Corrected an issue causing instances of a class extending Alteration<T> to render incorrectly in the content edit form.

v4.2.28.1

v4.2.28.1 had six improvements and two bug fixes.

Improvements

  • The sorting in the content picker is now more intuitive; the sort is by descending update date.
  • The graphql-java library was upgraded to version 17.
  • The GraphQL editor now allows queries and updates associated with one site to access content associated with another site (subject to permissions).
  • GraphQL nested lists, similar to Java's private List<List<List<String>>> getNested(), are now supported in CMA models and CDA view models.
  • In the rich-text editor, pressing Shift+Enter inserts a single <br> line break, and pressing Enter inserts two consecutive <br><br> line breaks.
  • The performance of GraphQL validation of non-persisted queries was significantly improved.

Bug fixes

  • Corrected an issue causing dashboard widgets to display a Can't render error message.
  • Corrected an issue with the rich-text editor in which moving an enhancement between two paragraphs eliminated the blank paragraph that was before the enhancement, causing two paragraphs to appear as one.

v4.2.28

v4.2.28 had 22 bug fixes and 2 new features.

Improvements

The Publish button can have different labels depending on an asset's state. For example, the label can be Publish for assets not yet published, and Update for assets already published.

The rich-text editor's toolbar menus, and selection field menus, were improved to open and close more intuitively.

Bug fixes

A new version of a library used by Brightspot prevented filtering references by a content type. The library was downgraded to a previous version, and filtering references works as expected.

Notifications:

  • Subscriptions that included filtering by content type and site did not always honor the filter. This defect has been addressed.
  • In some scenarios, creating a revision of an asset and moving that asset through a workflow did not trigger a notification for the transition to publication. This defect has been addressed.

In some scenarios, loading an asset in the content edit form prevented the associated preview from loading. This defect has been addressed.

When hovering over , the tool tip was Start Revision for assets in a workflow. The tool tip now is Save Draft.

In some scenarios, screen shots were not displaying in Styleguide previews. This defect has been addressed.

In some scenarios, bulk edits in the search panel to update style fields did not persist. This defect has been addressed.

Prior to this release, setting a preview device for the global site did not flow to individual sites. Starting with this release, individual sites inherit the preview device from the global site.

In some scenarios, the widgets containing an image's hotspots did not render correctly in the content edit form. This defect has been addressed.

Prior to this release, deleting a content template assigned to a user prevented that user from logging in to Brightspot. This defect has been addressed.

Prior to this release, administrators could not include external types when configuring a role's permissions. Starting with this release, administrators can configure a role's content-type permissions that include external types.

Prior to this release, a post to a social network became associated with the global site instead of the site with with the corresponding asset is associated. Starting with this release, posts to social networks remain associated with the corresponding asset's site.

In some scenarios, a background process caused the Brightspot server to return a status code 500 (internal server error). This defect has been addressed.

Prior to this release, StorageItem objects did not encode spaces in file names, causing errors in downstream processing with DIMS. Starting with this release, file names in StorageItem objects are fully encoded.

v4.2.27.6

v4.2.27.6 had one improvement.

Improvements

  • Added the SQL predicate HAVING to query hash code.

v4.2.27.5

Version 4.2.27.5 had one bug fix.

Bug fixes

  • Corrected an issue in which updating a revision's publish date ( > Tools > Advanced Edits > New Publish Date) actually published the revision.

v4.2.27.4

Version 4.2.27.4 had one bug fix.

Bug fixes

  • Corrected an issue in which, when adding a module in the rich-text editor, the Enhancement Style fields were not appearing.

v4.2.27.3

v4.2.27.3 had one bug fix.

Bug fixes

  • Corrected an issue in which dynamic placeholder text did not correctly update.

v4.2.27.2

v4.2.27.2 had one bug fix.

Bug fixes

  • Corrected an issue in which, when using the three annotations @DynamicPlaceholderMethod, @EditablePlaceholder, and @ToolUi.RichText on a field, the editor's updated text did not persist as WIP and the value returned to the placeholder text.

v4.2.27.1

v4.2.27.1 had one bug fix.

Bug fixes

Prior to this release, StorageItem objects did not encode spaces in file names, causing errors in downstream processing with DIMS. Starting with this release, file names in StorageItem objects are fully encoded.

v4.2.27

v4.2.27 had 12 bug fixes and two improvements.

Improvements

  • Front-end developers have the option of excluding the tracking script track.js. Doing so eliminates possible conflicts with the tracking script included with Frost.
  • Prior to this release, the lack of a limit on records in the data cache caused excessive memory allocations. Starting with this release, the data cache is limited to a default of 100 records, with an option to change this limit.

Bug fixes

  • In some scenarios, double-clicking an enhancement inside the rich-text editor duplicated the enhancement (along with opening the edit widget).
  • When managing logons in an SSO environment, updating a role in the identify provider did not correctly update the role within Brightspot. Starting with this release, the updated role a) is correctly ingested from the identity provider, and b) updates the corresponding existing Brightspot role.
  • In some scenarios, edits to an external hyperlink in the rich-text editor were not saved.
  • A regression error introduced the possibility of infinite loops when doing database retrievals.
  • A regression error disabled the activation of common times configured in the global site; selecting a common time in a scheduler did not update the time accordingly.
  • In some scenarios, URLs with spaces were not correctly encoded to %20.
  • Prior to this release, shared previews could be indexed by search engines. Starting with this release, Brightspot injects a header field into previews to prevent such indexing.
  • When a query in the search panel retrieved no matching items, the pagination label appeared as "1 to 0 of 0."

Breaking changes

  • An update to the Frost theme removed automatic Brightspot analytics script injection. Projects previously relying on Brightspot analytics script injection must now explicitly opt-in; set Sites & Settings > Global > CMS > Page View Supplier to Brightspot Analytics.

v4.2.26.8

v4.2.26.8 had one bug fix.

Bug fixes

  • Corrected an issue that threw a java.lang.ClassCastException when attempting to retrieve an ExternalContentRichTextElement (such as TweetUrl or RawHtml).

v4.2.26.7

v4.2.26.7 had three bug fixes.

Bug fixes

  • Corrected an issue in which an ampersand & incorrectly returned zero results when using the AP Images integrated search.
  • Corrected an issue in which old Styleguide assets were never removed from a browser's cache, causing those assets to be used in rendering.
  • Corrected an issue that threw a StringIndexOutOfBoundsException when getting DIMS image URLs.

v4.2.26.6

v4.2.26.6 had one bug fix.

Bug fixes

When hovering over , the tool tip was Start Revision for assets in a workflow. The tool tip now is Save Draft.

v4.2.26.5

v4.2.26.5 had two bug fixes.

Bug fixes

  • Corrected an issue in which subscriptions that included filtering by content type and site did not always honor the filter.
  • Corrected an issue in which creating a revision of an asset and moving that asset through a workflow did not trigger a notification for the transition to publication.

v4.2.26.4

v4.2.26.4 had one bug fix.

Bug fixes

  • Corrected an issue in which custom content edit forms did not appear in the Form list when setting a role's permissions. For example, a custom form My Article exists for articles. When restricting a role's permissions to only Article, the Form list did not include My Article.

v4.2.26.3

v4.2.26.3 had one improvement and two bug fixes.

Improvements

  • Previously, editors received workflow notifications pertaining to all sites, even those to which they had no access. Starting with this release, editors by default receive workflow notifications pertaining only to those sites to which they have access.

Bug fixes

  • Corrected a regression issue throwing the error message Can't render /cms/content/edit.jsp! and causing the preview pane to incorrectly render assets.
  • Corrected a regression error that possibly caused infinite loops when doing database retrievals.

v4.2.26.2

v4.2.26.2 had two bug fixes.

Bug fixes

  • Corrected a regression issue throwing the error message Can't render /cms/content/edit.jsp! and causing the preview pane to incorrectly render assets.
  • Corrected an issue in which the Shared Preview Links widget displayed a message No links found even though the editor actually created shared previews.

v4.2.26.1

v4.2.26.1 had one improvement and two bug fixes.

Improvements

  • Prior to this release, the lack of a limit on records in the data cache caused excessive memory allocations. Starting with this release, the data cache is limited to a default of 100 records, with an option to change this limit.

Bug fixes

  • Corrected a regression issue throwing the error message Can't render /cms/content/edit.jsp! and causing the preview pane to incorrectly render assets.
  • Corrected an issue in which edits to links in the rich-text editor were not saved.

v4.2.26

v4.2.26 had 56 bug fixes, 2 new features, and 3 improvements.

Improvements

  • Editors can now export search results using the same sort as in the search panel.

Bug fixes

  • Prior to this release, if the Brightspot server generated multiple Content-Security-Policy fields for a response header, only one of them was sent to the client. Starting with this release, the server sends all generated Content-Security-Policy fields.

  • In some scenarios, an error occurred when an SVG image had a decimal point in the rendered height or width attributes. This defect has been addressed.

  • A regression error prevented Brightspot from populating fields with placeholder text (when available), or Brightspot displayed them incorrectly. This defect has been addressed.

  • In some scenarios, specifying an oembed format for Brightspot output failed to generate output. This defect has been addressed.

  • In some scenarios, a content search did not account for assets included in other assets (such as authors included in articles). This defect has been addressed.

  • When using an advanced list to create a lead, clicking to swap one module for another generated an error. This defect has been addressed.

  • In some scenarios, Brightspot generated URLs with two terminating slashes instead of one. Starting with this release, when a URL ends with a slash, it ends with a single slash.

  • In some scenarios, permanently deleting a draft caused the dashboard's Unpublished Drafts widget to display an error. This defect has been addressed.

  • Prior to this release, with the sticky search feature enabled, changing a search criterion caused the entire search panel to refresh (instead of refreshing only the existing search results). Starting with this release, changing a search criterion with sticky search enabled refreshes only the search results.

  • Prior to this release, when a client made a call to a GraphQL endpoint and one of the following is true:

    • The X-API-KEY field contained an invalid credential.
    • The X-API-KEY field contained a valid credential, but the request was outside the permission for that credential.
  • In these cases, the endpoint incorrectly returned a status code of 200 (even though the response body described the actual error). Starting with this release, the endpoint returns status code 401 for the first case, and 402 for the second case.

  • In some scenarios, a page containing a list rendered incorrectly in the preview pane. This defect has been addressed.

  • In some scenarios, clicking to edit an image in the rich-text editor generated an error or a faulty preview. This defect has been addressed.

  • In some scenarios, restoring an archived asset displayed a confirmation in the content edit form, but the asset was not actually restored. This defect has been addressed.

  • An editor creates an asset, and in the RTE creates a link to a second asset. Subsequently, an editor deletes the second asset's permalink. In this scenario, editing the link in the first asset and then saving generated an error. Starting with this release, editors can edit and save the outdated link in the first asset's RTE without generating an error.

  • Prior to this release, extraneous spaces between HTML tags were interpreted as a new pair of tags. For example <li>Hello</li> <li>there</li> was rendered as <li>Hello</li><li></li><li>there</li>. Starting with this release, whitespace between HTML tags are ignored.

  • An editor starts a new asset, turns on track changes, and pastes text into the RTE. Prior to this release, the RTE considered the pasted text as an edit, not as a tracked change. Starting with this release, pasting text in this scenario is a tracked change.

  • In some scenarios, an invalid entry in the content edit form generated multiple and identical error messages. This defect has been addressed.

  • Corrected an issue in which adding assets to the top of a list displayed the add icon at the bottom of the list.

  • Corrected a regression error that made the image hotspot editor unresponsive.

  • Corrected an error that threw a duplicate-entry error message after saving a parent asset that contained one-off child assets.

  • Corrected an issue in which the list of tabs in the content edit form (displayed by clicking ) did not fit inside the widget containing the list.

Breaking changes

  • A fix to editorial content types required applying an index to the field ContentType.name. Projects using editorial content types must re-index all associated objects to avoid run-time errors.

v4.2.25.13

v4.2.25.13 had one improvement.

Improvements

  • Logging triggered by cms/tool/isActivityLogged was expanded to include the following:

    • Bulk actions (edit and archive).
    • Saves triggered by API requests, such as via GraphQL CMA and REST CMA.
    • Saves done via impersonation.

v4.2.25.12

v4.2.25.12 had one improvement.

Improvements

  • Logging triggered by cms/tool/isActivityLogged was expanded to include the following:

    • Bulk actions (edit and archive).
    • Saves triggered by API requests, such as via GraphQL CMA and REST CMA.
    • Saves done via impersonation.

v4.2.25.10

v4.2.25.10 had one improvement.

Improvements

  • Added the SQL predicate HAVING to query hash code.

v4.2.25.9

v4.2.25.9 had two bug fixes.

Bug fixes

  • An editor creates an asset, and in the RTE creates a link to a second asset. Subsequently, an editor deletes the second asset's permalink. In this scenario, editing the link in the first asset and then saving generated an error. Starting with this release, editors can edit and save the outdated link in the first asset's RTE without generating an error.
  • Corrected an issue in which requests for a www subdomain used a different robots.txt than those for the domain itself. For example, requests for www.brightspot.com used a different robots.txt file than a request for brightspot.com.

v4.2.25.8

v4.2.25.8 had one bug fix.

Bug fixes

  • Corrected an issue preventing an asset from being published on its scheduled date.

v4.2.25.7

v4.2.25.7 had one bug fix.

Bug fixes

  • Corrected an issue that threw a java.lang.ClassCastException when attempting to retrieve an ExternalContentRichTextElement (such as TweetUrl or RawHtml).

v4.2.25.6

v4.2.25.6 had three bug fixes.

Bug fixes

  • Corrected issues pertaining to incorrect behavior of dynamic placeholders.

    • A field's placeholder text dependent on the value in another field did not update as expected.
    • Dynamic placeholders for promo fields did not display text derived from the underlying asset.
  • Corrected an issue that caused a JavaScript error when creating a new image.

v4.2.25.5

v4.2.25.5 had one bug fix.

Bug fixes

  • Corrected an issue in which a question mark ? in a search term incorrectly returned zero results.

v4.2.25.4

v4.2.25.4 had two bug fixes.

Bug fixes

  • Corrected an issue in which, when adding a module in the rich-text editor, the Enhancement Style fields were not appearing.
  • Corrected an issue that caused the Credit field from images imported from Adobe Bridge to appear incorrectly.

v4.2.25.3

v4.2.25.3 had one bug fix.

Bug fixes

  • Corrected an issue causing dashboard widgets to display a Can't render error message.

v4.2.25.2

v4.2.25.2 had one bug fix.

Bug fixes

  • Corrected an issue that incorrectly resolved some references in the REST CMA.

v4.2.25.1

v4.2.25.1 had one bug fix.

Bug fixes

  • Corrected a regression error that prevented Brightspot from populating fields with placeholder text (when available), or Brightspot displayed them incorrectly.

v4.2.25

Bug fixes

  • A regression bug caused searches in Digital Asset Management to return incorrect results. This defect has been addressed.
  • In some scenarios, editors needed to click an asset twice in the content picker for it to be added to a selection field. This defect has been addressed.
  • In some scenarios, a gallery did not page correctly, and editors could not modify assets within the gallery. This defect has been addressed.
  • In some scenarios, modifying selections in the search panel's global filter widget did not update the search results. This defect has been addressed.

v4.2.24.4

v4.2.24.4 had one bug fix.

Bug fixes

  • Corrected an issue causing the preview pane to update several times after a single change in the content edit form.

v4.2.24.3

v4.2.24.3 had one improvement.

Improvements

  • A workflow permission can be configured to allow a role to only transition an asset to the Publish state.

v4.2.24.2

Version 4.2.24.2 had one bug fix.

Bug fixes

  • Corrected an issue causing editors to click an asset twice in the content picker for it to be added to a selection field.

v4.2.24.1

Version 4.2.24.1 had one bug fix.

Bug fixes

  • Corrected a regression error that made the image hotspot editor unresponsive.

v4.2.24

Improvements

Administrators can now set permalink rule overrides at the site level (formerly only available at the Global level). For example, if a publisher has images on a DAM site, those images can have permalink rule overrides while all assets on all other sites use the default permalink.

Bug fixes

In some scenarios, publishing a content variation generated a proxy error. This defect has been addressed.

v4.2.23.10

Version 4.2.23.10 had one bug fix.

Bug fixes

  • Corrected an issue causing text marked as deleted in tracked changes to be deleted without explicitly accepting the change.

v4.2.23.9

Version 4.2.23.9 had one bug fix.

Bug fixes

  • Corrected an issue causing logins to X (Twitter) from Brightspot to expire after approximately two hours.

v4.2.23.8

Version 4.2.23.8 had one bug fix.

Bug fixes

  • Corrected an issue causing words to be flagged as spelling errors when part of the word was typed as a tracked change.

v4.2.23.7

Version 4.2.23.7 had one bug fix and one improvement.

Improvements

  • Deployed compatibility with Twitter API v2.

Bug fixes

  • Corrected an issue causing characters to appear out of order when modifying text with tracked changes.

v4.2.23.6

Version 4.2.23.6 had one bug fix.

Bug fixes

  • Corrected an issue causing performance degradation due to creation of unnecessary timers for SAML X.509 sessions.

v4.2.23.5

Version 4.2.23.5 had one improvement.

Improvements

  • The GraphQL Explorer now hits client-side endpoints instead of server-side endpoints.

v4.2.23.4

Version 4.2.23.4 had two bug fixes and two improvements.

Improvements

  • The sorting in the content picker is now more intuitive; the sort is by descending update date.
  • In the rich-text editor, pressing Shift+Enter inserts a single <br> line break, and pressing Enter inserts two consecutive <br><br> line breaks.

Bug fixes

  • Corrected an issue in which adding assets to the top of a list displayed the add icon at the bottom of the list.
  • Corrected an issue causing dashboard widgets to display a Can't render error message.

v4.2.23.3

Version 4.2.23.3 had 3 improvements.

Improvements

  • The Publish button can have different labels depending on an asset's state. For example, the label can be Publish for assets not yet published, and Update for assets already published.
  • The GraphQL editor now allows queries and updates associated with one site to access content associated with another site (subject to permissions).
  • GraphQL nested lists, similar to Java's private List<List<List<String>>> getNested(), are now supported in CMA models and CDA view models.

v4.2.23.2

v4.2.23.2 had 2 new features, 10 improvements, and 18 bug fixes.

New features

  • Editors can now show/hide the front-end action bar at the asset level.
  • Implemented core architecture for billing through Brightspot.

Improvements

  • Improved back-end UI for H3 and Subhead paragraphs in the rich-text editor.
  • Editors can now search for shared modules directly from the Lead and Content fields in the content edit form. Previously there was an additional step to open the module picker from those fields and then search for the module.
  • Added a new setting that, when toggled on, a) prevents editors from creating multiple revisions of the same asset, and b) prompts them to navigate to the existing revision.
  • Restored support for JSP rendering and debug=true profiling.
  • The Styleguide server now displays images created locally.
  • When attempting to {{include}} a file that's missing, Styleguide now throws an error that indicates which file is missing and from where it was referenced.
  • Added the ability to include Webpack's generated files in Styleguide builds.
  • Permalink rules can now be set at the site level.
  • Improved the GraphQL CDA representation of rich-text editor fields.
  • Added _Entry type and entry field to the GraphQL recordable CDA.

Bug fixes

  • Corrected an issue causing Facebook embeds to render URLs to a login page instead of to the shared post.
  • Corrected an issue that allowed creating of multiple assets with the same ID. (Each asset is required to have a unique ID.)
  • Corrected an issue that prevented database creation on MySQL 8.0.
  • Corrected the presentation of area-stacked, line, and scatter report graphs.
  • Corrected an issue in which the presentation of results from Google Analytics was offset by one month.
  • Corrected an issue that caused users to be immediately logged out after successful login.
  • Corrected an issue causing the Items list in the Gallery content edit form to be blank and unresponsive. (Individual customers may have customized the labels of the field and content type.)
  • Corrected an issue that prevented saving content templates for the Iframe content type.
  • Corrected an issue throwing a NullPointerException from classes overriding the method State.Listener#beforeFieldGet.
  • Corrected an issue causing different content types to appear in the header's Create list compared to the search panel's Create list.
  • Corrected an issue causing notification subscriptions to fail in environments running Tomcat 9 and Java 11.
  • Corrected an issue in which clicking a tag in the Suggestions widget opened the field to add a new entry in the Tags list.
  • Corrected an issue throwing a NullPointerException during CDA schema load when a Styleguide data file has no displayName key.
  • Corrected an issue that converted binary files to text when Styleguide bundles them into the zip file.

v4.2.23.1

v4.2.23.1 had one bug fix.

Bug fixes

  • Corrected a regression issue that incorrectly sequenced triggers for fields before triggers for content types. One symptom of this bug was an Elemental provider not seeing a video/parent object in beforeSave, because Video#beforeSave sets the parent-child relationship between a video and a provider.

v4.2.23

Version 4.2.23 had 48 bug fixes, two new features, and 17 improvements.

Improvements

  • Preview pane—

    • Shared previews include the name of the editor who generated the preview.
    • Preview of assets inside parent assets. For example, if an image is used in an article, editors can preview the image itself and also preview the image inside the article.
    • Better integration for headless projects.
  • GraphQL—

    • CDA now supports headless applications with their own object types.
    • Added support of non-standard scalar input types.
    • Where appropriate, the Access-Control-Allow-Credentials response header has been added.
    • Improved error processing in the GraphiQL Explorer.
    • Traces of the Dari profiler response option have been removed. This feature will be redeployed in a future release.
    • New annotation that allows changing the type name of a view model in the GraphQL schema.

Bug fixes

  • Prior to this release, editors without permission to access content templates saw the Create Content Template menu item in the content edit page, and clicking that menu item displayed an error page. Starting with this release, editors without permission to content templates do not see the Create Content Template menu item.
  • Prior to this release, creating a content template for an iframe module with a blank URL generated an error. Starting with this release, editors can create a content template for an iframe with a blank URL.
  • In some scenarios, the method AutomaticPersistedQueryProtocol#loadQuery did not handle validation exceptions. This defect has been addressed.
  • Published URLs containing higher-order UTF-8 characters generated 404 errors. For example, visitors attempting to view a URL containing Chinese characters received an error 404. This defect has been addressed.
  • Prior to this release, the Bulk Upload servlet did not query a file's storage setting, and always uploaded files using the default storage defined in context.xml. Starting with this release, the Bulk Upload servlet queries a file's storage setting; if none is specified, it falls back to the setting in context.xml.
  • In some scenarios, the Image Editor did not preserve freeform crops. This defect has been addressed.
  • In some scenarios, the percentage complete indicator in a bulk upload did not match the progress circles. This defect has been addressed.
  • In some scenarios, both English and Spanish field labels appeared when the Brightspot locale was set to use Spanish only. This defect has been addressed.
  • Prior to this release, the preview pane did not always display the latest edits made in the content edit form. This defect has been addressed.
  • Corrected the presentation of area-stacked, line, and scatter report graphs.
  • Corrected an issue causing the Color field in the Edit Text Color widget to behave incorrectly.
  • Corrected an issue in which clicking the Raw HTML button in the rich-text editor's toolbar crashed the browser.

Breaking changes

  • The Recent Activity widget displays by default only the last 30 days of activity. This default can be overridden by configuring brightspot/cms/recentActivityLimitDays setting.
  • Updates to the preview pane mandated that AppetizeioContentEditPreviewType be no longer supported. To leverage Appetize IO, projects must use the new AppetizeioPreviewType.
  • A new method BulkUploadProcessor#getStorageSetting needs to be implemented for situations in which BulkUploadProcessor#onUpload is used.

v4.2.22.13

v4.2.22.13 had one bug fix.

Bug fixes

  • Corrected an issue that incorrectly resolved some references in the REST CMA.

v4.2.22.12

v4.2.22.12 had one bug fix.

Bug fixes

  • Corrected an issue in which edits to links in the rich-text editor were not saved.

v4.2.22.11

v4.2.22.11 had one bug fix.

Bug fixes

  • Corrected a regression issue throwing the error message Can't render /cms/content/edit.jsp! and causing the preview pane to incorrectly render assets.

v4.2.22.10

v4.2.22.10 had one bug fix.

Bug fixes

  • Corrected an issue in which the Shared Preview Links widget displayed a message No links found even though the editor actually created shared previews.

v4.2.22.9

v4.2.22.9 had one bug fix.

Bug fixes

  • Corrected an issue in which custom content edit forms did not appear in the Form list when setting a role's permissions. For example, a custom form My Article exists for articles. When restricting a role's permissions to only Article, the Form list did not include My Article.

v4.2.22.8

v4.2.22.8 had two bug fixes.

Bug fixes

  • Corrected an issue in which subscriptions that included filtering by content type and site did not always honor the filter.
  • Corrected an issue in which creating a revision of an asset and moving that asset through a workflow did not trigger a notification for the transition to publication.

v4.2.22.7

v4.2.22.7 had one bug fix.

Bug fixes

When hovering over , the tool tip was Start Revision for assets in a workflow. The tool tip now is Save Draft.

v4.2.22.6

v4.2.22.6 had one improvement and two bug fixes.

Improvements

  • Previously, editors received workflow notifications pertaining to all sites, even those to which they had no access. Starting with this release, editors by default receive workflow notifications pertaining only to those sites to which they have access.

Bug fixes

  • Corrected a regression issue throwing the error message Can't render /cms/content/edit.jsp! and causing the preview pane to incorrectly render assets.
  • Corrected a regression error that possibly caused infinite loops when doing database retrievals.

v4.2.22.5

v4.2.22.5 had one improvement and two bug fixes.

Improvements

  • Prior to this release, the lack of a limit on records in the data cache caused excessive memory allocations. Starting with this release, the data cache is limited to a default of 100 records, with an option to change this limit.

Bug fixes

  • Corrected a regression issue throwing the error message Can't render /cms/content/edit.jsp! and causing the preview pane to incorrectly render assets.
  • Corrected an issue in which edits to links in the rich-text editor were not saved.

v4.2.22.4

v4.2.22.4 had 56 bug fixes, 2 new features, and 3 improvements.

Improvements

  • Editors can now export search results using the same sort as in the search panel.

Bug fixes

  • Prior to this release, if the Brightspot server generated multiple Content-Security-Policy fields for a response header, only one of them was sent to the client. Starting with this release, the server sends all generated Content-Security-Policy fields.

  • In some scenarios, an error occurred when an SVG image had a decimal point in the rendered height or width attributes. This defect has been addressed.

  • A regression error prevented Brightspot from populating fields with placeholder text (when available), or Brightspot displayed them incorrectly. This defect has been addressed.

  • In some scenarios, specifying an oembed format for Brightspot output failed to generate output. This defect has been addressed.

  • In some scenarios, a content search did not account for assets included in other assets (such as authors included in articles). This defect has been addressed.

  • When using an advanced list to create a lead, clicking to swap one module for another generated an error. This defect has been addressed.

  • In some scenarios, Brightspot generated URLs with two terminating slashes instead of one. Starting with this release, when a URL ends with a slash, it ends with a single slash.

  • In some scenarios, permanently deleting a draft caused the dashboard's Unpublished Drafts widget to display an error. This defect has been addressed.

  • Prior to this release, with the sticky search feature enabled, changing a search criterion caused the entire search panel to refresh (instead of refreshing only the existing search results). Starting with this release, changing a search criterion with sticky search enabled refreshes only the search results.

  • Prior to this release, when a client made a call to a GraphQL endpoint and one of the following is true:

    • The X-API-KEY field contained an invalid credential.
    • The X-API-KEY field contained a valid credential, but the request was outside the permission for that credential.
  • In these cases, the endpoint incorrectly returned a status code of 200 (even though the response body described the actual error). Starting with this release, the endpoint returns status code 401 for the first case, and 402 for the second case.

  • In some scenarios, a page containing a list rendered incorrectly in the preview pane. This defect has been addressed.

  • In some scenarios, clicking to edit an image in the rich-text editor generated an error or a faulty preview. This defect has been addressed.

  • In some scenarios, restoring an archived asset displayed a confirmation in the content edit form, but the asset was not actually restored. This defect has been addressed.

  • An editor creates an asset, and in the RTE creates a link to a second asset. Subsequently, an editor deletes the second asset's permalink. In this scenario, editing the link in the first asset and then saving generated an error. Starting with this release, editors can edit and save the outdated link in the first asset's RTE without generating an error.

  • Prior to this release, extraneous spaces between HTML tags were interpreted as a new pair of tags. For example <li>Hello</li> <li>there</li> was rendered as <li>Hello</li><li></li><li>there</li>. Starting with this release, whitespace between HTML tags are ignored.

  • An editor starts a new asset, turns on track changes, and pastes text into the RTE. Prior to this release, the RTE considered the pasted text as an edit, not as a tracked change. Starting with this release, pasting text in this scenario is a tracked change.

  • In some scenarios, an invalid entry in the content edit form generated multiple and identical error messages. This defect has been addressed.

  • Corrected an issue in which adding assets to the top of a list displayed the add icon at the bottom of the list.

  • Corrected a regression error that made the image hotspot editor unresponsive.

  • Corrected an error that threw a duplicate-entry error message after saving a parent asset that contained one-off child assets.

  • Corrected an issue in which the list of tabs in the content edit form (displayed by clicking ) did not fit inside the widget containing the list.

Breaking changes

  • A fix to editorial content types required applying an index to the field ContentType.name. Projects using editorial content types must re-index all associated objects to avoid run-time errors.

v4.2.22.3

v4.2.22.3 had 12 bug fixes and two improvements.

Improvements

  • Front-end developers have the option of excluding the tracking script track.js. Doing so eliminates possible conflicts with the tracking script included with Frost.
  • Prior to this release, the lack of a limit on records in the data cache caused excessive memory allocations. Starting with this release, the data cache is limited to a default of 100 records, with an option to change this limit.

Bug fixes

  • In some scenarios, double-clicking an enhancement inside the rich-text editor duplicated the enhancement (along with opening the edit widget).
  • When managing logons in an SSO environment, updating a role in the identify provider did not correctly update the role within Brightspot. Starting with this release, the updated role a) is correctly ingested from the identity provider, and b) updates the corresponding existing Brightspot role.
  • In some scenarios, edits to an external hyperlink in the rich-text editor were not saved.
  • A regression error introduced the possibility of infinite loops when doing database retrievals.
  • A regression error disabled the activation of common times configured in the global site; selecting a common time in a scheduler did not update the time accordingly.
  • In some scenarios, URLs with spaces were not correctly encoded to %20.
  • Prior to this release, shared previews could be indexed by search engines. Starting with this release, Brightspot injects a header field into previews to prevent such indexing.
  • When a query in the search panel retrieved no matching items, the pagination label appeared as "1 to 0 of 0."

Breaking changes

  • An update to the Frost theme removed automatic Brightspot analytics script injection. Projects previously relying on Brightspot analytics script injection must now explicitly opt-in; set Sites & Settings > Global > CMS > Page View Supplier to Brightspot Analytics.

v4.2.22

Version 4.2.22 had 34 bug fixes, six new features, and 18 improvements.

Improvements

  • Administrators can now associate editors with more than one role, a useful feature when an editor works on multiple sites with varying permissions.

    • Editors assigned multiple roles have the permissions of all roles combined.
    • Each role's dashboard appears under its own tab, and the dashboard for each role appears under the corresponding tab. For example, an editor assigned to the Proofreader and Copy Editor roles sees the dashboard for each role in its own tab.
  • Editors can mark content types as favorites in the Quick Start widget. Favorite content types appear to the left of all other content types, making them easier to select.

  • Prior to this release, typing the @ symbol in the Conversation widget unconditionally opened a list of editors matching the subsequent characters—even when the symbol was part of an email address. Starting with this release, the list of matching editors appears only when the @ symbol is preceded by a space or when it is the first character on a new line.

  • Prior to this release, selection fields listed all selected items. Starting with this release, selection fields list only the first selected item followed by the number of the other selected items.

  • Styleguide—

    • Building a theme no longer depends on on gulp.js.
    • The Styleguide UI appears using the same theme as Brightspot.
    • Developers can apply template and theme options through the UI.
  • Administrators can configure federated search credentials at the site level. This feature is useful when a publisher operates multiple sites, each with different accounts with the service provider.

  • Google analytics are now available at the page level.

  • GraphQL—

    • Developers can now back a DataCache with a simpler cache implementation instead of backing it with a LoadingCache.
    • The GraphQL Explorer now hits the actual configured endpoint.
    • Developers can now specify headers in the GraphQL Explorer.

Bug fixes

  • GraphQL—

    • The class ContentDeliveryGraphQLSchemaLoader was not handling unique name resolution correctly. This defect has been addressed.
    • In the CMA, records with owners can now reference global content.
  • Site copy operations failed when rich-text elements were included within rich-text fields, and the rich-text elements did not have a toBody implementation. This defect has been addressed.

  • When no transcoding settings were specified, clipping videos using AWS Elemental as a provider caused an infinite refresh or error. This defect has been addressed.

  • In some scenarios, de-duplication of lists resulted in some items not appearing at all in the list. This defect has been addressed.

  • In some scenarios, some widgets did not appear in the content edit page for non-publishable content types when those widgets should have appeared. This defect has been addressed.

Breaking changes

Because of the new ability to assign multiple roles to a single user, the field ToolUser.roles is now indexed. All instances of ToolUser must be resaved to apply the index. Failure to apply the index may cause widgets such as Recent Activity to display incorrect data.

The theme Frost has been upgraded to version 2.0, and it no longer requires gulp to build. To take advantage of this change, use the following steps to upgrade your development environment.

  1. In the root directory, delete the file /.npmrc.

  2. Open the file /packages.json, and under devDependencies make the following changes:

    • Remove the dependency "brightspot-styleguide": "4.2.x".

    • Add the dependency "@brightspot/styleguide": "4.2.21-rc.1".

    • Remove the dependency "server:styleguide": "gulp styleguide --webpack-config webpack.dev.js".

    • Add the dependency "server:styleguide": "webpack-dev-server --config webpack.dev.js".

      {
      "devDependencies": {
      /* Other dependencies */
      "@brightspot/styleguide": "4.2.28-rc.1",
      "webpack-dev-server": "3.11.2"
      /* Other dependencies */
      }
      }
  3. Continuing in /packages.json, under scripts add the following lines:

    • "build": "prettier-eslint --list-different *.js \"styleguide/**/*.js\" && webpack --config webpack.prod.js && node node_modules/@brightspot/styleguide/build/bundle -b build/styleguide -o build/theme.zip"

    • "server:styleguide": "webpack-dev-server --config webpack.dev.js"

      {
      "scripts": {
      "build": "prettier-eslint --list-different *.js \"styleguide/**/*.js\" && webpack --config webpack.prod.js && node node_modules/@brightspot/styleguide/build/bundle -b build/styleguide -o build/theme.zip",
      "server:styleguide": "webpack serve --config webpack.dev.js"
      /* Other script commands */
      }
      }
      • 3. Builds the theme
      • 4. Starts the server
    • Note that bundle requires -b and -o options. -b specifies where the webpack output directory is, so it is set to build/styleguide to match the configuration in step 2. But if you need to change the webpack output directory for any reason, you should also change it here. -o specifies the theme bundle output file, and build/theme.zip matches the brightspot-gradle-plugins configuration.

  4. Fix ESLint and Standard JS dependencies by running the following commands:

    yarn add --dev --exact \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected]
  5. Update the webpack configuration. Open the file /webpack.dev.js and make the following changes.

    • Remove the line const Styleguide = require('brightspot-styleguide').
    • Replace that line with const styleguide = require('@brightspot/styleguide').
    • Remove the line Styleguide.webpackDevServerConfig(webpack, {.
    • Replace that line with styleguide.webpack('./styleguide', webpack, {.
  6. Continue to update the webpack configuration. Open the file /webpack.common.js, and add path: path.resolve(__dirname, './build/styleguide') to module.exports.output, as in the following example.

    module.exports = {
    /* Other objects */
    output: {
    path: path.resolve(__dirname, './build/styleguide'),
    filename: '[name]',
    publicPath: '/'
    },
    /* Other objects */
    • 4. Configuring webpack output directory.

The new Styleguide breaks the theme compatibility checker, because it does far less processing on your example files; you now need to set both _template and _styledTemplate if you want to display one of the style variations. To fix this, you can run:

npx node ./node_modules/@brightspot/styleguide/build/upgrade

Lastly, the new Styleguide renders the page on-demand in the browser, so you may incur some run-time errors with certain helpers. To gracefully trap such errors, open the file /styleguide/_helpers.js, and add the else if condition as shown lines 3–4 in the following code snippet.

if (typeof Buffer !== 'undefined') {
return 'data:image/svg+xml;base64,' + Buffer.from(svg).toString('base64')
} else if (typeof btoa !== 'undefined') {
return 'data:image/svg+xml;base64,' + btoa(svg)
} else {
return (
'data:image/svg+xml;base64,' +
java.util.Base64.encoder.encodeToString(
svg.toString().getBytes(java.nio.charset.StandardCharsets.UTF_8)
)
)
}

v4.2.21.14

v4.2.21.14 had one bug fix.

Bug fixes

  • Corrected an issue in which queries working in Solr 4.6.1 no longer work in Solr 8.11.1.

Breaking changes

  • The fix described above requires a SQL to Solr copy.

v4.2.21.13

v4.2.21.13 had one bug fix.

Bug fixes

  • Corrected an issue in which a question mark ? in a search term incorrectly returned zero results.

v4.2.21.12

v4.2.21.12 had one improvement.

Improvements

  • A new Query.option is available to opt out of Solr query joins.

v4.2.21.11

v4.2.21.11 had one bug fix.

Bug fixes

  • Corrected an issue that caused the message Restored Work In Progress to appear after publishing, closing, and then re-opening an asset.

v4.2.21.8

v4.2.21.8 had one bug fix.

Bug fixes

  • Corrected an issue in which fields annotated with @Hidden are unavailable in custom content edit forms.

v4.2.21.7

v4.2.21.7 had one bug fix.

Bug fixes

  • Corrected an issue in which SVG images split a child RTE module when placed inside a parent RTE. For example, a child RTE module Priority Tag contains an embedded SVG. When embedding the Priority Tag module into a parent rich-text editor, the SVG split the module into two.

v4.2.21.6

v4.2.21.6 had one bug fix.

Bug fixes

  • Corrected an issue in which faceted fields are not retained in a cloned Solr query.

v4.2.21.5

v4.2.21.5 had one bug fix.

Bug fixes

  • Corrected an issue in which character formatting was lost in the ProseMirror rich-text editor after applying a hyperlink. For example, applying a hyperlink to the formatted text Brightspot User Guide removes the boldface and underline.

v4.2.21.4

v4.2.21.4 had one bug fix.

Bug fixes

  • Corrected an issue with the SitemapTask iteration that resulted in an invalid offset for an SQL query.

v4.2.21.3

v4.2.21.3 had one bug fix.

Bug fixes

  • Corrected an issue in which using using Alteration<?> to move fields between tabs caused those fields to always appear above the fields originally in the tab. For example, you define public class SiteAlteration extends Alteration<Site> that uses @ToolUi.Tab(TAB_MAIN) to move the Favicon field from the Front-End tab to the Main tab. The Favicon field appeared above all other fields originally in the Main tab, even if the field order in code or various @ToolUi annotations indicated differently.

v4.2.21.2

v4.2.21.2 had one bug fix.

Bug fixes

  • Corrected an issue in which the method ImageSize#getAttributes did not use external ImageMetadata information when the image itself has no explicit width or height.

v4.2.21.1

v4.2.21.1 had one bug fix.

Bug fixes

  • Corrected an issue in which archived vanity and site redirects always threw error 404. For example, an admin archived the redirect from /index to /welcome. With this fix, requests to /index display the actual asset at /index.

v4.2.21

Version 4.2.21 had 46 bug fixes, five new features, and 10 improvements.

Improvements

  • Email to CMS—

    • Administrators can review logs of assets created by email ingestions, including errors that may have occurred.
    • Editors and developers can simulate email submissions, a feature that helps to detect errors early.
  • Administrators can now define site redirects at the global level; previously this was available only at the site level.

  • Styleguide—

    • UI updated to reflect Brightspot's v4 UI.
    • Build process simplified.
  • GraphQL—

    • Versioning is now available to better manage the calls to APIs that change over time.
    • Developers can now resize GraphQL UI's Explorer pane, similar to what was already available with the Query, Response, and Docs panes.
    • Non-scalar (Record) fields in the CMA are no longer required to be included as an entry type to be de-referenced.
    • To prevent out-of-sync CMA schemas (resulting from, for example, changes made to an editorially defined content type that subsequently changed its resulting object type), relevant CMA schemas on ContentTypeModification are now invalidated.

Bug fixes

  • Due to a regression error, attempting to display the Edit Global widget generated an UnsupportedOperationException error. This defect has been addressed.

  • In some scenarios, the content picker displayed unexpected behavior. For example, when creating an article, and then using the content picker to create an image inside the article, clicking Save returned the editor to the content picker instead of waiting until the editor clicked Back. This defect has been addressed.

  • Due to a regression error, typeahead in dropdown lists did not filter the list's values to the match the editor's current string. For example, if there are 100 available authors, typing Tols in the field did not limit the list of authors to those starting with Tols. This defect has been addressed.

  • Dari's Substitution class generated an error in which an overridden method was called twice. This caused unexpected behavior within Brightspot, such as extraneous banners in the content edit form. This defect has been addressed.

  • In some scenarios, the Social Publishing widget did not appear in an asset's content edit form. This defect has been addressed.

  • Rich text editor—

    • Prior to this release, when editing hyperlinks with track changes enabled, the link split into multiple anchors and the Edit Link widget did not reflect updated text. Starting with this release, hyperlinks behave as expected with track changes enabled.
    • In some scenarios, applying markup to formatted text removed the formatting. For example, the rich-text editor includes the string hello. Selecting the formatted word and applying italics removed the boldface, so the result was hello. This defect has been addressed.
    • In some scenarios, when working with tracked changes, the rich-text editor did not delete more than one character. This defect has been addressed.

Breaking changes

  • Rich text elements now process their bodies differently depending on the @RichTextElement.Tag(htmlBody) annotation property. Before the fix in this ticket, the body was always forcibly converted into plain text, including some parts that looked like HTML entities that shouldn't have been converted. After the fix, the htmlBody annotation properly controls whether the body is treated as HTML or plain text. This change is unlikely to cause any backward compatibility issues on rich text elements with plain text bodies, but projects should verify any existing workarounds that set the body as HTML.
  • Styleguide was rewritten to drop the gulp.js dependency. For details, see "Breaking changes" under v4.2.22 release.
  • Previously, the resolveInvisible query modifier was applied to all CDA queries, and invisible objects were automatically surfaced. Since the CDA is more front-end focused, the query modifier has been removed, and invisible objects will no longer be resolved and displayed in the response.
  • Following a bug fix to DAM, deprecated methods in PaginatedResultsWriter have been removed, and new writer methods have been rewritten.
  • As part of the enhancement to better swap content between Brightspot and InDesign, implementations of InDesignTag will need to pass in the UUID for the content from their InDesignDocument implementations.

v4.2.20.7

v4.2.20.7 had one improvement.

Improvements

  • The query sort functionality is now available in the 4.2 Rest Management API.

v4.2.20.6

v4.2.20.6 had one bug fix.

Bug fixes

  • Corrected an issue in which the height and width were not set for uploaded WebP images.

v4.2.20.5

v4.2.20.5 had one bug fix.

Bug fixes

  • Corrected an issue in which requests for a www subdomain used a different robots.txt than those for the domain itself. For example, requests for www.brightspot.com used a different robots.txt file than a request for brightspot.com.

v4.2.20.4

v4.2.20.4 had one bug fix.

Bug fixes

  • Corrected an issue in which clips made through Amazon Elemental did not appear in the video's Edit Video > Clip tab.

v4.2.20.3

v4.2.20.3 had one bug fix and one improvement.

Improvements

  • When searching for a child asset to include in a parent asset, the status Revision is no longer available in the search panel. For example, when searching for an author to add to an article, editors can no longer filter for authors in the Revision status.

Bug fixes

  • Corrected an issue in which queries working in Solr 4.6.1 no longer work in Solr 8.11.1.

Breaking changes

  • The fix for Solr 8.11.1 described above requires a SQL-to-Solr copy.

v4.2.20.2

v4.2.20.2 had one bug fix.

Bug fixes

  • Corrected an issue that prevented a null-value field annotated with class implementing DynamicField from correctly updating. For example, a field endDate is annotated with @DynamicFieldClass(EndDateDynamicField.class). If endDate is null, its value was never updated even though the method EndDateDynamicField#update required it to do so.

v4.2.20.1

v4.2.20.1 had one bug fix.

Bug fixes

  • Corrected an issue causing insertion of extraneous <br/> tags when pasting text into a blank rich-text editor.

v4.2.20

Version 4.2.20 had 64 bug fixes, 11 new features, and 38 improvements.

Reminder: Projects with Slack notifications need to add the API com.psddev:slack-notification dependency to the project's build.gradle file.

Improvements

  • Create assets from the header—Editors can now create new assets from the header instead of from the search panel. This saves several mouse clicks and scrolls. This improvement is especially helpful for assets not commonly found in the Quick Start widget.

  • Pin messages in the Conversation widget—Editors can now pin messages in the Conversations widget for easy future reference. When many stakeholders engage in a long discussion, no important messages get lost in the thread.

  • Publish subscription improvements—

    • Editors can elect to receive a notification after an asset is first published (instead of receiving a notification after every publish).
    • Editors can create content-type specific filters similar to those available in the search panel. For example, if an editor filters by article, the filter can be further refined by other fields associated with articles, such as author, section, and tag.
  • Translation subscriptions—Editors can now subscribe to translation notifications. Filtering is available for combinations of translation service, status, creator, sites, and content types. In particular, editors can receive a notification should a translation job fail.

  • Date picker improvement—Editors can select from predefined ranges, such as today, yesterday, past 7 days, past 30 days, as well as a custom range.

  • Sort searches by label—Editors can now sort search results by label.

  • Full labels in Quick Start widget—Starting with this release, the Quick Start widget displays the entire label of a content type. Prior to this release, long content type labels appeared truncated.

Bug fixes

  • In some scenarios, attempting to copy a site generated an error NullPointerException. This defect has been addressed.
  • In some scenarios, attempting to filter the Recent Activity widget by a role generated an error. This defect has been addressed.
  • In some scenarios, a GraphQL query did not return a corresponding view model. This defect has been addressed.
  • In some scenarios, an Atom feed entry incorrectly used the HTTP protocol in an <atom:link> element instead of the HTTPS protocol; depending on the target server's configuration, this may have generated an error. This defect has been addressed.
  • Prior to this release, editors could not insert an enhancement into the rich-text editor when that enhancement was a one-off audio file from a federated search. This defect has been addressed.
  • Prior to this release, the Edit Theme Overrides tab displayed blank color fields and then applied default colors in the front end. In other scenarios, the placeholder color was rendered as a color explicitly selected. Starting with this release, the placeholder colors in the Edit Theme Overrides tab behave consistently with other fields having placeholder values. If the editor did not make an explicit selection, the value defaults to the placeholder color in light italics (and this value carries over to the front end); if the editor did make an explicit selection, the value appears in normal roman.
  • In some scenarios, an editor assigned to a role without publish permissions could indeed publish an asset when it is in a workflow. For example, articles have a three-step workflow that ends with publish, and a role exists that excludes the ability to publish. In some scenarios, editors assigned to that role could publish articles at the end of a workflow. This defect has been addressed.
  • Prior to this release, workflows having more than one status with the same name caused incorrect processing of transitions and notifications as an asset proceeded through the workflow. For example, if a workflow has two statuses named Editing, processing of assets into one of those statuses was incorrect. Starting with this release, workflow statuses with the same name generate correct transitions and notifications.
  • In some scenarios (usually with JPGs), when an editor uploaded an image to Brightspot, the original image's orientation was not retained. For example, if the original image had a portrait orientation, the uploaded image was assigned a landscape orientation. For those scenarios, Brightspot now retains the image's native orientation.

Breaking changes

  • As a result of an improvement to the site copier functionality, the constructor for CopySiteStateValueReplacer has changed from public CopySiteStateValueReplacer(CopySiteTask currentTask, Database database, SiteCopierJob job, Set<ObjectType> typeSet, Map<UUID, UUID> copiedObjects) to public CopySiteStateValueReplacer(CopySiteTask currentTask, Database database, SiteCopierJob job, Set<ObjectType> typeSet, Map<UUID, Object> copiedObjects).

  • Due to an error related to TimeSeries underreporting daily results in the two-month view, a breaking change was made. Please contact your Brightspot representative for more information, and reference ticket number BSP-11732.

  • TimeSeries was updated to only keep data regarding the most recent interval. Please contact your Brightspot representative for more information, and reference ticket number BSP-11708.

  • Workflows named "New," "Published," "Initial," or "Final" were occasionally failing. As a result, projects using Workflow#getTransitionsFrom or Workflow#getTransitionsTo APIs directly with initial or final must change to using WorkflowState.INITIAL_STATE_NAME or WorkflowState.FINAL_STATE_NAME constants.

  • Users without publishing permissions were still able to publish if the transition was included in a workflow. As a result, permission of the transition to the final state has been removed in favor of the Publish permission.

  • To simplify the experience around publishing third-party forms on Brightspot, the Marketo Credentials field was from the asset level to the site level. As a result, the MarketoThirdPartyFormProvider#marketoCredentials field at the asset level was deprecated in favor of the MarketoImportSettings#accounts field at the site level.

  • As a result of notification system improvements, the following breaking changes were made:

    • SmsDeliveryOption and EmailDeliveryOption no longer extend VerifiableDeliveryOption or ToolDeliveryOption, and instead extend VerifiableDeliveryMethod and ToolDeliveryMethod.
    • SlackDeliveryOption no longer extends VerifiableDeliveryOption or ToolDeliveryOption, and instead extends ToolDeliveryMethod.
    • BrowserDeliveryOption no longer extends ToolDeliveryOption, and instead extends ToolDeliveryMethod.
    • SmsMessage, EmailMessage, SlackMessage, and BrowserMessage no longer extend com.psddev.cms.notification.Message, and instead extend com.psddev.dari.notification.Message.
  • The Watching filter was moved into the Global Filters area. As a result, the Watcher plugin can no longer be disabled entirely via a setting. If users want to disable this plugin, it must be removed from the project (similar to other plugins). Additionally, because the "Watching?" filter has moved to the left, where other filters are, it is no longer persistent across searches. If users desire to retain the old behavior, settings to control this can be found in Admin > Sites & Settings > Global > CMS > UI > Watching Search Result Filter Enabled/Watching Search Filter Disabled.

  • As a result of removing the Legacy Settings section of Sites & Settings, the Conversation settings must be reconfigured.

  • Brightspot 4.2 adds a Google Analytics integration. All classes are in the com.psddev.google.analytics package unless as noted below:

    • Deprecated the reportTaskSchedule field on GoogleAnalyticsPageViewsSupplier. The GoogleAnalyticsProcessTask uses the new analyticsImportTaskSchedule field on GoogleAnalyticsTaskGlobalSettingsModification for its execution time calculation.
    • The Impressions class now uses a java.lang.Long instead of an org.joda.time.DateTime for storing date information. The java.lang.Long value can be retrieved by using the new parsing methods Report#parseHourMillisecondsFromString, Report#parseDayMillisecondsFromString, and Report#parseMonthMillisecondsFromString.
    • The site-level metrics imported by SiteReport will now have the site's UUID added as a suffix on the related TimeSeries names. This change brings those site-level metrics in line with the other reports' site-level metrics.
    • The GoogleAnalytics.AGE_RANGE_45_54_TIME_SERIES_NAME constant has been changed to end with 45-54 instead of 45_54 (hyphen instead of underscore) to match the data coming from GA.
    • Report and its implementations have been updated to fetch data bucketed by hour, day, and month, as required by the TimeSeries#set changes.
  • The following methods in RichTextElement are now final:

    • afterCreate
    • onDuplicate
    • beforeCommit
    • afterSave
    • beforeDelete
    • afterDelete
  • Projects that have overridden these methods will experience build-time errors. (onValidate and beforeSave can still be overridden.)

  • SearchDashboardWidget was moved to a different package. Instances of this class will need to be republished to use the new implementation.

v4.2.19.8

v4.2.19.8 had one bug fix.

Bug fixes

  • Corrected visual issues related to dark mode.

v4.2.19.7

v4.2.19.7 had one bug fix.

Bug fixes

  • Corrected an issue in which bulk edits to style fields were not persisting after saving.

v4.2.19.6

v4.2.19.6 had one bug fix and one improvement.

Improvements

  • Reintroduced an available option for image editing and sizing.

Bug fixes

  • Corrected an issue in which users with certain role configurations were unable to search for other users.

v4.2.19.5

v4.2.19.5 had one improvement.

Improvements

  • Added Sort By column to search exports.

v4.2.19.4

v4.2.19.4 had two bug fixes.

Bug fixes

  • Corrected an issue in which objects with URLs containing UTF-8 characters were not able to be found.
  • Corrected an issue in which permalinks that were given spaces were no longer failing validation.

v4.2.19.3

v4.2.19.3 had one bug fix.

Bug fixes

  • Corrected an issue related to dynamic list de-duplication.

v4.2.19.2

v4.2.19.2 had one bug fix.

Bug fixes

  • Corrected an issue in which ValueGenerated dropdowns were not triggering ContentState calls.

v4.2.19.1

v4.2.19.1 had one bug fix.

Bug fixes

  • In some scenarios, a GraphQL query did not return a corresponding view model. This defect has been addressed.

v4.2.19

v.4.2.19 had 125 bug fixes, 6 new features, and 28 improvements.

Improvements

  • Reorganized fields in Site and Profile widgets—Starting with this release, fields in the Edit Site widget are neatly organized into five tabs: Main, Front-End, Integrations, CMS, and Plugins. Regarding the Profile widget, features such as Notifications and Subscriptions moved to the Main tab, and Content Templates and Dashboard options moved to a new CMS tab.

  • One-off themes—Editors can create one-off themes when creating new sites.

  • Creating new content types from existing ones—Editors can build new content types by modifying existing ones (instead of building them from scratch). For example, editors start with the Article content type, and add, remove, and reposition fields, and save as a new content type. This feature helps publishers customize Brightspot to fit their workflow.

  • Various improvements to track changes and commenting. In particular, in full-screen mode—

    • Comments now wrap to the next line.
    • When viewing comments and changes, the rich-text editor is centered between the left side of the editing area and the right rail.
    • When viewing only comments, there was a gap between the right rail and the rich-text toolbar. That gap was removed.
  • Login image—Prior to this release, the random image on the login page was provided by a third party. To maintain a consistent editing experience, the login page is now a static image that can be customized.

  • Drag-and-drop URLs—Editors can drag and drop URLs in the URLs widget.

  • Tealium integration—Publishers can integrate Tealium's customer data platform to improve audience segmentation and to create actionable and comprehensive customer profiles.

  • Marketo integration—Marketing departments can integrate their Marketo forms directly into Brightspot.

  • GraphQL—

    • Developers can now determine if a record was updated by the CMA, and can also retrieve relevant metadata for tracing or debugging.
    • Developers can now specify predicate variables in the CMA.
    • Persisted Query Java APIs and implementations have been improved and made more flexible.
    • Editorial content types are now included when the Record object type is included in CMA.
    • Scrubbed GraphQL widgets for inclusive terminology.

Bug fixes

  • In some scenarios, clicking on a revision in the search panel displayed an unrelated content edit form. For those scenarios, clicking on a revision in the search panel now displays the correct content edit form.

  • Rich-text editor—

    • With tracked changes on, editors could not add enhancements in the rich-text editor.
    • With tracked changes on, editors could not create or delete tables.
    • Consecutive grave accents (backtick, `) appeared only once.
    • Consecutive bulleted lists with no intervening text appeared as a single bulleted list.

    These defects have been addressed.

  • The widget for listing and editing social networking accounts (navigation menu > Social > Accounts) did not appear correctly after selecting an account to edit. The widget now appears correctly.

  • In some scenarios, clicking Back in a content edit form to return to a content picker generated an error. For example, clicking New in a content picker to create a new item displays a content edit form with a Back button; clicking on Back generated an error. For those scenarios, clicking Back returns to the content picker without error.

  • In some scenarios, the Edit Global or Edit Site widget did not display an archived object. For example, if the Edit Site widget specified a particular search page, and the search page was later archived, that search page did not appear in the Edit Site widget. For those scenarios, archived values now appear in the Edit Global or Edit Site widget.

  • Prior to this release, the widget for selecting fields appeared under the widget from which it was opened (and editors could not use the widget). For example, in the search panel, clicking settings displayed a Select Fields widget under the search panel. Starting with this release, the Select Fields widget appears over the widget from which it was opened.

  • Filters in the search panel did not always limit results to the filter. For example, if searching for users by a particular role, the search panel displayed all users—not just those matching the selected role. This defect has been addressed.

  • In some scenarios, the selection fields in the bulk edit widget did not display the available values. For example, in a bulk edit widget containing multiple articles, the selection field for Authors did not list any existing authors. For those scenarios, selection fields in the Bulk Edit widget now display available values.

  • Federated search—

    • Prior to this release, imports from a Getty federated search incorrectly retrieved a small image resolution (size), even if a larger resolution was available. Starting with this release, imports from Getty federated search retrieve the largest available resolution.
    • In the search panel, selecting items retrieved from a federated search and then moving to the next page cleared the selection. For example, an editor performs a federated search having 10 pages of results. The editor selects three items on the first page and then proceeds to the next page. The first three items became deselected. This defect has been addressed.
  • In some scenarios, editors could not cleanly save new items. After the save, the title disappeared and the Generate Permalink checkbox was cleared. This scenario often occurred when an editor was assigned to a role, and the item was made from a content template. For those scenarios, new items save correctly.

  • Prior to this release, changing the value of a checkbox in the content edit form did not always trigger a work-in-process save. Starting with this release, such changes trigger a work-in-process save.

  • When publishing a content variation for an audience, the notification area did not appear, and after clicking Publish the work-in-process status was not cleared. This defect has been addressed.

  • An editor creates a content variation for an audience, publishes it, and then creates a new revision for that item. In some scenarios, attempting to view any of the item's previous revisions in the preview pane generated an error. This defect has been addressed.

  • Prior to this release, editors could not remove the last item from the Quick Start widget. (Removing the last content type from the Quick Start widget was always possible.) Starting with this release, editors can remove the last item.

  • In some scenarios, a nested template did not display the containing content. For example, a parent template includes a child template rendering a media player. The child template did not always appear. This defect has been addressed.

  • Prior to this release, CSV exports from the search panel did not always create a clean file. In particular, values may take up more than one column, causing subsequent values to appear under an incorrect heading. Starting with this release, values in CSV exports are aligned under the correct heading.

  • Prior to this release, when an editor placed an image overlay on a video, various controls (such as position, opacity, duration, fade in/out) were missing. Starting with this release, the overlay controls are available.

  • In some scenarios, editors submitted items to Brightspot over email, and the content was not correctly ingested into Brightspot. For example, the ingested "from" and "to" addresses contained invalid values. This defect has been addressed.

  • Prior to this release, after completing a workstream, the Continue button was still available; clicking Continue generated an error. Starting with this release, the Continue button is not visible after completing a workstream.

  • In some scenarios, the content edit form's Community tab had an inconsistent appearance or even generated an error instead of displaying an event log. This defect has been addressed.

  • Prior to this release, Brightspot displayed a raw server error (500) when an archived editor attempted to log in. Starting with this release, Brightspot displays a graceful error message inside the login widget.

  • In some scenarios, editors could not skip an item in a workstream when that item was scheduled for later publication. This defect has been addressed.

  • In some scenarios, a work-in-process condition occurred after updates to non-editorial, read-only fields in the content edit form. For example, if the content edit form contained a read-only field displaying the current time, and the current time changed, the item entered a work-in-process state (and Brightspot tracked that change as one to be saved or discarded). For those scenarios, changes in non-editorial, read-only fields no longer generate a work-in-process condition.

Breaking changes

  • All comparisons (=, !=, <, >, <=, >=) against _any field will throw an UnsupportedOperationException. Use matches instead.

  • As a result of improving persisted GraphQL query Java APIs and implementations, a number of deprecations were made.

    • Previously, the AutomaticPersistedQueryProtocol and StaticPersistedQueryProtocol classes were concrete classes extending the abstract class GraphQLPersistedQueryProtocol. These classes contained all logic specific to their respective protocols. Now, AutomaticPersistedQueryProtocol and StaticPersistedQueryProtocol classes are abstract classes extending the abstract class GraphQLPersistedQueryProtocol. The abstract classes now contain all protocol-specific logic. CustomStaticPersistedQueryProtocol and CustomAutomaticPersistedQueryProtocol replace their concrete predecessors, and are intended for use cases where configurable CMS fields are necessary.
    • Therefore, the original usage of AutomaticPersistedQueryProtocol and StaticPersistedQueryProtocol objects should be replaced with those implementations if the contained fields are still necessary. If fields aren't necessary, extend one of the abstract classes, or implement the interface to supply the intended implementation.
    • For editorial cases, persisted query protocol data from the prebuilt APIs will automatically be migrated with the relocation logic in the CustomContentDeliveryApiEndpoint#getPersistedQueryProtocol and CustomContentManagementApiEndpoint#getPersistedQueryProtocol methods, but other custom-built APIs should implement a similar fix in order to migrate the original persisted queries' data as well.

v4.2.18.5

v4.2.18.5 had one bug fix.

Bug fixes

  • Corrected an issue in which having too many @ExcludeFromGlobalSearch annotations that were added to content types caused a 400 error.

v4.2.18.3

v4.2.18.3 had one bug fix.

Bug fixes

  • Corrected an issue in which having too many @ExcludeFromGlobalSearch annotations that were added to content types caused a 400 error.

v4.2.18.2

v4.2.18.2 had two bug fixes.

Bug fixes

  • Corrected an issue in which recordable fields that were set to an archived object were loading with no visible value.
  • Corrected an issue in which instantiated RichTextElement objects were not setting the correct database.

v4.2.18.1

v4.2.18.1 had two bug fixes.

Bug fixes

  • Corrected issues related to the content management API.

v4.2.18

v.4.2.18 had 45 bug fixes, 7 new features, and 16 improvements.

Improvements

  • Editors can configure Brightspot to have a dark-mode appearance.

  • Improved integration with Google Analytics that provides additional insights in the Reports widget and search panel.

  • GraphQL—

    • The CMA now supports editorially defined content types.
    • Prior to this release, creating a new record via a CMA mutation required unnecessary arguments for simple cases. Starting with this release, if a record is being created, there is no need to specify an arbitrary id DiffId argument for the mutation and its only valid diff object. As a result, id argument rules for mutations have been improved.
    • Removed Express dependencies from GraphQL module tests.
    • FormRequest errors typically exist due to validation errors, and are thus expected since they imply user error rather than a bug. As a result, FormRequest errors are now treated as expected errors in the CMA.
    • The Automatic Persisted Query implementation has been updated and optimized for performance by accounting for CloudFront caching and load-balanced environment factors.
    • Developers now have the ability to inspect PersistedQuery records to identify non-optimized Automatic Persisted Query queries in production if missed in lower environments.
    • The class ContentDeliveryApiViewRequestAnnotationProcessor was replaced with ContentDeliveryApiWebAnnotationProcessor, which has the same signature and functionality.
    • @WebParameter converts an HTTP parameter to an enum in view models; as a result, ContentDeliveryWebParameterProcessor was updated to accommodate enum fields.

Bug fixes

  • In some scenarios, the Revisions widget did not display a workflow state or combinations of workflow state and actual revisions. This defect has been addressed.

  • In some scenarios, the Recent Activity widget and search panel did not include assets in a workflow. This defect has been addressed.

  • The search panel did not display assets' revisions when the search field had at least two characters. For example, if an article with headline Chocolate is Heaven has revisions, and the editor types choco, the article's revisions were not listed in the search panel. This defect has been addressed.

  • Defects in the InDesign plugin's UI were resolved.

  • In some scenarios, the search panel did not display additional filters for a selected content type. This defect has been addressed.

  • When viewing a site's Edit Site widget, selecting a new site from the site switcher did not load the selected site. The site switcher now loads the selected site in this scenario.

  • Integrated search:

    • An IllegalStateException error occurred when performing a YouTube federated search and no channel ID is specified in the YouTube configuration. The error no longer appears in this scenario.
    • An IllegalStateException error occurred when performing a Getty federated search and no API key is specified in the Getty configuration. The error no longer appears in this scenario.
    • Searches on AP Images returned different numbers of matches when using different sorts. For example, sorting by oldest returned a different number of matches compared to sorting by newest. The number of matches is now identical regardless of sort.
  • Prior to this release, editors could create custom content forms that include widgets defined as hidden. For example, a publisher wants to hide the Translations tab, but editors could include that tab in their custom content forms. Starting with this release, editors cannot include hidden widgets in their custom content forms.

  • In some scenarios, the content picker did not limit the content type to the corresponding selection field. For example, when opening a selection field to select a video, the content picker included the content type field to select any content type—not just videos. The content picker now limits results to the expected content type.

  • When opening a content picker for tags, the display of child tags was incorrect. (The display was correct when opening the tag from the search panel.) The display of child tags is now correct.

Breaking changes

  • For existing projects that include the Translation plugin, all existing roles that should have the Translation permission will need to be re-saved with the new Translation Permission object added. Please contact your Brightspot representative for the script needed to complete this function, referencing ticket BSP-11635.
  • "Primary Author" has been deprecated. As a result, themes will need to be updated to render multiple authors on the front end.
  • GraphQL object types are supported without backing Java classes in the CMA. Any classes that have a custom internal name that is not their fully qualified class name will need their entry fields redefined to specifically utilize their object type directly.
  • We have improved Automatic Persisted Queries (APQ). Previously, the serveGraphQL method expected only an ApiRequest parameter, and returned a plain map representing the response. Now the method expects a WebResponse parameter along with the ApiRequest, and also returns a GraphQLApiResponse object. In order to get the plain map from the response object, call GraphQLApiResponse#getResponseMap.
  • ContentDeliveryApiWebAnnotationProcessor has moved from com.psddev.graphql.cda to com.psddev.graphql.cda.annotation. ContentDeliveryApiViewRequestAnnotationProcessor is replaced by ContentDeliveryApiWebAnnotationProcessor; however, they share the same signature and functionality, so only the superclass name needs to be changed in any affected subclasses.

v4.2.17.13

v4.2.17.13 had one bug fix.

Bug fixes

  • Corrected an issue in which queries working in Solr 4.6.1 no longer work in Solr 8.11.1.

Breaking changes

  • The fix described above requires a SQL to Solr copy.

v4.2.17.12

v4.2.17.12 had one bug fix.

Bug fixes

  • Corrected an issue in which exact comparisons against Set<String> fields were not working as intended.

v4.2.17.11

v4.2.17.11 had two bug fixes.

Bug fixes

  • Corrected an issue preventing preventing the References widget from displaying properly.
  • Corrected database-related backwards compatibility issues.

v4.2.17.10

v4.2.17.10 had two bug fixes.

Bug fixes

  • Corrected an issue preventing the code playground from working properly.
  • Corrected an issue in which cache was not being invalidated after reconnecting to the replicator.

v4.2.17.8

v4.2.17.8 had two bug fixes.

Bug fixes

  • Corrected an issue relayed to dynamic list de-duplication.
  • Corrected an issue preventing the {{include}} helper from working properly.

v4.2.17.7

v4.2.17.7 had one bug fix.

Bug fixes

  • Corrected an issue in which copying and pasting from an article body field to another application did not retain hyperlinks.

v4.2.17.6

v4.2.17.6 had one bug fix.

Bug fixes

  • Corrected an issue in which users were unable to log into Brightspot after disabling an RTC setting.

v4.2.17.5

v4.2.17.5 had two bug fixes.

Bug fixes

  • Corrected an issue preventing transitions and comments from being retained when moving a revision through a workflow.
  • Corrected an issue in which additional permalinks were being created on manual saves for pre-published content.

v4.2.17.4

v4.2.17.4 had one bug fix.

Bug fixes

  • Corrected issues related to the user interface of the InDesign plugin.

v4.2.17.3

v4.2.17.3 had one bug fix.

Bug fixes

  • Corrected an issue related to a class modifier not working properly on abstract classes.

v4.2.17.2

v4.2.17.2 had one bug fix.

Bug fixes

  • Corrected issues affecting the user interface of the InDesign plugin.

v4.2.17.1

v4.2.17.1 had 8 bug fixes.

Bug fixes

  • Corrected an issue in which too many records were reference resolved and reduced the number of State: Reference Resolve events.
  • Corrected an issue causing an error when AdditionalPermission class was deleted.
  • Corrected an issue in which a technical filter replaced another filter, but didn't yet share the same dependencies.
  • Corrected an error related to the Field.java file.
  • Corrected a regression error related to performing manual translations.
  • Corrected an issue in which some object types for abstract modification classes were missing.
  • Corrected an issue in which spaces were replaced in the GraphQL Explorer with + characters upon refresh.
  • Improved GraphQL error responses.

v4.2.17

Improvements

  • Site admins can now hide comments posted by a visitor. Filed under: user plugin

  • A toolbar button is now available in the rich-text editor for adding heading levels. These headings typically render on the front end as <h2>, <h3>, etc. Filed under: rich-text editor

  • Multiple workflows are now available for any content type or site-content type combination. Filed under: workflow

  • Conversations widget:

    • Improved display of threaded comments.
    • Improved layout and appearance of entire widget. Filed under: conversation
  • The processing for translations now supports the correction of validation errors. For example, an editor sent an article for translation, and in the interim the date published became a required field. In this scenario, Brightspot considered the translation as an error. Editors can now manually add the date published to the translation instead of resending the for translation. Filed under: translation

  • In the Edit Global and Edit Site widgets, a search field is now available to locate a label. For example, searching for Advanced lists all the accordions and fields containing the word Advanced. Filed under: site setting

  • Several improvements to GraphQL were deployed, including improved error messages and support for wildcard paths. Filed under: GraphQL

  • Social posts are now available for lookup by group, in addition to the previous user and role lookups. Filed under: social link

  • Users can create new content types from the Admin menu. Filed under: content form, configuration

  • Prior to this release, when configuring a translation, admins could select the workflow a translation entered after translation. In that case the translation entered the workflow at the workflow’s first status. Starting with this release, admins can select the workflow status a completed translation enters. Filed under: translation, workflow

Bug fixes

  • In some scenarios, Brightspot reported that an item was archived even though the item was not actually archived in the database. This defect has been addressed. Filed under: archive, database
  • In some scenarios, when creating an image from a URL the crop dimensions were not honored. This defect has been addressed. Filed under: image
  • In some scenarios, when adding content types to a list an error message appeared similar to the following: Must match groups = brightspot.core.promo.Promotoable and isAbstract = false! This defect has been addressed. Filed under: database
  • A translation for a content type (such as an article) has a completion state of Draft. An editor creates an article, manually translates it, and publishes the translation. The editor then translates the article again. Prior to this release, because the end state of the translation is Draft, the existing live translation was also put into draft thereby removing the published version from the front end. Starting with this release, new translations are published as a new revision and the previously live translations are treated as previous revisions. Filed under: translation, draft, revision
  • Under certain conditions, embedding an Instagram post generated an error message in the rich-text editor. This defect has been addressed. Filed under: rich-text editor
  • In some scenarios, previews of SVG images within Brightspot resulted in error messages. This defect has been addressed. Filed under: image
  • Prior to this release, when an editor archived a vanity redirect, the redirect was still active on the server. Starting with this release, archived vanity redirects are no longer active. Filed under: archive, URL
  • In some scenarios, the Add URL form did not appear in the URLs widget. Although this error is not reproducible in our development environment, we pushed a fix to hopefully remedy this symptom. Filed under: URL
  • Prior to this release, an enhancement in draft status did not render in the rich-text editor. Starting with this release, enhancements in draft status render correctly in the rich-text editor. Filed under: draft, rich-text editor
  • Starting with release 4.2.13 comments to items could be displayed in a threaded format. A regression error occurred when opening items with non-threaded comments; changes made in the rich-text editor for such items were not saved. This defect has been addressed. Filed under: conversation, rich-text editor
  • In some scenarios, deleting a content type caused an error when impersonating a user with permission to that content type. This defect has been addressed. Filed under: impersonate
  • Pasting hyperlinks into the rich-text editor caused an error condition. This defect has been addressed. Filed under: rich-text editor

Breaking changes

  • This release removes ObjectType records when a content type is removed. Since an object type won’t be available if a corresponding Java class is removed from code, existing content associated with the object type must be cleaned. Otherwise, some of the CMS functionality, such as search and work stream, will be broken.

  • This release introduces new Slack webhooks no longer supporting user notifications, and, as a result, the following breaking changes were made:

    • Existing Slack apps that haven’t been migrated to allow granular scopes must do so for search and notifications to function.
    • Slack workspaces previously configured via the Slack Webhook setting must instead be added as a Slack Workspace object in Sites & Settings.
    • Existing Slack delivery options will no longer function. Users will need to authenticate with a new delivery option to re-enable slack notifications.
    • Similarly, users will need to reauthenticate in search to regain access to Slack search.
  • The Draft & Workflow Completion Action would sometimes unpublish content if it was re-translated. To fix this bug, the TranslationCompletionAction API has been changed such that any of its downstream implementations perform database persistence calls, rather than relying on TranslationService#completeTranslation for persisting data.

  • This release addresses some issues with Substitution and Augmentation. As a result, com.psddev.dari.db.Substitution and com.psddev.dari.db.Augmentation are both deprecated and replaced with com.psddev.dari.util.Substitution. The deprecated classes will continue to work, but we recommend updating existing code to use the new syntax. Please contact your Brightspot representative for this new syntax, referencing ticket number BSP-11338.

  • As a result of enabling CMS admins to delete comments, the following breaking changes were made:

    • MemberAffinity and MemberContent are no longer read-only at a class level. Instead, MemberAffinity is permissionable, which verifies a user’s permissions and properly displays records within the community widget that the user is allowed to see.
    • CommunityWidgetPage now conditionally displays associated records based on read permissions and of those who can view those records, and only those who can edit comments will be allowed to when viewing a community widget record.
  • Delivery no longer uses Express Theme Core, and is unable to use Style Groups in newer projects. As a result, ModuleTypeAugmentation has been deleted in favor of ModuleTyle implements StyleGroupObject. Additionally, StyleGroupSettings, CuratedStyleGroupProvider, and CuratedStyleGroup have all been moved from the brightspot.themes package to brightspot.core.theme.

  • As a result of improving GraphQL error response messages, the following breaking changes were made:

    • GraphQLRequestException is no longer directly throwable, because it is an abstract class now. Instead, subclasses should throw exceptions.
    • Default extension details include a new code extension that consists of the exception class name so that error types can easily be identified. In order to change either the extensions or code details, the addDefaultExtension and/or getCode implementations, respectively, must be overridden in subclasses.
    • Persisted query exceptions only include the message in the error response, but no longer include any extension data.
  • The Translation framework decouples the TranslationService invocation from the TranslationRequestPage. As a result, any downstream implementations of TranslationServiceSettings will need to be updated to implement the new abstract method getService. Projects will also need to remove the generic specification.

  • We have improved the WorkflowTranslationCompletionAction. As a result, the workflow field is deprecated and will no longer work. All TranslationSettings that use it will need to be updated.

  • When using DIMS v3.3.21 or higher, the corresponding image editor must set the dimsDisableEncodedFetch sub-setting to match the DimsDisableEncodedFetch setting. Projects should set both to true if possible.

v4.2.16.14

v4.2.16.14 had one bug fix.

Bug fixes

  • Corrected an issue in which some images originating from URLs were not working correctly.

v4.2.16.13

v4.2.16.13 had one bug fix.

Bug fixes

  • Corrected an issue in which the Scheduled Events widget was displaying incorrect date and time information as well as content.

v4.2.16.12

v4.2.16.12 had one bug fix.

Bug fixes

  • Corrected an issue in which forcing a URL to lowercase resulted in 301 redirects.

v4.2.16.10

v4.2.16.10 had one improvement.

Improvements

  • Added a setting to restrict Recent Activity widget queries to the last X days.

Breaking changes

  • The default has changed to only display the last 30 days of recent activity. This can be overridden through using the brightspot/cms/recentActivityLimitDays setting.

v4.2.16.7

v4.2.16.7 had two bug fixes.

Bug fixes

  • Corrected an issue related to dynamic list de-duplication.
  • Corrected an issue related to the {{include}} helper not working in some situations.

v4.2.16.6

v4.2.16.6 had one bug fix.

Bug fixes

  • Corrected an issue related to dynamic list de-duplication.

v4.2.16.5

v4.2.16.5 had one bug fix.

Bug fixes

  • Corrected an error related to the Site Copier data tab.

v4.2.16.4

v4.2.16.4 had one bug fix.

Bug fixes

  • Corrected an issue in which revisions of published articles were being labeled as Scheduled.

v4.2.16.3

v4.2.16.3 had one bug fix.

Bug fixes

  • Corrected an issue in which revisions of published articles were being labeled as Scheduled.

v4.2.16.2

v4.2.16.2 had one bug fix.

Bug fixes

  • Corrected an issue in which too many records were reference resolved and reduced the number of State: Reference Resolve events.

v4.2.16.1

v4.2.16.1 had six bug fixes.

Bug fixes

  • Corrected an issue in which redirects were still redirecting pages even when archived.
  • Corrected an issue in which the Article page view model was fetching incorrect metadata.
  • Fixed a Java error related to the Getty Images integrated search.
  • Corrected an issue in the content delivery API that could have potentially caused errors.

v4.2.16

Improvements

  • A search widget is now available for the dashboard. Editors can create a custom query, and the results appear in the search widget every time the dashboard is loaded. Filed under: dashboard

  • The AMP validator plugin was upgraded to use the current version. Filed under: AMP

  • Entries in the Workflow widget are now sorted alphabetically. Filed under: workflow

  • Administrators can now lock Edit Site at the widget level or at the field level, thereby preventing two users from making conflicting or overwriting changes. Filed under: site setting

  • Items can now be assigned a published date even if they are not published. This feature is useful during ingestions of previously published content that may not necessarily be available on a live server. Filed under: publish, import

  • Copy site function:

    • Improved copying of rich text containing enhancements.
    • Inclusion of Record objects.
    • Choosing to copy original timestamps and editors or use the copy job’s timestamp and initiating user.
    • Copying referenced items. Filed under: site copy
  • Editorial markup, such as comments, are no longer submitted for translation. Filed under: translation

  • Brightspot now incorporates Lingotek’s In Context Preview/Translation feature. Filed under: translation

  • Editors can now apply attributes to tables, table rows, and table cells. Filed under: rich-text editor

  • Comments in the Conversation widget are now numbered. Filed under: content form, collaboration

  • A message appears in the content edit page when an editor moves an item from one status in a workflow to another. The message informs other editors working on the same item about the transition. Filed under: content form, workflow

Bug fixes

  • Prior to this release, the URLs widget displayed an item’s published URL before the item was actually available on the production server; when editors clicked the link an error 404 appeared. Starting with this release, the URL does not appear until the published item is actually available on the server. Filed under: URL
  • The annotation @ToolUi.Main(false) now correctly lists the annotated content type under Misc Content Types. Filed under: search
  • When working with segmentation and multiple audiences, settings such as scheduled publication date or current workflow status propagated to all variations. For example, if an item created for Audience A was scheduled for publication five days in the future, the parallel item for Audience B was also scheduled for five days in the future. Item variations are now sufficiently isolated so that changes to one do not impact the others. Filed under: audience
  • Dropdown lists with many options flowed off the screen, making it difficult to easily scroll up/down or left/right to view and select options. Long dropdown lists now remain inside the Brightspot window. Filed under: content form, dashboard
  • In some scenarios, the annotations @CollectionItemWeight and @CollectionItemWeightMarker incorrectly returned infinite values, resulting in an error message on widgets such as one-off dashboards. This defect has been addressed. Filed under: content form, dashboard
  • In some scenarios, the space between text and an adjacent hyperlink was deleted in translated text. This defect has been addressed. Filed under: translation
  • An editor could change a publish date even though that field is read-only for the editor’s role. This defect has been addressed. Filed under: permissions
  • When overriding the default order of fields in the content edit form, fields taken from one tab did not honor the override. For example, the content edit form’s SEO tab has a Title field. If this field is moved to the Main tab and then configured to appear at the top, the field did not appear at the top. This defect has been addressed. Filed under: content form
  • When logged in to Brightspot and viewing a published page, the published page used the theme of the current site, not necessarily the published site. For example, Article A is published on Site 1. An editor logs in to Brightspot and is working on Site 2. The editor sees Article A rendered with the theme associated with Site 2. This defect has been addressed. Filed under: theme, site setting
  • When working with track changes, deleting a paragraph sometimes deleted the paragraph instead of marking the paragraph with a revision mark. This defect has been addressed. Filed under: rich-text editor
  • The rich-text editor’s track changes toggle reset to off after saving an article. The toggle now retains its current state (on or off) after each save. Filed under: rich-text editor
  • An editor is working in bulk scheduling. The editor then creates and places an item in a workflow state. In this scenario, the item was no longer in the queue for scheduled publishing. This defect has been addressed. Filed under: schedule
  • In some scenarios, when working in the rich-text editor with track changes, new modules were not saved. For example, if an editor toggles on track changes and adds a list in the rich-text editor, saving the item did not save the new list. This defect has been addressed. Filed under: rich-text

Breaking changes

  • As a result of improving our AWS Translation integration, any In Progress AWS Translations should be either canceled or allowed to be completed before deploying this update, as the AWS Translation Job tracking mechanism was updated to prevent rate limiting.

  • To fix situations in which APIs were reading files that potentially had user-specified input, {{JavaImageServlet}} and {{/_image}} endpoints may be disabled for some projects. To make them available, configure {{JavaImageEditor}} by setting {{dari/imageEditor/_java/class}} ({{_java}} key may be any other name) to {{com.psddev.dari.util.JavaImageEditor}}.

  • As a result of improving the Custom Search Widget, the following changes were made:

    • The SearchDashboardWidget implementation has been changed to display a search result view as described in ticket BSP-5201 (the previous behavior showed a global search view with the allowed types pre-selected).
    • The types field is being relocated to the query field in order provide a similar result set until the widget can be re-published in its new form.
    • In more technical terms, SearchDashboardWidget is no longer using JspUtils#include to pull in /WEB-INF/search.jsp. Instead it is now a AbstractPaginatedResultWidget with an editorially controlled Query.
  • The CMS is rendered in standard colors. As a result, accent colors have been removed.

  • The GraphQL CMA schema inheritance rules for unions and interfaces have been improved. Naming conventions have changed as a result for GraphQL representations of concrete Dari supertypes. Instead of a GraphQL object type with name <TypeName> and a GraphQL interface or union type with name <TypeName>_IU, the object type name is now <TypeName>_Type and the GraphQL interface name is now <TypeName>.

  • As a result of improving the persisted query tool in the GraphQL explorer, ApiEndpoint#getPaths is now a public method, rather than protected.

  • GraphQLPersistedQueryProtocol#setApi and GraphQLPersistedQueryProtocol#getApi were removed as they are no longer necessary. Downstream projects can remove these calls.

v4.2.15.7

v4.2.15.7 had one bug fix.

Bug fixes

  • Corrected an issue in which queries working in Solr 4.6.1 no longer work in Solr 8.11.1.

Breaking changes

  • The fix described above requires a SQL to Solr copy.

v4.2.15.6

v4.2.15.6 had one bug fix.

Bug fixes

  • Corrected an issue affecting a new SolrDatabase implementation in which exact comparisons against certain fields were not working.

Breaking changes

  • This fix requires a SQL to Solr copy.

v4.2.15.5

v4.2.15.5 had two bug fixes.

Bug fixes

  • Corrected an issue preventing the References widget from appearing in the content edit page.
  • Corrected backwards compatibility issues with a new SolrDatabase.

v4.2.15.4

v4.2.15.4 had two bug fixes.

Bug fixes

  • Corrected an issue preventing the code playground from behaving as intended.
  • Corrected an issue in which cache was not invalidating when reconnecting to the replicator.

v4.2.15.2

v4.2.15.2 had one bug fix.

Bug fixes

  • Corrected an issue in which too many records were reference resolved and reduced the number of State: Reference Resolve events.

v4.2.15.1

v4.2.15.1 had two bug fixes.

Bug fixes

  • Starting with release 4.2.13 comments to items could be displayed in a threaded format. A regression error occurred when opening items with non-threaded comments; changes made in the rich-text editor for such items were not saved. This defect has been addressed.
  • Corrected an issue in which embedded modules added to a revision were not being saved.

v4.2.15

Improvements

  • Translations and localizations:

    • The reconciliation process between Brightspot and external services (such as Lingotek and AWS) has been improved.
    • The Translation widget was redesigned to improve usability.
    • Error reporting from Google Translate was improved. Filed under: translation
  • Editors or administrators can now copy themes. Filed under: theme

  • The integration with LinkedIn was upgraded to use LinkedIn’s latest API. Filed under: social link

  • When an item is created on one site and published on another site, the available tags for the item are those associated with the publishing site. For example, an editor publishes an item to Site A; that editor can apply to the item only those tags associated with Site A. Similarly, if an editor publishes the same article on Site B, that editor can apply to the item only those tags associated with Site B. Filed under: tag

  • In the Site Analysis widget, hovering over a point in the graph displayed a tool tip. The number in the tool tip corresponded to a date. Starting with this release, the actual date appears in the tool tip. Filed under: analytics

  • DIMS URLs now include a strip path parameter. This parameter indicates if metadata should be stripped from the image. Filed under: image

  • The rich-text editor’s find-replace widget was repositioned and redesigned so that it does not cover the editing area. Filed under: rich-text editor

  • Audiences:

    • Editors can now created audiences at the site level.
    • Editors can search for archived audiences. Filed under: audience
  • An editor locked out of an item can now see the locking editor’s avatar. For example, if Editor A is locked out of an item by Editor B, Editor A can see Editor B’s avatar (and ask that Editor B unlock the item). This was a feature in Brightspot version 3 that has been added to version 4. Filed under: locking

  • In the content edit form, an error indicator appears at the cluster level (if it exists) in addition to the message or indicator at the field level. Filed under: content form

Bug fixes

  • Certain settings for rich-text elements caused errors on save. This defect has been addressed. Filed under: rich-text editor

  • Pagination by weekly buckets in the Scheduled Events widget caused the widget to display incorrectly. This defect has been addressed. Filed under: dashboard, schedule

  • When Editor A opens an item in the content edit page, Editor B sees Editor A’s avatar in the Recent Activity widget. In some scenarios, Editor A’s avatar did not appear as expected. This defect has been addressed. Filed under: dashboard, locking

  • Items published prior to January 1, 1970 appeared with publication date N/A. The publication date now appears correctly. Filed under: date

  • In certain scenarios, the Recent Activity widget listed extraneous “current” content types (such as Current Brand and Current Country). The Recent Activity now lists only the relevant content types. Filed under: dashboard

  • In certain scenarios, selection fields opened empty, and editors needed to re-open the selection field to populate it. Selection fields now open correctly, and contain options should they be available. Filed under: content form

  • In certain scenarios, the caption language did not appear correctly in the AWS Elemental manifest. The caption language now appears correctly. Filed under: Amazon Elemental

  • Publishing by email failed when submitting an item containing an image from an iPhone. This defect has been addressed. Filed under: email to CMS

  • If an item contained a link to another item in draft status, translation for the first item failed. This defect has been addressed. Filed under: translation

  • The template placeholder combination {{#with}}-{{else}} rendered differently in the Styleguide and production environments. The combination now renders consistently. Filed under: Styleguide

  • Previewing an item that included certain types of rich-text elements caused the browser to become unresponsive. This defect has been addressed. Filed under: rich-text editor

  • Keyboard shortcuts for the rich-text editor:

    • The keyboard shortcut ⌘-⇧-Q for inserting a pull quote conflicted with the macOS shortcut to quit all applications and log out. The shortcut is no longer available in the rich-text editor.
    • They keyboard shortcut ⌘-F for finding text was overridden by the identical browser shortcut to find text anywhere in a web page. The rich-text editor’s shortcut now takes precedence. Filed under: rich-text editor
  • In some scenarios, the Scheduled Events widget caused high CPU usage. This defect has been addressed. Filed under: dashboard, schedule

  • Search spotlights on terms incorrectly included partial matches. Search spotlights on terms now include only exact matches. Partial matches can still be specified as variants of the term. Filed under: search

  • When a Brightspot deployment included the InDesign plugin, a styling error prevented display of the login page’s Forgot Password link. This defect has been addressed. Filed under: InDesign

  • In some scenarios, images added to a gallery through bulk upload did not render on published sites. Images bulk uploaded to a gallery now render as expected. Filed under: bulk upload

  • In some scenarios, promoting an item from another item did not populate the corresponding placeholder text. For example, promoting a video from an article in the article’s Overrides tab did not populate the promo’s title, description, and image with text from the video. The placeholder text is now populated as expected. Filed under: promo

  • In some scenarios, workflow notifications were not working as expected. The condition causing this error was corrected. Filed under: notification, workflow

Breaking changes

  • Due to an update to the LinkedIn API, the following signatures in AbstractLinkedInAuthenticationProvider have changed:

    • #authenticate:

      • Old: OAuth10aService oAuthService, OAuth1AccessToken accessToken
      • New: OAuth20Service oAuthService, OAuth2AccessToken accessToken
    • #createCallbackUrl:

      • Old: HttpServletRequest request, HttpServletResponse response, LinkedInToken requestToken
      • New: Site site, HttpServletRequest request
  • This release disables the legacy SAML login filters by default via SamlAuth#useLegacySamlFilters. The filters can be enabled again by adding dari/useLegacySamlFilters = true in the context.xml settings.

  • The disabled filters are as follows:

    • saml/src/main/java/com/psddev/saml/CmsLogin.java
    • saml/src/main/java/com/psddev/saml/CmsLogout.java
    • saml/src/main/java/com/psddev/saml/LoginFilter.java
  • This release also changes the location to which SAML Identity Providers will need to POST their responses if that SAML Identity Provider will be used along with SamlToolAuthenticator. Instead of /cms/logIn.jsp, SAML Identity Providers will need to POST to /saml/login. This change is only required if using the new SamlToolAuthenticator.

v4.2.14.6

v4.2.14.6 had one bug fix.

Bug fixes

  • Corrected an issue in which repeated calls to fetch oembed data were being made instead of being already cached.

v4.2.14.5

v4.2.14.4 had three bug fixes.

Bug fixes

  • Starting with release 4.2.13 comments to items could be displayed in a threaded format. A regression error occurred when opening items with non-threaded comments; changes made in the rich-text editor for such items were not saved. This defect has been addressed.
  • Corrected an issue in which embedded modules added to a revision were not being saved.
  • Corrected an issue in which PreviewDatabaseFilter with Dari web was not resetting the main object properly.

v4.2.14.4

v4.2.14.4 had four bug fixes.

Bug fixes

  • Corrected an issue in which workflow APIs were failing without a current web request.
  • Corrected an issue in which certain permissions were causing a "Article can't be accessed!" message to appear.
  • Corrected an issue in which there was a NoWebRequestException when ApiKey was created in bulk copy and index tools.
  • Corrected an issue in which tagging was not working properly in the Conversation widget.

v4.2.14.3

v4.2.14.3 had four bug fixes.

Bug fixes

  • Corrected an issue in which placeholder text was missing from the rich-text editor.
  • Corrected an issue in which previewing an item that included certain types of rich-text elements caused the browser to become unresponsive.
  • Corrected an issue in which workflow APIs were failing without a current web request.
  • Corrected an issue in which placeholder text placed into a module was not clearing out any placeholder text that previously existed within the module.

v4.2.14.2

v4.2.14.2 had one bug fix.

Bug fixes

  • Corrected an issue in which certain permissions were causing a "Article can't be accessed!" message to appear.

v4.2.14.1

v4.2.14.1 had two bug fixes.

Bug fixes

  • Corrected an issue in which there was no way to end a hyperlink in the Conversation widget.
  • Corrected an issue in which certain permissions were causing a "Article can't be accessed!" message to appear.

v4.2.14

Improvements

  • The email server Brightspot uses now includes a send timeout. If emails are not successfully sent within the configured timeout, an error is raised. Filed under: notification, subscription

  • In full-screen mode, the rich-text editor displays information about tracked changes and comments. Filed under: rich-text editor

  • When performing an action from the search panel, the listing in the search panel immediately reflects that action without repeating the search. For example, if you bulk archive items in the search panel, the listing immediately reflects the bulk archive. Filed under: CMS search

  • GraphQL:

    • Method- and class-level Javadocs now appear in the CDA schema.
    • Added CMA in-schema docs for modifications and indexed fields and methods.
    • Added ability to send a custom response header.
    • Improved message formatting in the case of errors.
    • Improved processing for blank parameters.
    • Improved Java APIs. Filed under: GraphQL
  • Canceling or deleting a job in Lingotek is now reflected in Brightspot. Before this improvement, editors needed to cancel the job in Brightspot (which then propagated the change to Lingotek) or cancel the job in Brightspot after canceling the job in Lingotek. Filed under: translation

Bug fixes

  • Tags created as hidden (hidden = true) when first published did not appear in a tag selection field even after changing to shown (hidden = false). This defect has been addressed. Filed under: content form
  • The Lingotek community is set to A, and an item is sent to Lingotek for translation. The Lingotek community is then set to B. Sending the same item for a subsequent translation failed. This defect has been addressed. Filed under: translation
  • The AMP plugin now validates items that include a form. Filed under: AMP
  • JSON+LD representations of objects were either incorrect or invalid for several content types. The representations now conform to prevailing standards. Filed under: API
  • When two editors are working on the same item, and one of them experiences a network disconnect and then reconnect, the content edit page did not correctly display the field locking messages during that time interval. This defect has been addressed. Filed under: locking
  • A regression bug prevented editors from adding live blog posts to live blogs that are in the draft state. This defect has been addressed. Filed under: live blog, live blog post
  • Field-level locking was not honored in some situations, resulting in one editor overwriting another editor’s changes. This defect has been addressed. Filed under: locking
  • Under certain conditions, the processes for generating a sitemap entered a deadlock condition. This defect has been addressed. Filed under: sitemap
  • Under certain conditions, sites that included a path in the URL (not just a domain name) did not properly display a published page. Pages now render correctly as expected. Filed under: site setting, URL
  • When searching for content and sorting the results by relevancy, fields with comma-separated result (such as tags) did not display correctly. Such fields now display correctly in the search panel. Filed under: CMS search
  • Under certain conditions, SQLExceptions were preventing publishing of content. Those exceptions have been resolved. Filed under: database
  • If an editor was working in a site’s default locale, the browser’s default dictionary was activated instead of any available custom dictionaries. Custom dictionaries now activate as expected. Filed under: localization
  • A few synchronization bugs were addressed with the InDesign plug-in. Filed under: InDesign
  • Under certain conditions, embedding an Instagram post generated an error message in the rich-text editor. This defect has been addressed. Filed under: rich-text editor
  • Under certain conditions, editing an image in the rich-text editor added an extraneous image. Editing images in the rich-text editor performs as expected. Filed under: rich-text editor

Breaking changes

  • Type permission no longer supports content restriction using full text search.

v4.2.13.6

v4.2.13.6 had two bug fixes.

Bug fixes

  • Corrected an issue in which workflow APIs were failing without a current web request.
  • Corrected an issue in which there was a NoWebRequestException when ApiKey was created in bulk copy and index tools.

v4.2.13.5

v4.2.13.5 had one bug fix.

Bug fixes

  • Corrected an issue in which workflow APIs were failing without a current web request.

v4.2.13.4

v4.2.13.4 had four bug fixes.

Bug fixes

  • Corrected an issue in which placeholder text was missing from the rich-text editor.
  • Corrected an issue in which previewing an item that included certain types of rich-text elements caused the browser to become unresponsive.
  • Corrected an issue in which workflow APIs were failing without a current web request.
  • Corrected an issue in which placeholder text placed into a module was not clearing out any placeholder text that previously existed within the module.

v4.2.13.3

v4.2.13.3 had two bug fixes.

Bug fixes

  • Corrected an issue in which CSS and JavaScript on a QA environment were not returning the correct content-type application and ocelot-stream.
  • Corrected a naming convention error related to ToolUserNotification for revisions, which brought editors to the original instance of a content type instead of to its revision.

v4.2.13.2

v4.2.13.2 had one bug fix.

Bug fixes

  • Corrected an issue in which Tomcat TaskThreads were holding onto too many ServletWebRequest instances.

v4.2.13.1

v4.2.13.1 had two bug fixes and one improvement.

Improvements

  • WebRequest has been initialized in AbstractFilter so that it is always available, which is helpful if certain custom filters need access to it.

Bug fixes

  • Corrected an issue in which clicking Reset when cropping an image was causing an error.
  • Corrected an issue in which the value for methods annotated with @Ignored(false) were no longer appearing.

v4.2.13

Improvements

  • If an editor mentions another editor in a conversation, the second editor does not receive a notification (unless that editor is also a subscriber). Filed under: notification

  • GraphQL:

    • Updated the Java library to version 15.
    • Added ability to set permalinks.
    • CMA class now saves UUID.
    • Optimized CDA handling of themes. Filed under: GraphQL
  • Admins can now configure the AWS SQS configuration in context.xml. Filed under: notification

  • Content edit form’s Conversation widget:

    • Text now wraps in the comment field.
    • Editors can now apply rich-text features such as images, lists, and hyperlinks.
    • Editors can organize comments into threads. Filed under: conversation
  • The search panel’s left rail was re-organized so that uncategorized filters appear below the global and content-type filters. Filed under: search

  • Log messages from the AWS SQS queue now include the specific class and queue names. This improvement facilitates debugging. Filed under: debugging

  • The Taxonomy widget’s appearance was updated to match other Brightspot widgets.

  • The ValueGenerator class was upgraded to provide more consistent rendering in the content edit form. Filed under: content form

Bug fixes

  • After upgrading from version 3.x to 4.x, some roles changed to read-only. This defect has been addressed. Filed under: permissions
  • Synchronizing content between Brightspot and InDesign that included quotation marks introduced an error in the InDesign copy. Synchronization with quotation marks now works as expected. Filed under: InDesign
  • After creating a form for external submissions, the front end did not always export those submissions. Exporting submissions now works as expected. Filed under: form
  • Toolbar menu items for custom rich-text elements defined as a block were unresponsive to mouse clicks. These menu items now work as expected. Filed under: rich-text editor
  • Adding an author to a live blog post caused an error. This defect has been addressed. Filed under: live blog post
  • Opening an existing draft appends the draft’s historyId to the URL. Making a change to the item and saving it retained the previous draft’s history ID in the URL—even though in the database, the new draft has a new history ID. The correct history ID now appears when saving a new draft from an existing one. Filed under: draft
  • In some configurations for roles, an associated editor was not able to search for a team member to fulfill an assignment. This defect has been addressed. Filed under: Assignment Desk
  • Suppose a permission allows access to individual content types. Editors with that permission were not able to search for associated content. For example, if an editor has permission to access authors, that editor could not create an article and then search for authors to associate with the article. (This situation occurred when the content type, authors in this example, is not searchable.) Editors can now search for content associated with any content type to which they have access. Filed under: permissions
  • In some scenarios, a front-end template did not render an item’s preview correctly in the content edit page (but did render the item correctly on the production server). This defect has been addressed. Filed under: preview
  • When bulk uploading images to a gallery, if some of those images were invalid (such as a text file or an unsupported graphic format), the resulting content edit form and the published gallery did not render correctly. Brightspot now correctly accounts for invalid images contained in a bulk upload. Filed under: bulk upload, image, gallery
  • On some browsers, the list of modules available for a lead did not scroll correctly, preventing editors from selecting some of the entries. Editors can now select all available lead modules. Filed under: content form
  • Several items are in a workflow. An editor selects those items and transitions them using Bulk Workflow. If the editor selects the last transition (effectively publishing those items), those items could not be retrieved in the search panel. This defect has been addressed. Filed under: search, workflow
  • Editor 1 transitions an item to its next status in the workflow, applying a comment. Editor 2 transitions the same item to the following status, also applying a comment. In the Revisions widget, only Editor 2′s comment appears, because the previous comment was deleted. Starting with this release, all comments are retained during workflow transitions, and they all appear in the Revisions widget. Filed under: workflow
  • If a contact form includes a long text field, the form’s preview in the content edit page showed HTML comments. This defect has been addressed. Filed under: form, preview
  • If an item is published on more than one site, the sitemap included the links to all those sites. For example, if Item 1 is published on Site A and Site B, the sitemap job for Site A included the URLs for both Site A and Site B. Starting with this release, the sitemap job for Site A lists the URLs only for Site A, even if a particular item is also published on Site B. Filed under: sitemap
  • Editors could not drag and drop an image into the rich-text editor. This defect has been addressed. Filed under: rich-text editor, image
  • When starting a new item with the preview pane open, the preview pane displayed an error message. Starting with this release, starting a new item with the preview pane open does not display an error message. Filed under: preview
  • Saving large taxonomies caused out-of-memory errors on the Brightspot server. This defect has been addressed. Filed under: tag, server
  • Custom previews, such as those for InDesign, were not displaying correctly in the preview pane. This defect has been addressed. Filed under: preview
  • When an editor’s locale is French, the right rail and rich-text editor did not appear in the content edit page. The right rail and rich-text editor now appear as expected. Filed under: localization
  • When adding a sequence of enhancements in the rich-text editor, the text for a previous enhancement overwrote the text for the following one. For example, if an editor adds an image with a caption, then an HTML module with a caption, the image’s caption overwrote the module’s caption. This defect has been addressed. Filed under: rich-text editor

Breaking changes

  • CDA theme functionality is no longer enabled by default. Classes extending ContentDeliveryApiEndpoint must implement ContentDeliveryApiThemeable in order to enable theme support.

  • The SiteMapItem and SiteMapType interface methods have been updated to take a com.psddev.cms.db.Site as a parameter. This change updates the following methods:

    • NewsSiteMapItem#getNewsSiteMapEntries
    • NewsSiteMapType#getEntries
    • SiteMapItem#getSiteMapEntries
    • SiteMapType#getEntries
    • StandardSiteMapType#getEntries
    • VideoSiteMapItem#getSiteMapEntries
    • VideoSiteMapType#getEntries
  • Due to updates in translation—

    • Projects will need to update any hard-coded references to /translation paths to use /cms/translation.
    • All Lingotek Callback servlet settings will need to be updated to use the new path under /cms/translation/lingotek/success.
  • The publish input type utilized for GraphQL CMA Save mutations no longer exists. Instead, the toolUser reference ID can be passed directly to the Save mutation.

v4.2.12

Improvements

  • The content picker for modules now has an All category for viewing all available modules, as well as links in a left rail for filtering the modules by category. Filed under: content form
  • Certain tabs and widgets in the content edit form were restructured to simplify the editorial workflow. Filed under: content form
  • Sticky-search settings are now configurable at the site level. Filed under: search
  • GraphQL CMA was enhanced to asynchronously update different fields on the same record without conflict. Filed under: GraphQL
  • The Navigation content type was enhanced to allow for sub-navigation and groups of navigation links. Filed under: page
  • Administrators can set any default delivery option for automatic subscriptions. Prior to this release, the only available default delivery option was through the browser. Filed under: permissions
  • Editors can now associate a promo category and a promo category link on assets and promo modules. Filed under: promo

Bug fixes

  • The following defects in the rich-text editor were addressed (filed under: rich-text editor)

    • Dragging and dropping images into a gallery enhancement in the rich-text editor resulted in unexpected behavior.
    • Saving tables inside the rich-text editor added extraneous line breaks.
    • Pasting marked-up text with links into the rich-text editor resulted in those links not appearing, but they did render correctly in the browser.
    • Embedded raw HTML inside the rich-text editor occasionally prevented editors from saving or publishing the item.
    • In some cases, when adding an enhancement inside the rich text editor, clicking Save in the enhancement’s widget had no effect.
  • In some scenarios, the Recently Used section of a content picker did not display the most recently used entries. This defect has been corrected. Filed under: content form

  • In some scenarios, retrieving images from Getty resulted in incorrect pagination. This defect has been corrected. Filed under: Getty image

  • Naming a revision in a workflow state caused an error. This defect has been corrected. Filed under: revisions, workflow

  • If an item was in a workflow that implemented notifications, then editors received notifications as the item traversed each state in the workflow. Revisions of the same item did not trigger workflow notifications. Revisions now trigger workflow notifications. Filed under: revisions, workflow

  • Inside various widgets (such as a rich-text editor’s enhancement or a content picker), clicking inside the widget and releasing outside the widget resulted in incorrect behavior. Clicking inside a widget and releasing outside the widget now produces the same effect as releasing inside the widget. Filed under: content form

  • In some scenarios, Assignment Desk did not emit notifications when a pitch or assignment changed. Assignment Desk now emits notifications as expected. Filed under: Assignment Desk, workflow

  • In some scenarios, dragging and dropping modules in the content edit form moved other modules in the content edit form as well. This defect has been corrected. Filed under: content form

  • The Switch Site widget did not function correction after switching to the Global site. This defect has been corrected. Filed under: header

Breaking changes

  • The OpenAir and Google Calendar API content types no longer appear in the Quick Start widget by default. As a result, editors who have overridden their default Existing Content selections to include either of these two content types need to go into their Profile → Dashboard (Tab), and then remove those instances from the “Edit Existing Content” field.

  • The sticky search setting was moved from CmsTool to StickySearchFilterSiteSettings.

  • Updates to site permissions in the GraphQL CDA mandated the following changes:

    • The publish object used when using the save methods against a CMA endpoint no longer contains a site field. Instead, the site owner is determined by the site URL passed in the header or query string of a request.
    • Global content is no longer available to all clients. Only clients with global site access can retrieve this content, maintaining parity with CMS search behavior. More generally, if a client had site permissions that limited their CDA access, those permissions now apply to CMA requests as well. Therefore, if querying an object by ID, the site passed must have access to the content requested, otherwise an error will be returned.
    • In the case of save requests to update existing content specifically, the site passed must match that of the content’s current site owner.
  • The signature for EmbeddedContentCreator#writeHtml was updated.

    • Previous: void writeHtml(ToolPageContext page, ObjectField field);
    • Current: void writeHtml(ToolPageContext page, ObjectField field, String selectedTypeName);

v4.2.11.8

v4.2.11.8 had one bug fix.

Bug fixes

  • In some scenarios, previews of SVG images within Brightspot resulted in error messages. This defect has been addressed.

v4.2.11.7

v4.2.11.7 had one bug fix.

Bug fixes

  • Prior to this release, CSV exports from the search panel did not always create a clean file. In particular, values may take up more than one column, causing subsequent values to appear under an incorrect heading. Starting with this release, values in CSV exports are aligned under the correct heading.

v4.2.11.6

v4.2.11.6 had one bug fix.

Bug fixes

  • Corrected an issue preventing YouTube videos from being properly embedded in the rich-text editor.

v4.2.11.5

v4.2.11.5 had one bug fix.

Bug fixes

  • Corrected an issue related to the rich-text editor in which pasting text containing a URL wrapped in parantheses would fail.

v4.2.11.4

v4.2.11.4 had one bug fix.

Bug fixes

  • Corrected an issue in selecting the visual Compact mode had no effect.

v4.2.11.3

v4.2.11.3 had one bug fix.

Bug fixes

  • Corrected an issue in which clicking Reset when cropping an image was causing an error.

v4.2.11.2

v4.2.11.2 had one bug fix.

Bug fixes

  • Corrected an issue in which the styling of certain custom rich-text editor elements was being stripped out.

v4.2.11.1

v4.2.11.1 had three bug fixes.

Bug fixes

  • Corrected an issue in which embedded raw HTML inside the rich-text editor occasionally prevented editors from saving or publishing the item.
  • Corrected an issue in which, in some cases, adding an enhancement inside the rich text editor caused Save in the enhancement’s widget to have no effect.
  • Corrected an issue in which adding a quote enhancement to the rich-text editor caused the module pop-up to be blank after clicking Save & Close.

v4.2.11

Improvements

  • The Lead widget now includes a Recently Used list to quickly add a component to an item. Filed under: content form
  • Prior to this release, the rich-text editor did not adequately preserve attributes for objects with no fields. Starting with this release, the rich-text editor preserves attributes for such objects. Filed under: rich-text editor
  • In some cases, toggling a field on or off did not correctly change the toggle’s color. Brightspot now renders the toggles with the correct color depending on the “on” or “off” value. Filed under: content form
  • The GraphQL implementation was enhanced to reduce unnecessary overhead. Filed under: GraphQL
  • Admins have a new Site Redirects feature that redirects traffic from one domain to another. Filed under: URL

Bug fixes

  • Updates to the rich-text editor caused a regression error with the track changes feature. Track changes now works as expected. rich-text editor

  • When clicking on a saved search, Brightspot intermittently displayed a message Request URI too long. Clicking on saved searches no longer results in this error. Filed under: search

  • An update to localization caused a regression error the display of Brightspot widgets in the InDesign plugin. The widgets now appear as expected. InDesign

  • Tabs with the same display name caused incorrectly nested layout of fields in the content edit form. Tabs with the same display name now render fields correctly. Filed under: content form

  • The Description field in the SEO tab did not always display the correct value. The correct value now appears. Filed under: SEO

  • Hidden content types appeared in drop-down lists of content types. For example, if the Author content type is hidden, Author appeared in drop-down lists of content types. Hidden content types no longer appear in such drop-down lists. Filed under: content form

  • Field-level locking in revisions. Consider the following scenario:

    • Editor A creates an item, creates a new revision of that item, and tabs into a field.
    • Editor B opens the same revision, and tabs into the same field. Editor B sees the warning that Editor A has already locked the field.
    • Editor A makes a change, saves the item, and tabs out of the field.
    • Editor B receives an indication that the field is no longer locked.
  • In this scenario, Editor B can now modify the field. However, the text Editor B sees in the field is not the most recent version that Editor A has saved. When saving the item, Editor B overwrites Editor’s A latest text. Starting with this release, Editor B must refresh the content edit page before making changes in the revision. Filed under: revisions

  • Prior to this release, the Resources widget for a site did not correctly display fallback resources available at the global level. Starting with this release, a site’s Resources widget displays resources at the global level unless overridden at the site level. Filed under: content form

Breaking changes

  • Package name prefix and ViewModel suffix are removed by default for type and field names generated from Java class names in the GraphQL CDA. There are now “Truncation Settings” available in the CDA endpoint configuration to revert this functionality.

  • Removed duplicative types in the CDA by only including one GraphQL type per @ViewInterface type as opposed to also including one for each concrete view model that implements the interface. As a result, classes that extend ContentDeliveryApiEndpoint will now have package name prefix, View suffix, and ViewModel suffix field truncation turned on by default. These are optional and can be turned off by overriding the isTruncatePackageName and/or isTruncateViewAndViewModelSuffixes methods. New instances of CustomContentDeliveryApiEndpoint will also have these settings turned on by default; however, existing instances will not.

  • Decoupled the graphql-java library implementation from the core GraphQL plugin APIs, so other libraries can be used in the future without breaking API signatures. This decoupling has the following effects:

    • Site and API keys can no longer be specified via the HTTP body.
    • The corsDomainWhitelist field is removed from CustomContentManagementApiEndpoint and CustomContentDeliveryApiEndpoint in favor of the new corsConfiguration field. The relocateCorsDomainWhitelist method now exists to migrate corsDomainWhitelist data to corsConfiguration.
    • The entryViewClasses field is removed from CustomContentDeliveryApiEndpoint in favor of the queryEntryViewClasses field. The relocateEntryViews method exists to migrate entryViewClasses data to queryEntryViewClasses.
  • We simplified CDA schema input fields by only including the path argument for content that implements Directory.Item. With this change, path will no longer be recognized as a parameter for querying records that do not implement Directory.Item. For retrieving such items via permalink, the path must instead be passed via the id parameter.

  • The addition of vanity redirects to Brightspot mandated the following changes to tool roles:

    • Wildcard Redirect : admin/wildcardRedirectSearch -> redirects/wildcardRedirectSearch
    • Vanity Redirect: admin/vanityUrlRedirectSearch -> redirects/vanityUrlRedirectSearch
  • All roles that restrict or give access specifically to these admin areas will need to be updated.

v4.2.10.2

v4.2.10.2 had one bug fix.

Bug fixes

  • Corrected an issue in which some Brightspot BOM files were not pointing to the latest library versions.

v4.2.10.1

v4.2.10.1 had one bug fix.

Bug fixes

  • Corrected an issue in which project builds depending on Brightspot BOM v4.2.10 were failing.

v4.2.10

Improvements

  • Integrated a new version of the GraphiQL explorer. Filed under: GraphQL
  • Updated Java and Node.js libraries to include latest security patches. Filed under: security
  • Inside the rich-text editor, editors can now press Shift+Enter inside a numbered or bulleted list to start a new paragraph without the number or bullet. Filed under: rich-text editor
  • Administrators can reduce the number of search fields for various content types. Doing so may provide for a smoother editorial experience when searching in the search panel. Filed under: search
  • In the rich-text editor, editors now have expanded features for working with tables. (Some of these features were previously available in Brightspot version 3.x.) Filed under: rich-text editor

Bug fixes

  • A recent update to GraphQL functionality caused regression errors in some of the developer UI controls and displays. Those errors were addressed. Filed under: GraphQL
  • Bulleted lists in the rich-text editor that had some hyperlinked items did not retain markup after publishing the page. Hyperlinked items in bulleted lists now persist as expected. Filed under: rich-text ✍️
  • In some scenarios, customizing the rich-text editor’s toolbar prevented display of the submenu under the Track Changes button. This defect has been addressed. Filed under: rich-text editor
  • In the Edit Site widget, the desktop was not available as one of the preview device types. Desktop is now available as one of the preview device types. Filed under: site setting
  • In the rich-text editor, an error occurred when closing a pop-up widget for examining one of the embedded enhancements. This defect has been addressed. Filed under: rich-text editor
  • In the rich-text editor, adding an enhancement as an item in a bulleted list generated an error. Using enhancements in bulleted lists now works as expected. Filed under: rich-text editor
  • Some aspects of Instagram feeds were not displaying correctly on the front end or were not integrated correctly with Brightspot. The feeds now display correctly. Filed under: social
  • If you published a CustomContentDeliveryApiEndpoint in 4.2.9.x and are upgrading to 4.2.10.x+, your endpoints need to be republished in order for them to continue working. Filed under: GraphQL

Breaking changes

  • The following RTE actions were merged into the TABLE action:

    • MERGE_TABLE_CELLS
    • TABLE_ADD_ROW_AFTER
    • TABLE_ADD_ROW_BEFORE
    • TABLE_ADD_COLUMN_AFTER
    • TABLE_ADD_COLUMN_BEFORE
    • TABLE_DELETE_ROW
    • TABLE_DELETE_COLUMN
  • Projects using those actions in the toolbar can safely remove them, because table actions are now accessible through the triple dot menu on the table enhancement.

  • Many filters are now hidden in the search panel, and editors can expose them by clicking on a control. Hiding filters is the default configuration. To restore the old view, disable this feature entirely in Admin > Settings > Global > Debug > Disable Configurable Search Filters.

  • Security upgrades mandated the following changes:

    • javax.mail::mail was renamed com.sun.mail:javax.mail
    • Various Google API signatures changed
    • Jsoup removed deprecated methods
    • Cron utils started using the official java.time over org.threeten.bp
    • onegraph project renamed to graphql-ui
  • In the CMA, StorageItems were using the scalar type Upload. They now use a GraphQL Input Type called StorageItem which contains two fields:

    • url whose type is the URL scalar which is expecting a String URL
    • file whose type is the previously used Upload scalar.

v4.2.9.5

v4.2.9.5 had one bug fix.

Bug fixes

  • Corrected an issue in which the References widget in assets used as enhancements in other assets was not properly reflecting the reference.

v4.2.9.4

v4.2.9.4 had one bug fix.

Bug fixes

  • Corrected an issue in which creating multiple asset-level schedules for a single asset was causing some changes to be deleted.

v4.2.9.3

v4.2.9.3 had one bug fix.

Bug fixes

  • Corrected an issue in which some BOM files were not pointing to the latest library versions.

v4.2.9.2

v4.2.9.2 had one improvement.

Improvements

  • Added a "Show More" filter option to limit the view of content type filters when using Brightspot Search.

Breaking changes

  • Since this feature is enabled by default, some filters are suddenly hidden. Administrators may want to restore the old view. To do this, disable the feature in Sites & Settings, by searching for the Disable Configurable Search Filters field.

v4.2.9.1

v4.2.9.1 had one bug fix.

Bug fixes

  • Corrected an issue in which editors were unable to add images to a gallery.

v4.2.9

Improvements

  • Assignment Desk:

    • Editors can update due dates directly from Assignment Desk’s dashboard.
    • Editors can print the listing in Assignment Desk’s dashboard. Filed under: Assignment Desk
  • When filtering on audio files, the search panel defaults to a list view instead of a grid view (because there is no thumbnail available for audio files). Filed under: search

  • GraphQL was enhanced to include support for StorageItems, image sizes, additional form inputs, maps, and other features. Filed under: GraphQL

  • Administrators can now configure for which content types the Social Publish accordion appears in the content edit form. Filed under: content form

  • Brightspot received some new icons for common actions, such as file uploads. Filed under: content form

  • Front-end designers can now add hidden fields to forms. Filed under: Styleguide

Bug fixes

  • Prior to this release, the Revisions widget displayed only the first page of a site’s history. Starting with this release, the entire history is displayed. Filed under: site setting
  • In the preview pane, the content picker dropdown was not displaying any options if the media picker dropdown was empty or non-existent. The content picker dropdown now works as expected. Filed under: preview
  • Advanced queries were incorrectly including certain fields in the results. Advanced queries now work as expected. Filed under: search
  • A query using paginated results that returned an empty result set threw a divide-by-zero error. This condition is now tested and the error no longer appears. Filed under: Dari

Breaking changes

  • Renamed com_psddev_cms_view_ViewTemplate to _viewTemplate in the GraphQL CDA schema.

  • Due to the new @Indexed annotation on GuideFieldEditorialNotes#objectFieldUniqueName, projects need to re-index if there were any existing instances before this release.

  • GraphQL persisted query settings have been changed as follows:

    • Persisted Query Protocol: Static Query Mapping
    • Persisted Query Key Name: key
    • Persisted Query Mapping: Keep Existing

v4.2.8.1

v4.2.8.1 had one bug fix.

Bug fixes

  • Corrected an issue in which @Recordable.Where was not working as a result of a breaking change from Brightspot v.4.2.5.1.

v4.2.8

New features

  • Editors can now enter notes for a field. For example, for a headline field, an editorial note may be “Keep headlines to less than seven words.” This feature is available throughout Brightspot, and can be limited to a particular role. Filed under: content form, site setting
  • Editors can now submit content to AWS Translate directly from Brightspot. Filed under: Amazon Translate
  • Brightspot can now deliver customized and localized error messages. Filed under: localization

Improvements

  • Prior to this release, the content edit form and Assignment Desk forms potentially included a lot of tabs that made for a cluttered display. Starting with this release, the tabs are available under a “more” more_horiz icon. Filed under: content form, Assignment Desk
  • Assignment Desk’s dashboard now includes a notification indicating that the assignments are out of date. Editors can refresh the dashboard to see updated assignments. Filed under: Assignment Desk
  • The rich-text editor has new and expanded keyboard shortcuts. Filed under: rich-text editor
  • Editors can now select the site from which they import content from Brightspot to InDesign. Filed under: Adobe InDesign
  • Prior to this release, workflow notifications were available only to editors subscribed to such notifications. Starting with this release, any editor can receive workflow notifications. Filed under: notification, workflow
  • Display names for image sizes can now include a hyphen or any other character in the Styleguide configuration file. Filed under: image

Bug fixes

  • When editing a gallery from search results in list view, the content edit form did not display correctly. The content edit form now displays correctly in this scenario. Filed under: content form
  • If a role has permissions to a content type, users in the role could not add one-off assets to items of the content type. The permissions logic has been fixed to allow this scenario. Filed under: content form
  • Duplicate translations caused an unnecessary duplicate primary key exception. Duplicate translations no longer throw this exception. Filed under: translation
  • When working in an InDesign item in Brightspot, opening and then closing the preview pane made the content edit form inoperable. The content edit form now operates as expected in this scenario. Filed under: Adobe InDesign, content form
  • A regression bug involving the @Where annotation prevented, among other things, the content edit form from properly populating selection fields. The annotation now works correctly. Filed under: Dari

Breaking changes

  • Refactors to Assignment Desk renames AssignmentContentTabWidget to AssignmentContentWidget, PitchAssignmentsTabWidget to PitchAssignmentsWidget, and PitchContentTabWidget to PitchContentWidget, with the properties files being renamed accordingly. This was done because those widgets are no longer Tab widgets.
  • New permissions have been added to tool roles to provide the ability to edit the editorial notes. Existing tool roles will need to be reviewed/updated for this new permission.

v4.2.7.5

v4.2.7.5 had one bug fix.

Bug fixes

  • In some scenarios, previews of SVG images within Brightspot resulted in error messages. This defect has been addressed.

v4.2.7.4

v4.2.7.4 had two bug fixes.

Bug fixes

  • Under certain conditions, embedding an Instagram post generated an error message in the rich-text editor. This defect has been addressed.
  • Corrected an issue causing the Add URL form to not appear in the URLs widget at times.

v4.2.7.3

v4.2.7.3 had one bug fix.

Bug fixes

  • Corrected an issue causing query field styling to not render properly in some cases.

v4.2.7.1

v4.2.7.1 had two bug fixes.

Bug fixes

  • Corrected an issue that was breaking preview for an InDesign integration.
  • Corrected an issue causing a NullPointerException to appear when users attempted to switch sites without there being a site category in place.

v4.2.7

New features

  • Brightspot imports events from Google Calendar, displaying them in the intranet plugin. Filed under: Google calendar

Improvements

  • Assignment Desk’s search function now more closely resembles Brightspot’s general search function. For example, the New Pitch and New Assignment controls in Assignment Desk’s search panel are now available as selections in a Create widget. Filed under: Assignment Desk
  • Prior to this release, unscheduling an item required the permission to delete content. Starting with this release, editors assigned the new unschedule action can unschedule items. This action, as with all other actions, can be isolated to specific content types. Filed under: schedule, permissions
  • To better utilize screen space, the Actions widget has been eliminated from the search panel, and its various controls (such as Fullscreen) have been moved to other portions of that panel. Filed under: search
  • The Site Categories widget now lists site categories in alphabetical order. Filed under: site setting
  • Prior to this release, when switching sites in the header, editors needed to select a site category and then select the required site. Starting with this release, the Switch Site widget provides an All Sites option to list all available sites, so there is no need to remember with which category a site is associated. Filed under: sites
  • When providing access to content from other sites, editors can now allow access by site category, not just by individual sites. Filed under: permissions
  • Brightspot now implements the latest Instagram Graph API specification, and still maintains the previous Basic API. Filed under: Facebook
  • A workflow is now available for deploying a Brightspot development environment on Windows machines. Filed under: development environment
  • When editors add items to a gallery, the content edit form now scrolls down to display the most recently items added. Filed under: image, gallery

Bug fixes

  • On the mobile version of the content edit form, long strings extended past the visible portion of the screen instead of wrapping within the screen. Long strings now wrap within the visible portion, and there is no need to scroll horizontally. Filed under: mobile
  • When displaying content with the inline editor, some components of an item did not appear. All of an item’s components now appear in the inline editor as expected. Filed under: inline editor
  • The image editor did not always display images correctly due to missing but optional crop dimensions. The image editor now displays images correctly in the absence of crop dimensions. Filed under: image
  • A content search that provided no matching results perturbed the display in the search panel. The search panel now displays no-result searches correctly. Filed under: search
  • After replacing all text in the rich-text editor, Brightspot closed all open pop-up widgets even if they should have remained opened. Pop-up widgets now remain open after replace all as necessary. Filed under: rich-text editor
  • After retrieving items in the search panel, marking the select-all checkbox perturbed the display of the search panel. Marking the select-all checkbox now maintains the expected display and workflow. Filed under: search
  • When a new editor logs in through Google Tool Authenticator, that editor was assigned no role and hence received full admin permissions. New editors logging in through Google Tool Authenticator are now assigned the default role. Filed under: permissions

Breaking changes

  • Following an update to the Unschedule action, projects currently using the Only Type Permission and having roles with the delete permission will need to add unschedule to those roles.

  • Following integration with Google Calendar, the signature for AbstractGoogleAuthenticationProvider#authenticate takes a new GoogleAccountAccess parameter.

  • Following updates to the Instagram API:

    • Facebook and Instagram social services will need to be re-authenticated in the CMS.
    • Instagram accounts can now be a Basic or a Business/Creator account, which must be connected to a Facebook Page via the business conversion flow. See Pages for more information.

v4.2.6

New features

  • Brightspot has a new integration with Amazon Textract for automated text extraction from PDF documents and image files saved as JPG and PNG. With the extracted metadata, the documents are more easily accessible using Brightspot search. Amazon Textract is enabled as a plugin. Filed under: Amazon Textract
  • Brightspot now generates a log of actions taken by Brightspot users, including successful and unsuccessful account logins, changes to an account, changes to content types, and permission changes. For each event, when the event occurred, where the event occurred, the source, the outcome, and the identity of the users associated with the event are captured. Filed under: logs

Improvements

  • Dashboards are available to view and edit directly under Admin on the navigation menu. Filed under: dashboard
  • Filters in the Community Moderation widget now persist. When you set a filter, the setting is still applied when you log out and log back into Brightspot. Filed under: community
  • You can now add a title to the Resources widget. Filed under: Resources widget
  • If you need to publish a large taxonomy set and have the tags prepared in a CSV file, you can now upload that file to Brightspot using the Upload widget. Brightspot automatically creates the tags and applies them to the site on which you are currently working. The CSV file must contain the Display Name, Internal Name, Description, SEO Title, SEO Description, SEO Keywords, and URL in plain text. If the file contains any duplicate tags, Brightspot updates the existing tags. Filed under: tag
  • If an error occurs during bulk upload, you now have the opportunity to fix the error without uploading all the files again. Filed under: bulk upload
  • When configuring a Brightcove account in Brightspot, you can now add an internal name. Filed under: Brightcove
  • Certain areas of Brightspot are designed to be used only by developers who are aware of the implications of making any changes to avoid catastrophic errors to the site. For access to these developer areas, Brightspot users must now be assigned to a role that has developer permissions enabled. Filed under: user
  • When you open or close the lead in an item, Brightspot remembers that selection and the lead is opened or closed in all content types. Filed under: lead
  • The bulleted list and numbered list icons in the rich-text editor now serve as toggles for applying and removing bullets and numbers from items in a list. If the cursor is on an item in a bulleted list, click the bulleted list icon to remove the bullet or click the numbered list icon to change the bullet to a number. If the cursor is on an item in a numbered list, click the numbered list icon to remove the number or click the bulleted list icon to change the number to a bullet. If the cursor is positioned before the first letter of an item in a list, click the backspace key to remove the number or bullet. Filed under: rich-text editor
  • To improve accessibility, you can now use the tab key and the return (or enter) key on the keyboard to navigate to and then select various elements on the Brightspot user interface. Click the tab key while on a page to access fields from left to right then down the page. Filed under: accessibility
  • In Digital Asset Management, the Download and Share options have been moved to the Tools Menu. Filed under: Digital Asset Management
  • In Assignment Desk, the Create Assignment option has been moved to the Tools Menu. By default, the Assignment Desk Dashboard now displays 50 assignments, instead of 10. Filed under: Assignment Desk
  • In the CMS search, selections for common filters can now persist across content types until you click Reset. The Enable Sticky Search Filters option must be marked in the Global site settings on the navigation menu under Admin > Sites & Settings. In the search panel, the common filters are displayed above the filters specific for the content type. Filed under: CMS search
  • There are now two options for restoring archived content: restore it to either draft status or live status. When restoring content to draft, the content is then sent through the workflow before publishing and reactivating the URL. Filed under: restore, archive
  • User settings were stored locally, requiring the settings to be configured on different devices. The user settings are now stored with the user account so the settings are available on all devices. Filed under: user profile
  • In the Upload widget, if you click outside the pop-up window or close it, a confirmation message will appear to verify the action. The confirmation is designed to prevent you from inadvertently closing the window and having to start the upload process again. Filed under: upload
  • To facilitate running simple queries, the predicate input field in the GraphQL Schema for the Content Management API is now optional instead of required. The query limit has been increased from 10 to 200. Filed under: API, GraphQL
  • To improve the experience for mobile users, the Preview pane is automatically off by default. For other devices, there is a new Closed by Default option under Sites & Settings > Preview to turn off preview by default for the entire site. Filed under: preview
  • The current options to increase contrast and change black inputs have been combined into one option called High Contrast Mode. Filed under: article
  • When uploading files, after choosing files to upload, the names of the each file is now displayed if the file is not an image. For an image, a thumbnail of the image is displayed. Filed under: bulk upload

Bug fixes

  • In CMS search, not all actions were available for all results for some content types that were not published. All actions are now available as expected. Filed under: CMS search
  • In an article with multiple authors, when authors were moved using drag-and-drop, they could no longer be edited. The authors can now be edited as expected. Filed under: author, article
  • Email notifications for messages posted to Slack were displaying the incorrect requestor information. The correct name of the requestor is now displayed. Filed under: Slack notification
  • In the rich-text editor, when pasting cells from Excel into a table, the contents of the first cell failed to paste. The complete content is now pasted as expected. Filed under: rich-text editor
  • Attempting to import content from Brightspot into Adobe InDesign using the Brightspot InDesign plugin failed. The content from Brightspot now imports into the InDesign template and the data is written to the corresponding Brightspot object as expected. Filed under: Adobe InDesign
  • In the rich-text editor, when the HTML view was enabled, all the other toolbar actions were hidden, including the option to toggle out of HTML mode. All actions now appear in HTML view as expected. Filed under: rich-text editor
  • In an article, selecting Mobile in the Preview pane adjusted the content but not the size of the pane. Both the pane and the content now adjust as expected. Filed under: preview

Breaking changes

  • An API messaging signature changed.

    • Before: DeliveryOption#messageFromHtml(MessageContext messageContext, org.jsoup.nodes.Document document)
    • After: DeliveryOption#messageFromHtml(MessageContext messageContext, String html)
  • This release removes the SearchCarousel page servlet. Projects can materialize to maintain support.

  • Integrating AWS Textract mandated the following changes:

    • Refactors DAM document data extraction logic to take asynchronous service calls.
    • Refactors DocumentDataExtractor to be an embedded record.
    • Deprecates Cloud Convert API site settings (they can be set in the data extraction settings).
    • The DAM plugin must now set the default or order of document extractor services in Global settings.
  • A refactor requires reindexing all instances of Dashboard, since Dashboard#name is now an @Indexed field. Also, Dashboards are now Global.

  • This change removes the hard-coded default groups (Landscape, Portrait, Square) that were previously being used in the focus dropdown. Projects will need to add their desired group to every image size in styleguide/_imageSizes.config.json. For example:

{
"80xauto": {
"previewWidth": 80,
"previewHeight": 80,
"maximumWidth": 200,
"maximumHeight": 200,
"srcsetDescriptors": ["2x", "3x"],
"group" : "Foo"
},
"fullwidthMedia": {
"width": 1920,
"height": 482,
"maximumHeight": 482,
"srcsetDescriptors": ["2x", "3x"],
"group" : "Bar"
}
}
  • In this case, the focus dropdown will now show options for setting focus points for All Sizes, Foo, and Bar. Any image sizes that do not have a group specified will fallback to the focus points for All Sizes.
  • In order for projects to maintain parity, they will have to go into styleguide/_imageSizes.config.json and add Landscape, Portrait, and Square (case insensitive) to the appropriate image sizes. This will allow the existing focus points to be edited and modified.

v4.2.5.2

Bug fixes

An error for no such method occurred due to a necessary method signature change to allow for development of a new feature. The method with the older signature has been added back to address this error. Filed under: code error

v4.2.5.1

Bug fixes

Selecting content to add to a homepage or section produced an error. This defect, which was inadvertently introduced with the v4.2.5 release, has been addressed. Filed under: homepage, section

v4.2.5

Improvements

  • A new track changes toolbar appears in the rich-text editor when track changes is enabled. The toolbar includes the following functionality: accept changes, reject changes, accept all, reject all, and preview. In addition, when track changes is enabled, deleted text is now indicated by a strikethrough. Filed under: rich-text editor

  • For Digital Asset Management, the Asset Request Approval page and all links to it have been removed. All asset requests are managed in the Assets Request widget. Filed under: Digital Asset Management

  • The following improvements have been made to the functionality for editing images:

    • The focus point can now be set directly on the main edit page. By default, all image sizes are selected, but you can adjust each size individually.
    • To differentiate between the metadata associated with the image and the Metadata tab in Brightspot, the image metadata is now called source data.
    • Basic cropping capability is now available on the image on the Main tab.
    • The metadata, location, and usage tabs have been removed and the options on those tabs moved to the Main tab. Filed under: image
  • OneGraph has been integrated into the current GraphiQL implementation. Filed under: GraphQL

  • In the Prose Mirror rich-text editor, when you type two consecutive dashes, Brightspot automatically converts those dashes into an em-dash. Filed under: rich-text editor

  • Two new modules have been added to Brightspot: a raw HTML module and an iFrame module. Filed under: module

  • To make it easier to view, move, and remove images in a gallery, the view options in the Gallery Enhancement in the rich-text editor have been updated as follows:

  • Gallery Enhancement

    • The basic view has been removed.
    • The advanced view is now the default.
    • The gallery options are now advanced and dynamic.
    • The default view of either list view or grid view is set in Sites & Settings > Global > Main tab > UI cluster. Filed under: gallery
  • When adding a promo or other content to a new List module or Container module, an additional blank item was automatically added and had to be deleted to save or publish the content. The additional blank item is no longer added automatically. Filed under: list, container module

  • For improved performance and readability, the URL in the URL widget and the promoteable URL now link to the CDN URL directly. Previously the attachment URL was unnecessarily prefixed by the site URL, but it did redirect correctly. Filed under: URL

Bug fixes

  • In the Revisions widget, any changes made prior to clicking the Start New Revision link are now retained. Filed under: revisions
  • After playing a video in the preview pane and closing the preview pane, the video continued to play. The video now stops playing when the preview pane is closed. Filed under: video, preview
  • In the list view in the Gallery module, the image’s caption and credit field were not populating the slide placeholder text correctly. The fields now populate as expected. Filed under: gallery
  • In the Search panel, recent searches were missing. The recent searches now appear as expected. Filed under: CMS search
  • After closing a pop-up window on a mobile device, the page would no longer scroll. The scroll function now performs as expected. Filed under: mobile
  • The Notification widget was displaying the incorrect label for subscription. As a result, changing the label of the subscription did not change the label in the widget as expected. The correct label is now displayed for a subscription. Filed under: notification
  • In the rich-text editor, an author had work in progress (WIP) and invited a collaborator to edit the text. When the collaborator clicked the text in the rich-text editor, the text disappeared. Brightspot now preserves WIP as expected. Filed under: WIP, rich-text editor
  • The GraphQL developer page was displaying a 404 error instead of the OneGraph application. The OneGraph application now displays as expected. Filed under: GraphQL

Breaking changes

  • The User#image field has been removed along with its public accessors. For backwards compatibility with existing data, @Relocate has been implemented for migrating the legacy image field value to the new avatar field.

v4.2.4

Improvements

  • To facilitate using web content in print publishing, Brightspot has enhanced the InDesign integration. Using Brightspot extension version 1.1.3 from the Adobe Exchange with the InDesign plugins in Brightspot, web editors and print designers can seamlessly collaborate on content between both InDesign and Brightspot. Filed under: Adobe InDesign
  • When you analyze video watch time or video average view duration, the display data is now in hours, minutes, then seconds in the format of 00:00:00. Filed under: video
  • When you impersonate another user, the actions that you take as that user are now attributed to you. For example, if Jane Doe updates an article while impersonating John Smith, the Revisions widget now displays “Updated – John Smith. Impersonated by Jane Doe.” Filed under: impersonate, revisions
  • New drag-and-drop functionality has been added to reorder items on pages, such as modules; to reorder images in galleries; and to reorder enhancements in the rich-text editor. A new icon indicates that you can move that item. Select the icon and drag and drop the item to its new location. You can select icons next to multiple items to move them all at one time. Filed under: drag-and-drop
  • The option to toggle to HTML code has been removed from the ProseMirror rich-text editor toolbar. Filed under: rich-text editor

Bug fixes

  • The title text for a breaking news banner was not displaying if a link was not included in the banner; the text now displays. Filed under: breaking news banner
  • When creating a new notification for a workflow that applied to all sites, the option to select a site was empty; the option now displays as expected. Filed under: workflow, notification

Breaking changes

  • The playlist field has been removed from VideoRichTextElement.
  • This release requires a new build of the InDesign Plugin, which was upload to Adobe Exchange.

v4.2.3.2

Bug fixes

An error that appeared when index values were updated has been addressed. Filed under: database

v4.2.3.1

Bug fixes

There was some data loss in Solr due to a defect that has since been addressed. Filed under: Solr

The Search#updateUsingParameters in the AbstractSearchPageServlet caused redirects to sometimes fail and is now working as expected. Filed under: redirect

v4.2.3

New features

  • A new API allows projects to add custom authenticators, including Google. To use a custom authenticator, implement ToolAuthenticator then configure the authentication settings. Filed under: API, authentication
  • Two revisions selected from the Revisions widget can now be displayed side-by-side on the page. The list in the Revisions widget also now has the option to display only named revisions (i.e., revisions that were intentionally saved and not just saved as work in progress). When a user’s account is archived, that user’s name will still appear in the Revisions widget. Filed under: revisions

Improvements

  • To simplify cropping images and adding a focal point, the Focus tab on the image editor has been renamed Sizes and three default crop sizes (portrait, landscape, and square) have been added. Click the new Set Focus Point button to set the focus point. When the option to freeform crop an image is selected, the Set Focus Point button is disabled. Filed under: image, focus point

  • On the Assignment Desk dashboard, urgent and past due items are now flagged and elevated to the top of the list in list view and the top of the column in board view. Filed under: Assignment Desk

  • Similar to content locking, a collaborative editing lock has been added to the enhancements in the rich-text editor (RTE). If one user is editing an enhancement, such as an image, in the RTE, other users will see a message that there is a pending edit when viewing the RTE. Filed under: locking, rich-text editor

  • The following improvements have been added to content locking:

    • Inactivity timeout. If a user navigates to another tab or minimizes the browser, after a configured amount of time other users viewing the content will be notified and can take over the lock. This setting can be disabled.
    • Hard lock timeout. If a user holds a lock for longer than the configured number of hours, that user is kicked off the page.
    • Disable unlocking. A new setting and permission allows privileged users to disable unlocking which prevents any other user from taking the lock. Filed under: locking
  • When you drag and drop a single image into the rich-text editor, the default for transformer will now be Image Enhancement instead of Gallery Enhancement. If you drag and drop multiple images, the default will be Gallery Enhancement. Filed under: rich-text editor, drag-and-drop

  • Administrators are now able to reset two-factor authentication for a user by selecting the Reset Two-Factor Authentication for This Tool User option under the Tools Menu in the Edit Tool User widget under Admin > Users & Roles. Filed under: authentication

  • The rich-text editor now uses ProseMirror by default. You can switch back to CodeMirror by enabling it on the Advanced tab of your user profile, which is accessed under your username on the dashboard. Filed under: rich-text editor

  • The Express Vanity URL Redirect feature has been replaced with an improved version. Filed under: redirect

  • Administrators and developers can now add custom link elements in a <head>. Select Link Element after clicking Add under Admin > Sites & Settings > Global (or specific site) > Front-End > Advanced > Add Custom Head Elements. Filed under: header

  • GraphQL was updated so that view interface fields in the query type now support arguments from implementing view models. Filed under: GraphQL

Bug fixes

  • Changes were made to Dari ScriptElement children. They are now treated as raw so that HTML escaping does not apply. This change addresses invalid script body content errors. Filed under: Dari
  • The AWS Transcribe plugin was displaying an IndexOutOfBoundsException error message; the defect causing the message has been resolved. Filed under: Amazon Transcribe
  • In some instances after making changes to your source code, the Dari Reloader was returning an error message stating that the webapp was not reloaded because background tasks were running even if there were no such tasks. The Dari Reloader now works as expected. Filed under: Dari
  • Some icons on the toolbar in the rich-text editor overlapped and were inaccessible; the icons now appear as expected. Filed under: rich-text editor
  • In GraphQL, search filters failed in the delivery API; they now work as expected. Filed under: GraphQL, API
  • The logic in WildcardRedirect to address transfer matched path segments failed when the redirect was on a site with a path in its URL; it now redirects as expected. Filed under: redirect
  • A status utility called Search#updateUsingParameters for AbstractSearchPageServlet was created to ensure that search parameters are being recognized as expected. Filed under: search

Breaking changes

  • The name for the GraphQL query parameter API key was changed from api_key to apiKey.

  • The value for GraphQL site parameter in the content management API is now the site URL instead of the site ID.

  • The Express Vanity URL Redirect feature has been replaced with an improved version in Brightspot, and a programmatic relocate or migration script is not available. Projects that still have legacy instances published will need to manually republish their redirects after upgrading.

  • Security updates:

    • The xmpcore dependency vulnerability was addressed by updating the drewnoakes metadata-extractor to the latest version. A side effect of this is that the Xmp Subject field is no longer being extracted and populated on the ImageMetadataMap.
    • The Apache JSTL taglibs standard dependency vulnerability was addressed by removing the dependency; Brightspot no longer includes or supports the legacy custom tag library.
    • The upgrade to the latest mysql-connector-java dependency could cause issues for projects making direct JDBC connections to the databases (legacy migration data ingestion, etc.).
  • The AWS SDK version was updated to 1.11.623 from 1.11.381.

  • This release moves and renames the Express/Autotag plugin to a Brightspot plugin titled Suggestions. As such, any implementations of AutoTaggable should be renamed to Suggestable.

v4.2.2.1

Improvements

Utilities were added to support future improvements of redirects and search. Filed under: redirect, search

v4.2.2

New features

  • You can now directly download a video, including the Amazon Elemental output. Filed under: video, Amazon Elemental

Improvements

  • When you select a new object type, such as a section on a page, the drop-down list now shows an option to create a new one in addition to selecting an existing one. Filed under: section, page
  • When you adjust the preview window based on the device or screen size, the drop-down options on the preview toolbar now remain in a consistent position. Filed under: preview
  • Administrators can now define a list of common colors for each site that are displayed as swatches wherever the color picker appears in Brightspot for that site. The colors are defined on the Overrides tab of the Edit Theme page, which is accessed under Admin > Sites & Settings > Global (or a specific site) > Front-End > edit (pencil icon) next to Theme. Filed under: theme
  • The breaking news banner can now display an internal link, an external link, or no link (i.e., just text). Filed under: breaking news banner
  • The live blog post view model was modified so it returns both the date and time instead of just the time. Filed under: live blog
  • The VideoPlayable field is now transient in JW Player. Filed under: JW Player
  • Using GraphQL, you can now query by ID or path and return an invisible item by default for the content management API but not for the content delivery API. Filed under: GraphQL, API
  • The content delivery API in GraphQL now allows an object with a backslash (/) in its path to be retrieved. The content delivery API in GraphQL is also now able to preview global if no other sites exist. Filed under: GraphQL, API
  • In the view system, createViews casts a view model via type parameter, so view models can now be returned for some fields even if view models do not implement an interface of the field return type. For instance, SplitPromoRawViewModel is returned for PageViewMainField even if the view model does not implement the field interface. To accommodate this behavior in GraphQL, RawView has been added to every union type as a possible type. Filed under: GraphQL

Bug fixes

  • The drag-and-drop functionality was not working in a content form but now functions as intended. Filed under: drag-and-drop

Breaking changes

  • This release moves all the GraphQL global modifications to a _globals field.
  • The view model template has been modified as we've removed the date field and getDate() method, and added a UNIX "timestamp" field and getter so that we have more flexibility for formatting the date and time. As a result, the singular timestamp value is passed to the front end, at which point the format helper is used for generating both the date and time strings.

v4.2.1.1

Bug fixes

A defect with the GraphQL locale settings that was preventing the global settings from being saved has been addressed. Filed under: GraphQL

v4.2.1

Improvements

  • JW Player can now be configured to be the frontend video player, including as an option with Amazon Elemental. It can be configured with the JW Player API credentials or with the player ID from a JW Player account. Filed under: JW Player, Amazon Elemental
  • Find as well as find and replace have been added to the rich-text editor. You can find a word or phrase by matching either the case or whole word and replace either a single instance or all instances. Filed under: rich-text editor
  • Preview support has been added to GraphQL. Filed under: GraphQL
  • Using Amazon Transcribe, transcription for a video can now include multiple speakers with or without labels for the speakers. Filed under: Amazon Transcribe
  • On a live blog, there is now an option to add a label to indicate that the blog is currently live. Filed under: live blog
  • A rich-text editor has now been added to the video content type. Filed under: video, rich-text editor
  • In the rich-text editor, while one user is editing a table, another user is not allowed to delete it. Filed under: rich-text editor
  • The views available in a gallery have been improved. The basic view was removed because the images were too large and difficult to edit in that view. The advanced view was renamed default and is now the default view. Filed under: gallery
  • Site administrators can choose a default preview type under Admin > Sites & Settings > Edit Site > Main > Preview. Filed under: preview

Breaking changes

  • The TranscribeLanguageCode field was moved from TranscribeGlobalSettings and the provider to the TranscribeSettings wrapper class.
  • A new TranscribeSettings record must be created in Sites & Settings, otherwise the Transcribe service will not run.

v4.2.0

New features

  • The new media module is a more user-friendly alternative to the promo module with no link option. In the new media module, you can select Image (default), Video, or Audio for the Type. To use the new media module, there are two options:

  • Image Video Audio Type

    • On the New Module content edit form, select Media for the Type.
    • Create any new content type to which content can be added (e.g., page) by selecting Add for Content > Misc > Media. Filed under: media module
  • The content management API in GraphQL now supports deleting content. Filed under: GraphQL, API

  • The following features have been added to notifications:

    • A built-in workflow subscription
    • An option to select which message formatter that Brightspot should use. (Set under Admin > Sites & Settings > Global > Main > Notifications.) Filed under: notification

Improvements

  • When creating or editing a custom content edit form, you can now show, hide, or rename fields. Filed under: content form

  • The blog content edit form now contains a description field with a rich-text editor, which is the same as the description field for section, page, and tag. Filed under: blog, rich-text editor

  • On the Assignment Desk dashboard, you can now save a search to run again at a later time, and you can now export the results of a search as a .csv file. Filed under: Assignment Desk, CMS search

  • The Sharing Overrides (External) options that exist on other content types such as season, franchise, episode, special, tag, and section have been added to the author content type. The Sharing Overrides, which are on the Overrides tab, are:

  • Sharing Overrides (External) Sharing Overrides Overrides

    • Share title, which displays when a visitor shares the author information via the social toolbar to Facebook, LinkedIn, etc. By default, it is the Name field on the Main tab but you can change it.
    • Share description, which displays when a visitor shares an asset via the social toolbar.
    • Share image, which displays when a visitor shares an image via the social toolbar. By default, the image is the same as the one used for the author but you can change it to another image. Filed under: author

Bug fixes

  • An error which appeared for the search results for SEMrush Keywords has been addressed. Filed under: SEMrush
  • Users were unable to edit their current profiles; the profile functionality now works as expected. Filed under: user profile

Breaking changes

  • This release changes SavedSearches to be stored as a record, so existing saved searches will no longer work. Use the following script to pull old saved searches and re-save them to work with the new implementation:
public class Code {

public static Object main() throws Throwable {
(new SavedSearchesTask()).submit();
return new Date();
}

public static class SavedSearchesTask extends Task {

private static int TASK_WRITERS_SIZE = 4;
private static int TASK_BATCH_SIZE = 50;
private static boolean TASK_COMMIT_EVENTUALLY = Boolean.TRUE;

private static final String TASK_DESCRIPTION = "Migrate SavedSearches";

@Override
public void doTask() throws Exception {
// set up async queue & writers
AsyncQueue<Object> queue = new AsyncQueue<>();
Database db = Database.Static.getDefault();
for (int i = 0; i < TASK_WRITERS_SIZE; i++) {
AsyncDatabaseWriter<Object> asyncDbWriter = new AsyncDatabaseWriter<>(
TASK_DESCRIPTION, queue, db,
WriteOperation.SAVE, TASK_BATCH_SIZE, TASK_COMMIT_EVENTUALLY);
asyncDbWriter.submit();
}

// Query
Query<ToolUser> query = Query.from(ToolUser.class);

for (ToolUser user : query
.noCache()
.iterable(50)) {
State state = user.getState();
Object savedSearches = state.get("savedSearches");

if (savedSearches instanceof Map) {
Map<String, String> oldSavedSearches = (Map<String, String>) savedSearches;

// Create new SavedSearches from existing map
for (Map.Entry<String, String> search : oldSavedSearches.entrySet()) {
SavedSearch savedSearch = new SavedSearch(search.getKey(), search.getValue(), user);

// Queue up new SavedSearch to be saved on its own as it's not an embedded object
queue.add(savedSearch);
}
// Remove old map of savedSearches
state.remove("savedSearches");

// then queue it up
queue.add(user);
}
}

// Close the queue!
queue.closeAutomatically();
}
}
}