Product Version 2021 Winter LTS
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
Batch DELETE of Objects
Multiple objects can be deleted with one request.
>> DELETE /api/dms/objects
CATALOG Service
The BETA version of a new CATALOG service is offered that allows for the integration of global catalogs in yuuvis® Momentum. It manages catalog objects and provides CRUD (create, read, update, delete) operations on it. Its endpoints are provided in an own API.
>> CATALOG Service
Rendition Repository
A default rendition repository can be configured. PDF renditions of binary content files assigned to objects can be stored in the default rendition repository. Thus, renditions can be retrieved from storage and are not regenerated for each retrieval request. Whenever a PDF rendition is requested for an object, it is retrieved from the default rendition repository. If available, the stored rendition will be returned. If not available, the requested rendition is generated from the binary content file that is assigned to the object, stored in the default rendition repository and finally returned.
>> REPOSITORY Service
Restructured Commands in COMMANDER Service
The commands available for the COMMANDER service are offered in a new structure.
>> Commands
Export of all Tenant Data (KDDA)
All data stored within a tenant can be exported via COMMANDER service.
>> maintain-export Command
Complete Removal of partially deleted Objects
Delete all objects of a specific tenant that are flagged for deletion via COMMANDER service. This command may be useful, e.g., if objects have been requested to be deleted, and flagged for deletion, but the deletion itself did not take place due to unforeseen circumstances.
>> maintain-delete Command
Comparing Database and Search Index
The the maintain-compare
command provided by the COMMANDER Service is improved in terms of available parameters and output data.
>> maintain-compare Command
Note: This feature is added to the version subsequently.
Additional Separator in tenant-specific Type IDs
In every property definition and every object type definition the id
attribute is required. It is used to identify the object type or property. Type IDs are also used as the name of the type, e.g., in query operations. Hence, it is recommended to choose meaningful values for type IDs. A prefix separated with a :
character allows to identify tenant-specific or app-specific types. For tenant-specific type IDs, it is now possible to use the -
character as an additional separator within prefixes.
>> Type IDs
Object Types available for Object Creation (KDDA)
Users may be allowed to create objects only from a limited range of object types as defined via their roles. Thus, in object creation processes managed via a client application, you may want to offer only this range of object types to the logged-in user. A new internal endpoint of the SEARCH service is now available for services running inside the yuuvis® Momentum cluster. The endpoint is not accessible via AUTHENTICATION service and API gateway.
>> GET /search/api/search/dsl/check/{action}
Correction of Invalid Objects via Webhook
The webhook POST dms.request.objects.upsert.database-before can now be used to complete or correct objects that are invalid in the original request body. Each object is still validated before the entry point of the webhook, but a validation exception is thrown after the webhook entry point. Thus, webhooks of this type can be triggered even in case of an invalid object. Those objects contain the corresponding validation errors in their options
(see example below). Hence, it is possible to, e.g., add required properties to the original request body subsequently via a webhook. The object validation is performed again after the webhook.
>> POST dms.request.objects.upsert.database-before (Webhook)
Specifying tenant-specific Conditions for Webhooks
For each webhook a predicate is configured defining a condition that specifies when the webhook is used. All properties that are available in the corresponding webhook's JSON request body can be referenced. Additionally, the tenant can always be referenced via options['tenant']
.
>> systemHookConfiguration.json | Webhooks
Support of newer Database Versions
The following Databases can now be used for yuuvis® Momentum:
- Microsoft SQL Server 2019
- CockroachDB 20.2
- CockroachDB 21.1
>> yuuvis® Momentum Requirements
Performance Optimization for CONFIGSERVICE
At runtime, the CONFIGSERVICE applies all changes to configuration files to its local resources first. At regular intervals of 5 minutes, the remote resources on the git server are synchronized. The procedure of collecting and summarizing changes reduces the number of commits that have to be managed by the CONFIGSERVICE in case of a high frequency of change requests.
>> CONFIGSERVICE
This leads to some breaking changes that have to be taken into consideration during the version update.
>> Breaking Changes
Tenant Management
Tenant Management API
User Deletion (KDDA)
During the deletion of users, all their stored settings will be deleted as well.
>> DELETE /tenant-management/api/system/tenants/{tenant}
Tenant Deletion (KDDA)
The endpoint for tenant deletion deletes all tenant configurations like schema, role set, forms, localizations, icons and catalogs when deleting a tenant.
>> DELETE /tenant-management/api/system/tenants/{tenant}
Technical User Role in Keycloak (KDDA)
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.
Note: The concept of this feature is under development until further notice.
Endpoints for Identity Management (KDDA)
- The endpoints of the Identity Management Controller (idm-controller) provide an interface for user management within a logged-in user's own tenant. They will replace the user information endpoints of the USERSERVICE.
- The TENANT-MANAGEMENT service can be combined with the new KEYCLOAK-PROXY Service in order to connect multiple instances of the identity provider Keycloak.
KEYCLOAK-PROXY Service
Scaling of the Identity Provider (KDDA)
As of yuuvis® Momentum version 2021 Winter, this new service provides a solution to scale the identity management (IDM) for yuuvis® Momentum, including the TENANT-MANAGEMENT service, USERSERVICE and BPM-ENGINE service (these services require Keycloak as IDM provider). A single Keycloak instance supports up to 50 tenants. So in order to manage a number of tenants larger than 50, it is necessary to run multiple Keycloak instances. They can be connected via the KEYCLOAK-PROXY service such that it will be called by the yuuvis® Momentum services instead of one single Keycloak instance. The KEYCLOAK-PROXY service provides the same REST API with respect to realm and user management as a single Keycloak instance which means that existing Keycloak clients do not need code adjustments for its usage. Thus, yuuvis® Momentum can be operated both with a single Keycloak instance, or with a proxy and multiple instances, depending on the total number of tenants to be hosted.
>> KEYCLOAK-PROXY Service
Business Process Management (BPM)
BPM Engine
Retrieval of Finished Processes
The endpoint for the retrieval of all processes of a user is extended in order to retrieve already finished processes in addition to the ongoing processes. A query parameter can be specified to filter out the finished processes and retrieve only ongoing processes or vice versa.
>> GET /bpm-engine/api/processes
Task Delegation
Assignees of tasks can delegate their tasks to other users. Those delegated tasks' metadata is extended by the property delegationState
to distinguish them from assigned tasks. The delegated tasks can be resolved by the users to whom they were delegated. Resolved tasks are returned to the assignee that initated the delegation and it is the responsibility of the original assignee to complete the task (i.e., the delegate cannot complete it).
>> Handling of Process Instances and Tasks
Candidate Users and Groups
In order to specify multiple users that should be able to take an action on one specific task, those users can be set as so-called candidate users. It is possible to assign candidate groups as well by specifying a role. Each user with this role will be a candidate user for the corresponding task. All candidate users are allowed to claim the task and thereby assign it to themselves. As soon as the task is assigned to one of them, it will not be available for all other candidate users until the assignee returns it to them. All candidate users are allowed to complete the task without assigning it to themselves when no assignee is specified.
>> Handling of Process Instances and Tasks
Client Services & Client Development
Web-API Gateway
Catalog Values Provided by Custom Microservice
The values for catalogs can be retrieved from a custom microservice specified by URL.
>> Defining Object Types for yuuvis® client
BPM Endpoints
The bpm-controller is extended by the following endpoints providing the new functionality of the BPM Engine:
- GET /api-web/api/process/instances/{processInstanceId}/history - Retrieves the process instance history for the process instance specified by its
processInstanceId
. - GET /api-web/api/bpm/tasks/{taskId} - Retrieves the task specified by its
taskId
. - PUT /api-web/api/bpm/tasks/{taskId} - Updates a task specified by its
taskId
. The task action is defined in JSON format in the request body. (Replaces POST /api-web/api/bpm/tasks/{taskId})
Developer Libraries
BPM Integration in Clients (KDDA)
The support of the BMP Engine is extended:
- Task and process details are now displayed in the clients including process-related metadata like history or attachments.
- Processes can be started via start forms.
- Users can delegate tasks to another user who needs to take action on that task.
- Task forms can be configured to display only fields whose values have to be updated.
- In addition to the conventional fields with their values, a general task description can be specified and displayed as a top bar of task forms.
- Candidate users are allowed to claim, edit and give back the corresponding tasks.
- Start forms are provided for starting processes via plug-in actions.
- Task forms are supporting multi-value fields.
Note: In order to provide those new features, the BPM process model follow-up
has been updated. Process instances based on the previous version of the follow-up
process model are no longer supported. They are displayed without subject and attachments. You can delete those process instances via the client application or via the corresponding Web-API Gateway endpoint.
Management of Configuration Files
- In order to unify the management of standard configurations, the standard column and filter configurations are now managed via the Web-API Gateway and no longer via the USERSERVICE.
Note: If standard column or filter configurations have already been stored in your system via the USERSERVICE, they need to be imported again via the corresponding Web-API Gateway endpoint. - All client-specific configuration files like main, plug-in or language configuration are managed via the Web-API Gateway as well.
yuuvis® Momentum client as reference implementation
Important information
yuuvis® Momentum client as reference implementation demonstrates a possible implementation of a GUI (Graphical User Interface) based on yuuvis® API and developer libraries. This demo version offers you the opportunity to test our components. To assist you in implementing a client according to your own requirements and needs, we provide the source code of the reference client for further development.
Our user documentation is an example documentation without any claim to completeness. You can set up a hyperlink in the "About yuuvis®" area to link to your own documentation of your custom solution.
The new features of the developer libraries are implemented in yuuvis® Momentum client as reference implementation as well.
- BPM Integration
- Management of Configuration Files
Note: This client application does not offer the download and import of configuration files via the settings menu per default anymore. Please use the Web-API Gateway configuration endpoints instead. Alternatively, you can work with the previous functionality of the settings menu via the URL https://<host>/client/settings?config=true
.
USERSERVICE
The purpose of the USERSERVICE is management of user-specific settings and contents whereas identity management should be organized by the TENANT-MANAGEMENT service. Thus, following endpoints of the USERSERVICE's API are discontinued and will be not be available in version 2022 Spring:
Their functionality will be provided by the new endpoints of Tenant Management API.
>> idm-controller Endpoints (TENANT-MANAGEMENT)
Release Candidates
The Release Candidates (Alpha) provide the preliminary results expected to be ready at the corresponding date.
Alpha1 - 25 AUG 2021
Core
Batch DELETE of Objects
- Multiple objects can be deleted with one request. (internal: OKTO-4763)
Client Services & Client Development
Web-API Gateway
Catalog Values Provided by Custom Microservice
- The values for catalogs can be retrieved from a custom microservice specified by URL. (internal: )
Business Process Management (BPM)
BPM Engine
Retrieval of Finished Processes
- When retrieving the processes of a user, the response includes both running and completed processes (previously, only running). The endpoint returns all processes by default and offers a filter to select only completed, or only running processes. (internal: ERA-8122)
Alpha2 - 08 SEP 2021
Core
Additional Separator in tenant-specific Type IDs
- It is possible to use the
-
character as an additional separator within prefixes for tenant-specific IDs. (internal: OKTO-4771)
Export of all Tenant Data
- All data stored within a tenant can be exported. (internal: OKTO-4968)
Business Process Management (BPM)
BPM Engine
Task Delegation
- The assignee of a task can delegate it to another user. (internal: ERA-8173)
- A delegated task can be resolved. (internal: ERA-8174)
Client Services & Client Development
Client Libraries
BPM Integration
- The Inbox view that allows to confirm a task, to display the process history and the list of files that are associated with the process. (internal: COOL-15364)
- Changed process metadata can be saved via the Task aspect area. (internal: COOL-15366)
- Attachments can be added or removed within the inbox. (internal: COOL-15367)
Alpha3 - 22 SEP 2021
The two weeks from 09 to 22 SEP 2021 will be our innovation sprint that allows us to try out new ideas and explore new ways for the future. We do not plan to deliver new features in this sprint, but we will fix the appearing bugs if possible.
Alpha4 - 06 OCT 2021
Business Process Management (BPM)
BPM Engine
Candidate Users and Groups
- Candidate user can directly complete a task without claiming it first (internal: ERA-8242)
- A delegated task can be identified as such (internal: ERA-8176)
Client Services & Client Development
Client Libraries
BPM Integration
- Processes can be started via start forms. (internal: BUD-239)
yuuvis® client as reference implementation
- Candidate users are allowed to claim, edit and give back the corresponding tasks. (internal: BUD-174)
- Start forms are provided for starting processes via plug-in actions. (internal: BUD-239)
- Task forms are supporting multi-value fields. (internal: BUD-246)
Tenant Management
KEYCLOAK-PROXY Service
Scaling of the Identity Provider (KDDA)
- The KEYCLOAK-PROXY service provides load balancing for Keycloak instances. (internal: ERA-8250)
- The KEYCLOAK-PROXY service distributes realms over configured Keycloak instances. (internal: ERA-8257)
- Error handling is offered if Keycloak instances are misconfigured. (internal: ERA-8253)
- The KEYCLOAK-PROXY service offers a simple UI with overview of Keycloak instances. (internal: ERA-8252)
Alpha5 - 20 OCT 2021
Core
Object Types available for Object Creation
- A new endpoint retrieves the object types that are available for object creation for the currently logged-in user. (internal: OKTO-4850)
Rendition Repository
- A repository manages the renditions assigned to objects. (internal: OKTO-4969)
Correction of Invalid Objects via Webhook
- The webhook dms.request.objects.upsert.database-before is triggered before validation errors are thrown. (internal: OKTO-4998)
Client Services & Client Development
Client Libraries
yuuvis® client as reference implementation
- Users can delegate tasks to another user who needs to take action on that task. (internal: BUD-264)
- Task forms can be dynamically configured to display only fields whose values have to be updated. (internal: BUD-280)
- In addition to the conventional fields with their values, general task messages can be dynamically configured and will be displayed above task forms. (internal: BUD-282)
- It is possible to change the order of form table rows by drag and drop. (internal: BUD-327, BUD-388)
- The IDs of user and reference columns in a form table a resolved. Instead a title is displayed like for regular fields. (internal: BUD-67)
- For longer field descriptions, the full descriptions can be displayed by clicking the first part of the description. (internal: BUD-265)
- The client core library supports OpenID Connect for log-in via the OAuth2 protocol. The Viewer Service can be used within an OAuth2 environment as well. (internal: COOL-15159).
- The Viewer Service can be extended by custom languages. (internal: BUD-383)
Final - 12 NOV 2021
Core
CATALOG Service
- A new CATALOG service will be offered that allows for the integration of catalogs in yuuvis® Momentum. (internal: OKTO-4837)
Tenant Management
- The Tenant Management API deletes all tenant configurations like schema, roleset, forms, localizations, icons and catalogs when deleting a tenant. (internal: BUD-364)
Postponed Features
These initially planned features could not be realized. Some of them are planned for the next version 2022 Spring.
Core
Deletion of a Tenant (KDDA)
A tenant including all saved objects can be deleted from the yuuvis® Momentum system.
Tenant Management
Tenant Management API
Support of other Identity Providers than Keycloak
The Tenant Management API can be combined with other identity providers than Keycloak.
Client Services & Client Development
Integration of Office 365 (KDDA)
The OFFICE-FOR-THE-WEB services provide the possibility to open, edit and update binary content files of Microsoft Office file types that are assigned to objects. The files are uploaded to Microsoft's O365 cloud for editing. The modified file is saved as a new version in yuuvis® Momentum. The integration in client applications is managed via the VIEWER Service.
VIEWER Service
Support of O365 Integration Dashlet
The VIEWER service is responsible for the Office 365 integration in client applications. A dashlet is provided that enables the VIEWER service to connect to the OFFICE-FOR-THE-WEB services.
Developer Libraries
Office 365 Integration via Plug-ins
The integration of Office 365 in client applications is provided by the VIEWER service in combination with a dashlet as described above. Furthermore, a plug-in for our developer libraries offers the possibility to change into the edit mode via the object action menu.
yuuvis® architect
Schema Modeling
Administrators are supported to model schemata via the graphical user interface of yuuvis® architect.
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".