ediarum.WEB Version 2.1.1
May 2023
Welcome to the new major release of ediarum.WEB. Now, ediarum.WEB makes use of the native eXist-db indices which improves the backend performance. Due to this major change some code is rewritten and also the API endpoints and the manifest file appconf.xml
must adapted to work with this new version. For more details see the release notes below.
Add index support for objects
Now the eXist-db index fields are used to retrieve objects information. For each object-type all filters and properties are added as index
fields. To see check the right usage of the index, please use the exist-db app Monex.
Attention: All object filters are now of type array of strings. If no value exists the is returned an empty array. Please update your usage of the API endpoints.
Attention: Label filter property is now an map of arrays. The values corresponding to an label are packed in a map entry. Please update your usage of the API endpoints.
The following index fields are defined:
- object-type (e.g.
objecttype---persons
) as field has boolean value: Not every node ofroot
must be an object. With an boolean xpath condition the valid nodes can be selected. Attention: In the appconf.xml theroot
element now only must contain a name. For selection a optionalcondition
element can be added: e.g.<condition>./@type='my-object'</condition>
- object-id (e.g.
persons---id
) - label (e.g.
persons---label
) - absolute-resource-id (e.g.
persons---absolute-resource-id
) - filter properties (e.g.
persons---birthplace
). - label filter properties (e.g.
persons---label---alphabet
) contains
the properties values combined with the corresponding label (e.g.Mein Name---N
)
Other changes:
- Add parameter
$with-filters
option toedwebapi:get-object-list()
- Remove unnecessary function
edwebapi:get-object-list-without-filter
- Remove limit parameter from
edwebapi:get-object-list
- Improve relations filter by moving api call outside from loop
Use index for relations
Also, the relations performance is improved with the usage of indices:
- Remove $limit parameter
- Add indices
- Refactor function
- Attention: Add
condition
tag to relation item in appconf - Use of
@id-type
with@filter
added and documented - The
suject-condition
andobject-condition
must have the@type
'resource', 'id' or 'id-type' (the last on in combination with@filter
) and contain X-Path-Expressions; forresource
the expression remains empty. Attentation: conditions without@type
with an XQuery-function (likefunction($this as map(*), $subject as map(*)) { $this?xml/@key = $subject?id }
) are deprecated and aren't supported.
Update api cache mechanism
Some changes to the API cache mechanism are made:
- Changes to the GET parameter
cache
- Set
cache=no
as default - With
cache=off
no ediarum-cache is used, results are directly generated from database evaluations cache
is now an optional parameter
- Set
- Integrate caching into functions and delete function load-cache-from-map
- Improve cache performance
- A unspecified error was caused by
apply
. At the first
apply
everything went fine, but a followingapply
caused an
unspecified error.
- Cache files are now saved as .json and not as .xml
- Change map values to json compatible Attention: At windows hosts there may be an encoding error if the
file.encoding
java parameter isn't set toUTF-8
- Only use parse-json if used
- Change map values to json compatible Attention: At windows hosts there may be an encoding error if the
- Add error message if cache is locked
- Remove blocking cache for 1 minute
Minor changes
- Integrate cache, refactor and bugfix
edwebapi:get-all
function - Add distance search: with type
distance
only first match is shown; withdistance-all-matches
perfomance is slower but all matches are shown. - Add
order-modifier
to object-list
Update documentation
- Update appconf documentation
- Add CITATION.cff
- Change zenodo badge to link to latest release