This was a simple change to the node engines in the package.json to accept Node 20 after testing.
Important
|
This relies on changes made to Admin Metadata Services 2.1.4 and Catalog Services 2.1.5. |
Tip
|
To revert to the prior behavior, set VITE_METADATA_ROUTER_ALLOWMULTIPLEROUTESPERPATH=false .
|
This allows multiple routes to be mapped to the same path, e.g., /products
, and be distinguished by some other property like scope or component ID.
It will render the first match that is authorized to be seen rather than just the first match.
Added new multi-route rendering component, ComponentRoutes
.
This component will use a new endpoint in AdminServices to read all of the metadata by component ID for the Routes matching a given path, e.g., /product
. This endpoint can be changed using VITE_METADATA_COMPONENTS_URL
, which is /metadata/component
by default.
It will check the permissions of each Route by their scopes and render the first one that is authorized and has metadata returned from the backend.
Overridable via blComponentRoutes
key.
Internally uses new ComponentRouteRenderer
to render the authorized and resolved metadata for the Route.
Overridable via blComponentRouteRenderer
key.
Made pre-existing single route rendering components overridable:
ComponentRoute
as blComponentRoute
This wraps ComponentRouteRenderer
in a react-route Route
With the above changes, this will only be used if there is only one Route mapped to a path.
ComponentRouteRenderer
as blComponentRouteRenderer
This handles resolving metadata for a Route and checking user access to it
Added support restricting routes by matching all scopes not just any
Using new scopeMatchType
property on Route
, taking values ANY
and ALL
. Default is ANY
.
Support configuring a label for the customizable views of a business type using the _adminLabel
attribute on the augmented metadata
Added better semantic HTML tags for certain elements
To revert to using divs, set VITE_MAIN_LAYOUT_VERSION=v1
Marking the main
content of the app in BaseLayout
Wrapping the main Navigation in nav
Using lists and list elements where appropriate
Using buttons on clickable components that are not links
Using section, header, and footer to better describe the organization of components
Added component name style classnames to various components of the Navigation and Header
Moved the tailwind utility classes to external CSS to take advantage of the cascading nature of CSS for easier overriding
Made the subcomponents of these overridable
Enhanced the existing logic for setting the nameLabel
for custom attributes to place it at the FieldTypeRenderer
level.
Added an additional status message to the SandboxRibbon
that displays the total amount of changed items in a user’s sandbox across all entities.
The text also serves as a link that redirects to the My Changes page for the user.
Enhanced the Admin navigation menu sections to be able to be toggled open and closed by clicking on the menu section title.
Added support to AssetBrowserView
for a default sort to be provided via metadata
Make the progress bar in FulfillmentViewDetails
and the FulfillmentCardBody
customizable via metadata.
A custom mapping of Fulfillment Statuses to Percentages can be provided via the fulfillmentStatusToPercentageMap
metadata attribute. Otherwise, the default mapping based on the out-of-box fulfillment statuses will be used.
Enhanced EntityLongView
component to include the parent ID of a nested component in the Formik initial values as part of the attributes.
Added new attributes to EntityGridView
to support restricting visibility of grids to tenant-only, application-only, or specific application contexts.
tenantOnly
: Boolean flag.
applicationOnly
: Boolean flag.
restrictionApplications
: Array of strings that are the IDs of the applications the grid is restricted to.
Fixed losing Application and Catalog context after cache timeout by using stale-while-revalidate caching strategy
Added validation for required fields in Add New Field Augmentation form
Fixed Workflow Orchestration Map in Workflow Details view
Fixed precision of matching Admin Navigation menu items based on the current route so that routes with similar names are not matched.
For example, /workflow
should not match /workflows
Fixed bug where the Add New Field modal for modifying Business Type Create/Update forms could be submitted without required fields having any values — applied validation methods to all required fields.
Fixed bug where the Modify Update Form button does not display if the Business Type name contains the word create
.
Fixed business type fields being clickable when form is disabled/read-only
Fixed instances where we were still using tw-shadow-outline
instead of tw-ring
Added missing variant for motion-reduce
Fixed cases where we used transition
or transform
instead of tw-transition
and tw-transform
Fixed some cases where we used group
instead of tw-group
Added missing localizable message property for the User Settings dropdown in the header
Header.user-settings.label
Resolved an issue where Customer Segment Rules containing two or more rules with special characters (e.g., @, ., etc.) in their values were incorrectly displayed as a single concatenated string after saving and reviewing.
Fixed the behavior when selecting a new folder so that the Asset item filter and sort params are not cleared. Instead, these will be retained when switching folders.
Fixed an issue where the ApplicationSelector
would fail to list all the applications if the number of applications exceeded the page size.
Introduced new TenantService#getApplicationsWithQuery
method, which supports pagination with querying.
Modified the ApplicationSelector
to fetch applications directly using the new method, instead of relying on the TenantContext
.
Fix Default Application implementation to account for users with Tenant access but also have restricted applications & a default application ID assigned to them
Fixed issue where clicking only the text link of the My Profile
button would redirect to the /my-preferences
page — redirecting is now done at the dropdown item level instead of a child Link
component
Fixed issue where ApplicationSelector
was not allowing users to exit out of the default application
On mobile devices: Fixed the icon used to expand or collapse the navigation menu in the header to be the same height as the header. Previously it was slightly overhanding the header.
Fixed the sandbox ribbon messaging sometimes causing the main content to be pushed underneath the sidebar when the navigation menu was open.
The text will not be truncated rather than forcefully extending the ribbon’s width.
This usually only happened on tablet sized screens when many changes had been made to an entity in a sandbox.
Fixed Rule (SpEL) and Query (RSQL) builders not displaying values on initial modal render
The form state was not initialized immediately when the modal was opened, causing the Rule and Query builders to show blank values. To fix this, the modal now waits to render until the form state is initialized.