WebHare community

WebHare 4.30

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