4.30 - 2021-01-25
Incompatibilities and deprecations
-
mod::system/data/wrdschemas/usermgmtschema.xml
has been removed, use mod::system/data/wrdschemas/usermgmt.wrdschema.xml
instead
- list
selectmode
dynamic changes are now validated and the value must be one of none
, single
or multiple
. Previously any
unknown value was interpreted as none
.
-
wh codegrep
and the iconviewer application have been evicted to the dev
module
- The ‘appevents’ system (RegisterAppEventListener and BroadcastAppEvent) has been removed. You should use the generic IPC
broadcast/event listeners APIs or the Tollium <evenlistener>
component (AppEvents was only a wrapper around these)
- WebHare’s preview mode no longer removes the
X-Frame-Options
and Content-Security-Policy
headers. You will need to
explicitly permit WebHare to frame your site
- ScanBlob and family now return the proper MIME type
application/javascript
for JS files instead of application/x-javascript
- The mimetype for
m3u8
files has been changed to application/vnd.apple.mpegurl
- Generated PDFs now default to
media=print
and to prefer explicitCSS page sizes (preferCSSPageSize
)
- Forms no longer save original versions when updating results. We didn’t really use the old versions and it breaks keyvalue storage and stable result guid assumptions
- Closing a webdesign is unneeded and deprecated. It will now throw on development/test servers
-
WebDesignBase::manifest
and WebDesignBase::GetAllDependedAssets
have been removed as webbrowsers have deprecated or removed support for manifests
-
<filetype searchprovider=>
has been removed. Use searchcontentprovider=
and register it in the moduledefinition.xml
- Wherever the
tolliumicon=
attribute is available, we also offer icon=
now, which currently is simply a fallback if tolliumicon= not set. Eventually
we’ll try to move back to using icon=
everywhere.
- %WHFSFolder::GenerateUniqueName no longer supports an integer as second parameter but requires an
[ignoreobject := objectid]
option (available since 4.11)
- %WHFSFolder::GenerateUniqueName will now name files “file”, “file-2”, “file-3” instead of “file”, “file-1”, “file-2”
- Default ciphersuites have been updated
Things that are nice to know
- AWS S3
GetBucket
now returns common prefixes (‘subdirectories’)
- AWS S3
GetDirectory
now also returns subdirectories
- ‘Goto URL’ in the Publisher will take production URLs of synced sites into accounts to figure out where you want to go
- You can use
<csp policy="frame-ancestors [webhare]" />
to setup the proper rules allowing the current site to be framed
- You can use the new testframework function
waitForEmails
to wait for emails sent to an email address, instead of adding a separate testing step with email
and emailhandler
properties.
-
ifmodules=
can now be used in an applicability test to verify the installation of a module
- Widgets embedded into an email (using GetRTDBody with PrepareMailWitty) will now have their
RenderEmail
executed and this will no longer depend on having a mergecontext. TL;DR: widgets work in richtexts embedded into emails now.
- Adds key/value storage to form results so handlers and other scripts can associate their own metadata with specific form results
- If a publisher form doesn’t validate, users with ‘View source’ rights will be given a chance to fix it and others will be referred to their administrator to have it fixed
- Adds
GeneratePDFFromFile
- Add
FlushWebserverLogfiles
to be able to speed up log parsing tests
- Payments can now contain a ‘userdata’ field for payment handlers to store additional information to track the payment
- Add
GetAssetPackBuildVersion
API to request buildversion of assetpacks. This can be used as the assetcachebuster
in webdesigns to ensure new publications always have the most recent assetpack
- Managed tasks can now set
failreschedule
to control how fast they will be restarted after a failure
- Custom link handlers can also use internal links by overriding
GetLinkRecord
and SetLinkRecordIfSupported
- RTD (internal) links can now be intercepted by overriding %WebDesignBase::GetIntExtLinkTarget and you can now use
GetIntExtLinkTarget
wherever you need to resolve an int/extlink record yourself.
-
<sitesettings><addtocatalog>
now takes a folder=
path to add a subfolder of a site to a catalog
-
<catalog>
now takes a ongetsources=
parameter referring to a function that can return a dynamic list of folders to add to a catalog
-
this->contexts->richdocument->rtdtype
gives you the parent document’s rtdtype in a widget editor
- The number of workers in a cluster can be overridden by creating a
TASKCLUSTER
entity in system:config
.
- The webdesign object now has an
->errorcode
member which will be set to the HTTP error code when processing an error (eg 404 or 500)
- Non sysops can now sync WRD schemas - you can synchronize a schema by having wrd:read rights on the source schema and wrd:metadata on the target schema.
- You can add hosts that cannot switch to
https:
for some reason to the system.webserver.checks.disablehttpschecks
registry key to ignore them during checks
- %GetDatetimeDifference now also returns a
totalmsecs
member which includes both days and milliseconds