Product Version 2021 Summer
Find our docker images and Helm Charts linked here:
>> Version Tags Services
Table of Contents
Features
Here you will find some of the new release's highlights. Check out the Change Log for further information on all changes.
Please also pay attention to the Breaking Changes and some Update Instructions.
Core
Search Queries with 'LIKE'
It is now possible to specify longer LIKE expressions in search queries. However, the LIKE
expressions remain limited by their number of included wildcards. Thus, a maximum number of 10 %
and _
characters are allowed in one LIKE
expression. The limit compliance is verified in the validation.
>> Usage of LIKE Expressions in Search Queries
DMS Endpoint for Importing a Text Rendition
A new endpoint POST /api/dms/objects/{objectId}/contents/renditions/text allows for the import of a text rendition.
If a content file is imported having one of the text rendition compatible formats and containing readable text, a full-text rendition will be created and stored in the Elasticsearch index. The new endpoint posts the plain text passed in the request body to the text rendition property in the Elasticsearch index replacing the current value if already filled before.
>> POST /api/dms/objects/{objectId}/contents/renditions/text
Assigning App Schemata to Tenants
The yuuvis® Momentum core system can be used as basis for apps. Apps are additional logical units that enhance the core system. Apps can be enabled or disabled for individual tenants via app sets. There are new endpoints for system integrators provided by the API gateway that allow for retrieval, validation or update of the configuration files:
- GET /api/system/tenants/{tenant}/apps - Retrieve a tenant-specific app set.
- POST /api/system/tenants/{tenant}/apps - Update a tenant-specific app set.
- POST /api/system/tenants/{tenant}/apps/validate - Validate a tenant-specific app set.
An overview of available apps can be retrieved via the following new endpoints of the API gateway:
- GET /api/system/apps - Retrieve all apps in the system, accessible for system integrators.
- GET /api/dms/apps - Retrieves all apps in the tenant, accessible for all authenticated users.
Error Codes during Schema Validation
Errors may occur in many different situations during data processing. In addition to the HTTP status code, yuuvis® Momentum core offers a well-defined structure and labeling of any thrown error. It is thus possible to easily localize the origin of the problem. At the same time, automated catching and analyzing of errors can be implemented based on the fixed error structure and error codes.
>> Error Handling
Structured Data
yuuvis® Momentum offers a property type for the storage of structured data in JSON format. Thus, it is possible to store interleaved data structures in a queryable way without defining each single sub-property in the schema. However, structured data properties should NOT be considered to replace the concept of a well-defined schema. They should be used only if the handling of objects' metadata via the conventional property definitions is not reasonable.
>> Structured Data Properties
>> Example Tutorial
Webhooks
Our set of available webhooks has now a uniform nomenclature and is extended by new webhooks.
>> Webhooks
The following webhooks are new with this release:
- POST dms.request.objects.delete - This webhook is triggered if the object or version to delete exists and is deletable, i.e., if the user has sufficient permissions and if the object is not a non-empty folder.
- POST dms.response.objects.insert - Import requests trigger this Webhook after successful import directly before the return.
- POST dms.response.objects.update - Update requests trigger this Webhook after successful update directly before the return. This concerns content updates, metadata updates and tag updates.
- POST dms.response.objects.search - Search requests trigger this Webhook if they were successful directly before the return.
The following webhook is deprecated with this release:
- dms.request.update.metadata - Use dms.request.objects.upsert.storage-before instead with the additional SpEL condition "
T(java.util.List).of(300).contains(options['action'])
".
The following changes were made in the naming and behavior of webhooks:
New Webhook Name | Deprecated Webhook Name | Behavior as of 2020 Winter | Behavior as of 2021 Summer |
---|---|---|---|
dms.request.import.storage.before | The import of objects (POST /api/dms/objects) always meets the webhooks with action 100 (OBJECT_CREATED). | Beside 100, 101 (OBJECT_CREATED_WITH_CONTENT) is new, depending on whether the object has content or not. | |
Tag operation endpoints meet the webhook with action 300. | Tag operation endpoints meet the webhook with specific actions instead of 300. | ||
dms.response.objects | - | The import of objects (POST /api/dms/objects) meets the webhooks always with action 100 (OBJECT_CREATED). | Beside 100, 101 (OBJECT_CREATED_WITH_CONTENT) is new, depending on whether the object has content or not. |
A content update (POST /api/dms/objects/{objectId}/contents/file) meets the webhook without action. | It comes with action 301 (OBJECT_DOCUMENT_CHANGED). | ||
The webhook cannot be triggered by a deletion. | The deletion of an object (DELETE /api/dms/objects/{objectId}) or of a version (DELETE /api/dms/objects/{objectId}/versions/{versionNr}) meets the webhook. | ||
dms.response.objects.delete | POST dms.response.delete | The deletion of a version (DELETE /api/dms/objects/{objectId}/versions/{versionNr}) meets the webhook 200 (OBJECT_DELETED). | The deletion of a version meets the webhook with action 220 (VERSION_DELETED). |
AMQP Hook Configuration
In the section for AMQP hooks within the system hook configuration file, placeholders can be used as provided by spring. They can reference values in the system environment including configuration files and command line arguments. The placeholders will be replaced by the referenced values of the environment variable during the starting process of the corresponding service.
>> systemHookConfiguration.json
USERSERVICE Public API
The USERSERVICE is an additional service providing endpoints for access and the management of user-related information, settings and contents. The endpoints are now available in an additional API providing CRUD (create, read, update, delete) operations on the user-related data.
>> User Settings Endpoints
Since the release of the first alpha version of the USERSERVICE with version 2020 Winter, several improvements were implemented as described below.
Access Permissions
In order to protect user-specific settings and content data, users can only access objects that they have created themselves. However, tenant administrators can also access objects stored by any other user within their tenant. The tenant administrators are identified by a configurable role. Per default, the YUUVIS_TENANT_ADMIN role is set.
Furthermore, tenant administrators are allowed to retrieve user-specific personal information.
Endpoint URLs
Users can retrievee their own information by replacing /users/{userId}/*
with /me/*
in the endpoint URLs.
Structure of Endpoint Response Bodies
The paging parameters in the USERSERVICE are now consistent with our other public APIs.
More Specific Data Retrieval Endpoints
Users can retrieve either the content file or only the corresponding metadata by choosing the suitable GET endpoint.
Retrieving all IDs of a User's Objects
Users can retrieve a list containing all settings and content IDs that they have created themselves using a specific endpoint.
Storage Limiting
The amount of data stored via USERSERVICE is not counted against a user or tenant limit defined in other services. In order to prevent a misuse of the USERSERVICE, the storage space for JSON settings and binary content is limited per user and per object. The limits can be configured.
Tenant Management API
Metrics of a Tenant
The storage consumption can be monitored via metrics.
- Users with the YUUVIS_SYSTEM_INTEGRATOR role can get the current metrics of any specified tenant.
>> GET /tenant-management/api/system/tenants/{tenant}/metrics - Users with the YUUVIS_TENANT_ADMIN role can get the current metrics of their tenants.
>> GET /tenant-management/api/admin/metrics
Role Assignment via Groups
If users are assigned to a group, the same configuration of roles is assigned to all members. Group assignment can be managed via the corresponding endpoints. If the group is deleted, the roles referenced in that group will be removed from all group members.
- Users with the YUUVIS_SYSTEM_INTEGRATOR role can define new roles during the creation of a user. Therefore, a new parameter section
groups
is introduced into the profile.
Furthermore, such custom roles can be set as standard roles which will be assigned to users of newly created tenants. - Users with the YUUVIS_TENANT_ADMIN or YUUVIS_SYSTEM_INTEGRATOR roles can assign a group to other users.
- In the tenant creation profile, groups can be configured. Thus, roles can be configured that will be assigned to each group member. During tenant creation, groups can be assigned to users.
Web-API Gateway
There are several new endpoints provided by the Web-API Gateway (API-WEB) allowing for the management of catalogs. The catalogs implement selection lists in metadata forms displayed in clients using our framework library. They are also included in yuuvis® client as reference implementation and can be managed via yuuvis® architect.
>> Catalog Management
yuuvis® client as reference implementation
Tenant-Specific Catalogs (Selection lists)
Users with the YUUVIS_MANAGE_SETTINGS role are able to add new values and deactivate old values offered in catalog fields.
Integration of PREDICTION Service
When users upload a content file, a selection of suggested object types is offered from which the users can choose. For each of them, the probability of fitting is displayed. The suggestions are provided by the new PREDICTION service. Whenever users choose an object type, a feedback information is delivered to the PREDICTION service and thus influences further suggestions.
Data Export
In the Metadata aspect area of a displayed object, tables can be displayed. The values can be exported via the download icon. A CSV file will be created that can be used for further analyses. If decimals are among the values, they are formatted according to the language the logged-in user has set.
yuuvis® architect
Localization via Language Configuration Files
In the Localization view, available language configuration files can be exported as JSON files via the download icon. The configuration file contains key value pairs of technical names based on schema and form modeling definitions, and their localization values in the specific language. The values can be translated externally. The modified configuration file can be uploaded for a custom language.
>> Localization
Catalog Management
Selection lists with pre-defined entries can be used in the forms for the properties of your business objects in your client. These selections lists are provided by so-called dynamic catalogs of the Web-API Gateway. Thus, yuuvis® architect allows you to create and modify dynamic catalogs leading to changes in the selection lists displayed in your client.
Global catalogs can be created by users with the YUUVIS_SYSTEM_INTEGRATOR role, tenant-specific ones with the YUUVIS_TENANT_ADMIN role. Tenant admins can copy global catalogs for use of tenant users.
>> Catalog Management
yuuvis® management console
Host Member Invitation
Users logged in as host members are now able to invite further host members that will have the same permissions to manage all organizations. This can be done via the settings menu under Account in the Members view. The listed Members and Invitations are host members.
Host members do no longer belong to an organization.
>> yuuvis® management console
User Settings for Host Members
Host members can edit their user-specific data E-mail, User name, First name and Last name via the settings menu under Account. Furthermore, the Language can be set there to either German or English.
>> yuuvis® management console
Release Candidates
The Release Candidates (Alpha) provide the preliminary results expected to be ready at the corresponding date.
Alpha1 - 09 MAR 2021
Core
Search Queries with 'LIKE'
- Longer
LIKE
expressions are allowed in search queries. The LIKE expressions remain limited by a maximum number of 10 included wildcards (%
and_
characters). The limit compliance is verified in the validation. (internal: OKTO-4686)
DMS Endpoint for Importing a Text Rendition
- A new endpoint allows for the import of a text rendition. (internal: OKTO-4658)
yuuvis® management console
Host Member Invitation
- Host members can invite another host member. (internal: COOL-14332)
User Settings for Host Members
- Host members can edit their profiles including their language settings. (internal: COOL-14398)
yuuvis® client as reference implementation
Data Export
- Form table data can be exported as a CSV file for further analyses. Decimals are formatted in the language the user has set. (internal: COOL-14516)
yuuvis® architect
Localization
- The localization of technical names for a specific language can be downloaded and uploaded (internal: COOL-14333)
Alpha2 - 23 MAR 2021
Core
Assigning Apps to Tenants
- The object types defined in an app schema are available only for tenants for which the app is enabled. New endpoints enable system integrators to manage assignments. (internal: OKTO-4564)
Structured Data
First development steps for storing and searching structured data are planned:
- Definition of the expected structure for the handling of structured data in case of an import and a search. (internal: OKTO-4701)
- Definition of search options and search output. (internal: OKTO-4703)
- Definition of a property type for structured data in the schema. (internal: OKTO-4127)
Tenant Management API
Metrics of a Tenant
- System integrators and tenant administrators can call the tenant management API for current metrics of a tenant. (internal: COOL-14614)
yuuvis® client as reference implementation
Integration of PREDICTION Service
- When users upload a content file, a selection of suggested object types is offered from which users can choose. (internal: COOL-13986)
Tenant-specific Catalogs (Select Lists)
- Catalogs can be used tenant-specifically (1st step, bug fixing in Alpha4). (internal: COOL-14450)
The corresponding properties have a specific classification.
Alpha3 - 06 APR 2021
The two weeks from 24 MAR 2021 to 06 APR 2021 will be our innovation sprint that allows us for trying new ideas and exploring new ways for the future. We do not plan to deliver new features in this sprint, but we will fix appearing bugs if possible.
Alpha4 - 20 APR 2021
Core
Error Codes during Schema Validation
- Meaningful HTTP status codes will be defined. (internal: OKTO-4671)
Tenant Management API
Tenant Deletion
- A system integrator can delete a tenant that has not stored any data. It is possible to remove all custom configurations of a tenant by referencing the deployed custom microservice (internal: COOL-13815).
Role Assignment via Groups
- While creating a new tenant, the groups configured in the tenant creation profile are created, roles are assigned to them, and can be assigned to users (internal: COOL-14292)
- System integrators and tenant administrators can assign users to groups (internal: COOL-14293)
yuuvis® client as reference implementation
Tenant-specific Catalogs (Select Lists)
- Bug fixing: Modifications on global dynamic catalogs should be not allowed in the reference client but only via yuuvis® architect. (internal: COOL-14720)
Alpha5 - 04 MAY 2021
Core
Structured Data
- It is possible to store and search structured data. (internal: OKTO-4127)
Webhooks
- A uniform nomenclature for the webhooks is realized. (internal: OKTO-4619)
AMQP Hook Configuration
- Placeholders can be used in the AMQP hook configuration referencing environment variables (internal: OKTO-4748).
yuuvis® architect
Configurations
- Global catalogs can be created by system integrators, tenant-specific ones by tenant admins. Tenant admins can copy global catalogs for use of tenant users (internal: COOL-14817).
Tenant Management API
Tenant Deletion
- Users with the YUUVIS_SYSTEM_INTEGRATOR role are allowed to delete an empty tenant from Keycloak and yuuvis® Momentum together with all served all custom configurations. The tenant must not have any users or stored objects. (internal: COOL-13815)
yuuvis® management console
Tenant Deletion
Host and organization members can delete an empty tenant from Keycloak and yuuvis® Momentum. The tenant must not have any users or stored objects.
USERSERVICE Public API
The API is now public.
Access Permissions
- Only tenant administrators can access settings and content data of other users. (ERA-7881)
- User information of a particular user is delivered via GET /api/users/{userId} for tenant administrators. (internal: ERA-7829)
- USERSERVICE is configured to limit the size of stored data per item and per user. (internal: ERA-7847)
Endpoint URLs
- Instead of the previous URL
/api/user/...
, USERSERVICE endpoints now have the new URL/api/me/...
. (internal: ERA-7771)
Final - 28 MAY 2021
Core
Webhooks
- New webhooks are added and behavior of existing webhooks modified. (internal: OKTO-4785)
Assigning App Schemata to Tenants
- A list of all available apps can be retrieved. (internal: OKTO-4791)
Postponed Features
These initially planned features could not be realized. Some of them are planned for the next version 2021 Autumn.
Tenant Management API
Searching for Users
Users with the YUUVIS_TENANT_ADMIN role can search for users within their tenant. Users with the YUUVIS_SYSTEM_INTEGRATOR role can search for users within a specified tenant.
Role Assignment via Groups
- In the tenant creation profile, groups can be configured. Thus, roles can be configured that can be assigned to each group member. During tenant creation, groups can be assigned to users (internal: COOL-14292).
Users with the YUUVIS_SYSTEM_INTEGRATOR role can delete a group from a tenant.
Technical User Role in Keycloak
Technical users can be created together with a new tenant. The technical users have the YUUVIS_SERVICE role which is added to Keycloak, but not to yuuvis® Momentum. Users with this role are excluded from the user lists returned by the endpoints GET /tenant-management/api/admin/users and GET /tenant-management/api/system/tenants/{tenant}/users. Thus, in yuuvis® architect, they are not displayed in the user list of their tenant and cannot be edited.
yuuvis® client as reference implementation
Saved Searches
Users can save a configured set of search conditions in order to apply it again later. A saved search can be added to favorites and shared.
Office Document Management
Users can edit Microsoft Office documents and save the modified document in a new version.
yuuvis® architect
Configurations
Users with the YUUVIS_TENANT_ADMIN or YUUVIS_SYSTEM_INTEGRATOR roles can set the initial language for a newly created user. The corresponding invitation e-mail will be sent in the specified language.
User Management
Technical users with the YUUVIS_SERVICE role are not displayed in the user list of their tenant and can thus not be edited via yuuvis® architect.
Searching for Users
Users with the YUUVIS_TENANT_ADMIN role can search for users within their tenant. Users with the YUUVIS_SYSTEM_INTEGRATOR role can search for users within a specified tenant.
Changelog
Bugfixes
Hotfixes
Below you will find information about the provided hotfixes. The latest status about the atrefacts can be bound here: "Version Tags Services".