Releases: Sitecore/jss
Releases · Sitecore/jss
Sitecore JSS 11.0.0
Sitecore JSS 11.0 for Sitecore 9.0 and 9.1
JSS 11.0.0 is the first official release of Sitecore JSS
Upgrading
There are migration instructions from JSS 9-based (Technical Preview 4) applications.
New Features & Improvements
- JSS Import is now Helix-compatible. This means several things:
- JSS' templates now reside in
/sitecore/templates/Foundation
instead of/sitecore/templates
- Imported apps will by default import into a Project-layer module (i.e.
/sitecore/templates/Project/MyAppName
) - See the upgrade guide if updating from a technical preview; it is possible to retain the TP-style import paths.
- JSS' templates now reside in
- JSS now ships with a tracking API that enables JSS apps to push Sitecore analytics events (events, goals, outcomes, campaigns, page views) back to xConnect from the client-side. The JSS React styleguide has an interactive example of using the tracking API.
- JSS apps support Sitecore's robot detection algorithms, enabling collection of analytics traffic without disabling robot detection. Apps must use a
VisitorIdentification
component placed on their main route shell to enable this support. - The
sitecore-jss
package no longer depends onaxios
for making Layout Service requests. This gives consumers flexibility to provide their own HTTP implementations. The migration instructions detail how to handle this for upgraders. - JSS Angular now ships with built-in component lazy loading support.
- GraphQL API now supports paginating item children using the
first
andafter
cursor pagination parameters. - GraphQL API can filter out non-local template fields on the
Item
'sfields
property via the newownFields
parameter. - GraphQL now supports HTTP
GET
for Automated Persisted Queries. This enables some CDN cacheability scenarios. - JSS apps' GraphQL endpoints are configured to automatically lock down schema introspection on Content Delivery servers.
- JavaScript renderings now support pooled Node SSR. See the JS rendering sample
/sitecore/config
for details. - Rendering Parameters Templates will now be created during import when a disconnected manifest defines rendering parameters on a component. This enables editors to have explicit fields to edit each parameter.
- Layout Service will now return the Sitecore Context JSON data even if a route item is not resolved. This means that apps' 404 routes will have access to LS context data, such as the site name and language, as well as any context extensions that may have been added - such as global navigation data. LS will still return HTTP 404 in these cases; just now with extra context data. Sample apps' 404 routes demonstrate using this pattern. Also applies to disconnected mode.
- It is now possible to specify icons for routes and content items in disconnected data, for example
icon: Network/16x16/home.png
at the root of the YAML. - Installing the JSS Server Sitecore package now automatically adds the JSS media handler to the
web.config
file, so this installation step is no longer required. - JSS react sample will treat
.jsx
files as components when generating the component factory, in addition to.js
- Layout Service can now accept item IDs or short IDs in addition to paths when fetching layout data.
- The JSS CLI now supports a
--proxy
option when deploying items or creating new apps. This enables JSS to deploy items in environments that use HTTP proxies. It is also possible to configure the proxy using envionment variables. - The path to the Node executable to use in integrated mode can now be set on the View Engine instance config (see
Sitecore.JavaScriptServices.ViewEngine.Node.config
,NodePath
), instead of always usingnode
on the systemPATH
. This enables different node versions per site. - JSS services (LS, GraphQL, tracker, dictionary) can now accept JWT tokens returned by the SSC auth service, instead of only cookie-based authentication. Both bearer tokens and the
token
header are allowed to pass the JWT payload. - Sitecore 9.1 XM-only mode is supported. XM-only installs must use the XM server components package to avoid installing any XP dependencies. Behavioural personalization and tracker APIs are not available in XM mode.
- The
node-headless-ssr-proxy
example can now accept common proxy configuration variables from environment variables, in addition toconfig.js
settings. This makes it easier to share proxy code in containers and PaaS hosts where environment variables are commonly used. See the README for details. jss setup
can now help setup connections to remote Sitecore installations, not just local Sitecores. In addition,setup
will read any existing configuration and use those values as defaults if it is run on an already setup site.jss deploy items
(anddeploy app
) can now accept a--acceptCertificate
parameter that whitelists a SSL certificate by thumbprint (certificate pinning). Because Node does not respect Windows trusted root certificates, this enables deploying items to local Sitecore instances that use self-signed certificates without disabling SSL validation entirely.- The
onError
andcreateViewBag
hooks insitecore-jss-proxy
can now return promises, allowing for async processing during headless SSR - The disconnected mode layout service now supports a
customizeRendering
hook in addition tocustomizeRoute
andcustomizeContext
. This hook function allows you to customize the JSON returned for specific components in disconnected mode - enabling advanced data mocking scenarios and the ability to replicate layout service customizations while disconnected.
Important Changes
- JSS no longer supports using yarn with its sample applications. Yarn will also no longer be used by the JSS CLI if it is installed.
- Existing
yarn
users: ok to keep using it. We no longer support it to enable shipping a consistent set of dependency versions with the starter apps, not because it cannot work.
- Existing
- GraphQL endpoints must now be individually whitelisted using SSC API keys'
Allowed Controllers
field.*
still whitelists everything, but when specifying allowed controllers you must whitelist theSitecore.Services.GraphQL.Hosting.Mvc.GraphQLController
as well as each GraphQL endpoint usingGraphQL:/url/to/endpoint
syntax instead of a C# type name. For example:Other.Controller, Other.Assembly;Sitecore.Services.GraphQL.Hosting.Mvc.GraphQLController;GraphQL:/api/jssreactweb
- The location of SSC API key items has changed in Sitecore 9.1. They now reside in the
master
database, not thecore
database. You can transfer existing API keys by using the Transfer option in content editor. - Insert options are no longer magically added to route templates during import. Control over route insert options is now given to the manifest author. The migration instructions detail how to handle this.
- The behaviour of
Link
-rendering JSS helper components has been changed to match with normal Sitecore link rendering. Previously if notext
(ordescription
in Sitecore) was set for an external link, the link would render blank. In JSS 11.0, the link will use thehref
value like the Sitecore MVC link renderer will (for all supported languages). - The configuration scheme of the
node-headless-ssr-proxy
example has been refactored, and all configuration is now contained withinconfig.js
instead of bothindex.js
andconfig.js
. Making this refactor to existing usages of this example is optional. - Behavior of the proxy ignore list for
sitecore-jss-proxy
has been modified. It is no longer required to URL-encode (i.e.%20
) ignored paths that contain characters that need encoding in URL strings. This does not affect the default configuration, but would affect custom configurations such as/sitecore%20modules
that would now need only be/sitecore modules
.
Bug Fixes
- Importing a JSS application that has no version in the Sitecore default language will work correctly
- Enabling Node debugging on an integrated mode JSS app with a Node pool size greater than 1 will now reduce the pool size to 1 instead of causing port conflicts
- JSS apps will support Content Testing via workflow correctly when using the JSS Default Workflow
- Layout Service will no longer return HTTP 401 in some cases when it should return HTTP 404
jss setup --nonInteractive
requires fewer arguments to succeed, for CI scenarios that do not need the complete set of JSS CLI capabilities.- JSS rendering insert options are now managed by a global insert option rule, which ensures the option is always available for easier Sitecore-first development.
- Missing
insertOptions
property has been added to the template definition TypeScript typings. - Imported content items will no longer have insert options explicitly set on each item, and will use standard values instead.
- It is now possible to use Experience Editor on route template standard values by explicitly specifying the JSS app name to render with the
sc_jssapp
query parameter. - GraphQL will return ...
Technical Preview 4
release/tech-preview-4 created support.md file
Tech Preview Update 3
See release notes here.
Tech Preview Update 2
See release notes here.
Tech Preview Update 1
See release notes here.
Tech Preview
Merge pull request #11 from Sitecore/helper-basic-app Use the RichText helper for the basic app