5.0 - 16 August 2022
PLEASE NOTE! YOU NEED TO UPGRADE TO 4.35 BEFORE UPGRADING TO 5.0
IMPORTANT: 5.0.2 drops support for the legacy Consilio indexmanager and requires a full searchindex rebuild (just like would have happened at any unclean indexmanager shutdown). If you have a lot of PDF files or Office documents you can reduce the 'downtime' by upgrading to 4.35.3 first and rebuilding indices there first to fill the Tika cache
Incompatibilities and deprecations
- The dbserver(whdb, WebHareDB) has been removed
- system.fs_instances.id,- system.fs_settings.idand- wrd.entity_settings.idand any referring columns are now- INTEGER64s
- Deprecations/removals that a dev:rewrite will fix for you:
- Support for the lib=attribute a<tolliumcomponent>has been removed. Merge it into theobjecttype=
 
- Support for the 
- Support for manually configured scheduler tasks has been removed. You should use <task>s in moduledefinitions.
- <authenticationsettings requireauthorization=false>has been removed. It wasn't properly parsed from the XML anyway and is only acting as the inverse of the- managementmodeproperty.
- Support for <undoextendproperties>has been removed. It has already been broken for a while.
- You can no longer manage WRD schema metadata through the legacy objectapi.whlib
- Support for the Tollium rowselectandborderattributes has been removed in both XML and HareScript (this does not affect the newerbordersattribute that replacedborderin WebHare 4.03)
- Support for the WebHare dev-agent (formerly Connect-helper) has been completely removed. You can use wh dev:mountnow to mount a remote WebHare server using WebDav once you've setup a peering connection. "Open in editor" now requires an editor supporting LSP (Language Server Protocol)
- NPM v7 restored automatic installation of per dependencies, even if not explicitly selected. We now explicitly disable that again for modules.
- Support for beforeversion=andrequireversion=applicability checks have been removed - usewebhareversion=with semver-based checks (available since 4.27)
- TestThrowshas been removed
- Support for roleandgrantin the moduledefinition<databaseschema>has been removed. They were never supported by our PostgreSQL integration and only used with the legacy WHDB (dbserver) database.
- mod::consilio/lib/catalog.whliband- mod::consilio/lib/queries.whlibhave been removed and all public functions in- mod::consilio/lib/queuemgmt.whlibhave now been deprecated, use the equivalent functions in- mod::consilio/lib/api.whlibinstead. The- (Sessioned)SearchFor(All),- GetCatalogList,- GetCatalogIdByNameand- GetContentSourceIdByTagfunctions have been removed from- mod::consilio/lib/search.whlib, use- RunConsilioSearchfor searching and- mod::consilio/lib/catalogs.whlibfor catalog/contentsource management instead.
- The search libraries now support more field types. All fields will be returned in the type that they are specified in the
mapping/empty search record, so manual conversion of search result fields shouldn't be necessary anymore. Please note that
legacy Consilio indices don't support MONEY/MONEY ARRAY,FLOAT/FLOAT ARRAY,BOOLEAN/BOOLEAN ARRAYorDATETIME ARRAYqueries or relativeINTEGER/INTEGER64queries (matchtypes<,<=,>and>=) and only legacy Consilio indices requireDATETIMEfields to be prefixed withdate_.
- Custom fields that are indexed using <meta name="consilio-[name]" value="[value]" />must be specified in the catalog definition before they can be indexed by Opensearch.
- Support for INTEGER less/greater than queries for Consilio is dropped, as it didn't work as intended anyway.
- User queries in Opensearch are parsed in Opensearch itself instead of within HareScript, using a simple_query_stringquery. This query format this query type uses is basically the same as HareScript's QueryParser uses, so the results should be the same. Specifically, searching specific fields usingfield:valuequeries doesn't work anymore, so use theCQ*functions to construct a search query instead of constructing a query string programmatically.
- The defaultrequiredoption of theCQParseUserQueryfunction is removed, userequiremodeinstead (available since 4.24). Therequirevariabes (require_allowed,required_requiredandrequired_prohibited) have been removed as well.
- For Opensearch catalogs, the thesaurusidsetting is deprecated in favor of a simplesynonymssettings which determines if the synonyms list of the searched catalog should be used or not.
- The analyzer,search_analyzerandsearch_quote_analyzercontent source field settings have been removed. For language- specific analysis functions, set the catalog language using<catalog lang="...">orUpdateCatalog([ lang := "..." ]). Please note that changing a catalog's language requires the catalog to be rebuilt completely (to reindex all documents using the new language's analysis functionality)!
- Support for editfragmentandeditscreenwidget editors have been removed.wh dev:rewriteshould be able to help rewrite any remaining uses. (The alternativeeditextension=is available since 4.27)
- Users now need to be explicitly granted the system:webdav right to be able to use WebDav URLs. Most users will never need it
- Various optional and/or deprecated libraryattributes have been removed in situations where you can combine it into another macro/function/object attribute by separating library and identifier name with a hash (#)
- ongetsourcesnow receives a STRING parameter with the catalog's tag for which its being invoked
Things that are nice to know
- <windowopenaction>now has a- link=parameter which you can use if the link is hardcoded anyway (no need for a callback)
- The 'Send results by email' form handler will set the Reply-To to the recipient address if not otherwise set
- Dashboard panels can now have individual access checks.
- TestThrowsLike and TestRejectedLike now match their exceptions case-insensitively
- The new language construct FOREVERY [ AWAIT ] (variable YIELD FROM iterator)has been added, to quickly get the values returned by an iterator
- Adds http://www.webhare.net/xmlns/publisher/widgets/wittyblockandhttp://www.webhare.net/xmlns/publisher/widgets/wittyinlinewidgets to allow users to directly insert witty objects into RTDs. (Use with care!)
- You can set the mask parameter of TestThrowsLiketoREPORTto get a print of the exception.- Replacing all TestThrows(calls withTestThrowsLike("REPORT",is a quick way to get a list of all exceptions in a test so you can then simply copy them into the test code.
 
- Replacing all 
- WRD has a new type, WHFSLINK, which stores links to files in WHFS (useful you don't want WHFSINTEXTLINKs ability to store external links too)
- Frontend support for the Tollium GetExclusiveAccess screen has been added
- wh sqlnow has a- -r(raw) option to simply print the results
- You can use IsProductionOrAsIf to guard a workflows/dialog which you need to be able to simulate during development
- Adds a "contains widget" search filter to the Publisher search
- We've added wh debug setsecretand GetTestSecret for more secure secret management during CI tests.
- wh debug listflagsgives you a list of debugflags supported by your current modules.
- WebHare 4.35 Consilio switched to Tika to scan PDF and Office documents for indexable content. A content-hash based cache has been added to cache the results of previous Tika scans which speeds up rebuilds of the Consilio indices. This cache has also been backported to 4.35.3
Things you should do
- Use the functions from mod::consilio/lib/api.whlibinstead of those frommod::consilio/lib/catalog.whlib,mod::consilio/lib/queries.whlibandmod::consilio/lib/queuemgmt.whlib
- All indexed fields are returned in the type specified in the mapping/empty search record, so any code that does conversion
of field types in search results should be removed if the expected type is not STRING.
- Add any fields that are indexed using <meta name="consilio-[name]" value="[value]" />to the catalog definition.
- Remove analyzer settings of content source fields and replace language-specific settings with setting the langattribute of the<catalog>node.
- If you read TESTSECRET_ environment variables directly, consider switch to GetTestSecret.