Changelog 10.0

Key

Subject

Description

Key

Subject

Description

ERA-9009

Users can be excluded from participating in a process activity

As a modeler of a workflow model, I would like to be able to configure which users, groups and roles are excluded from participation in an activity, in order to implement business processes that have such requirements (for instance, processes where it has to be ensured that two different persons have to perform a certain action).

Acceptance criteria:

  • BPM-Scripting allows management (creating, changing) of a list of users that are excluded from participating in an activity

  • The exclude list may contain users, groups and roles

  • The exclude list applies only to the activity for which it was defined

  • Users, groups and roles that are in exclude-list cannot participate in the activity, even if

    • they are in the list of performers of the activity

    • they are substitutes of performers

ERA-9010

Exclusions-configuration of a process activity is visible in REST-API

As an API user, I would like to know who was excluded from participation in an activity, in order to know why they did not receive a task resulting from that activity.

Acceptance criteria:

  • The existing endpoint /bpm/process/{processId}/activity/{activityId}/inboxitem is extended to also contain the users, groups and roles that were excluded from participation in a workitem

    • The endpoint already contains "perfomer"

    • This part of the response is extended to "exclusions" (resulting in performer.exclusions, same structure as in the scripting API)

    • performer and performer.exclusions contain the organisation members as configured (i.e., the groups and roles are not expanded)

ERA-9227

Remove deprecated script API method "createEntry" in "History" class

BPM-Scripting API call "$.history.createEntry" was deprecated by a new method "$.history.addEntry".
The new method is available since version 8 LTS. Thus, the deprecated method may be removed with version 10.0.

ERA-9301

Read-only fields in scripting-API behave as such

As a modeler that writes scripts for process models, I would like to get clearer feedback from scripting-API which properties can be changed, and which are read-only, without having to check documentation for each field. Currently, the changes of all properties are possible in script, but the changes of the read-only properties are not persisted.

Acceptance criteria:

  • All read-only properties in BPM Scripting-API are covered with the change

  • If script attempts to write data in a read-only field, an exception is thrown

ERA-9503

HttpRequest object has a timeout property

As a model developer, I would like to set the timeout for an HTTP call by setting the timeout property of the HttpRequest object to the appropriate value.

Acceptance criteria:

  • Timeout (in miliseconds) can be set on a HttpRequest 

  • If timeout is not set, the default value from server settings is used (com.os.ecm.messaging.LocalSidecarPreferences.SocketTimeout)

  • The timeout of a HttpRequest can be set to larger value than the timeout of the server, but then the timeout of the server will be trigger first

ERA-9530

New objecttype right 'Share' provides control over who can share documents in a system

As a project modeler, I would like to control who can share an object type, in order to have better control over document access in a system. Currently, sharing right is bound to edit-right, thus everyone who can edit a document can also share it with other users.

Acceptance criteria:

  • A new object type right "share" is provided in role management

  • It is possible to set clauses on the right 

  • The existing setting on object type "sharing allowed" remains (this decides if sharing of type is allowed at all - if sharing of objecttype is not allowed, it does not matter what rights/roles define)

  • Core service allows/forbids document sharing based on the object type and rights settings

ERA-9576

Additional icons are available for document and folder types

As a modeler, I would like to have more icons available for object types in a yuuvis RAD system, in order that users can better distinguish between them and associate them more easily with the designed purpose of an object type.

Acceptance criteria:

ERA-9583

It can be seen in which processes an object is being used

As a user, I want to see whether an object is used in an active process, in order to understand better the state of the object and processes relevant for it. 

Acceptance criteria:

  • The existing endpoint in bpm-service for querying of processes is extended to accept objectId as an optional query parameter 

    • The query can be combined with existing filtering options (such as running, finished, suspended, etc. )

    • A process administrator can query and filter all processes 

    • A user can query and filter only his/her processes

    • The endpoint returns the same process metadata as before

  • The query works as follows :

    • Only direct references are shown. For instance

      • if a folder F is referenced by a process P, and processes are queried whether F is used in a process, then the endpoint will return P.

      • but if a document D from a folder F is used in a process P, and processes are queried whether D is used in a process, then the endpoint will not return P.

ERA-9633

Names of deadlines and delays can be localized

As a workflow user, I would like to have better understanding of process history when the process contains deadlines and delays. Currently, the history entries are technical and not translated into my language.

Acceptance criteria:

  • Name of a delay/deadline can be localized in schema

ERA-9671

Localized names of deadlines and delays are provided in task history

As a workflow user, I would like to have better understanding of process history when the process contains deadlines and delays. Currently, the history entries are technical and not translated into my language.

Acceptance criteria:

  • Task-history endpoint is extended to provide localized values for deadlines and delays

ERA-9694

Username of users that cannot be deleted is changed to unique value

As a system administrator, I would like to be able to reuse usernames that are no longer in active use, in order to be able to synchronize system with external identity providers.

Currently, if a user has made changes on a document, it cannot be completely removed from a yuuvis RAD system (to preserve history of changes on objects). So, if a user X is active in system, leaves company and is deleted from company's identity provider, the username X becomes available in the identity provider system. Administrator can assign it to a new user, but then the synchronization with yuuvis RAD fails, since username is occupied and cannot be reused.

Acceptance criteria:

  • If a user cannot be deleted from a yuuvis RAD system, its username is changed to a unique value: username_ID

  • This applies both to users deleted via LDAP-Sync operation and those deleted in management studio

ERA-9700

The form editor shows technical names of fields and datafields

As a system modeler, I would like to see technical names of fields in form editor instead of neutral names, in order to be able to track fields over multiple user interface views more easily. For instance, in object-field overview, the technical names are shown. 

Acceptance criteria:

  • Technical names are shown in form editor instead of neutral names, both for object- and process-forms

ERA-9742

Users that are excluded from participating in a process activity are listed in API

As an API user, I would like to know who was excluded from participation in an activity, in order to know why they did not receive a task resulting from that activity.

Acceptance criteria:

  • Endpoint /bpm/process/processId/activity/activityId/performer is adjusted so that response also contains

    • The configured includes and excludes

    • The current/last editor

    • The list of candidates (potential users that are seeing the activity in their inbox and are able to take over the item) with a visibility reason (such as "belongs to a role", or "substitute of")

ERA-9772

Users that are excluded from participating in a process activity are shown in management studio

As an administrator, I would like to know who was excluded from participation in an activity, in order to know why they did not receive a task resulting from that activity.

Acceptance criteria:

  • management studio shows the initial configuration of a workitem (list of configured participants and list of excluded participants)

  • management studio shows the effective configuration of a workitem, after excluded participants have been removed from participating in the workitem

ERA-9785

Organization-Objects can be searched by Object-ID

As a workflow developer, I would like to find an existing organization object by its ID, in order to use it in my scripts (for instance, to set it as a performer).

Acceptance criteria

  • The method $.org.getObjectById() allows search of organization structure

  • It accepts a (string) ID and returns an organization object with that ID

ERA-9796

Endpoint to set performers and exclusions

As an API user, I would like to have consistent use of HTTP methods, according to standards established by RESTful API, in order to build applications more easily. In particular, the existing endpoint to manipulate performers of a workitem uses PUT both to update an existing performer configuration (correct) and to replace the exisiting performer configuration (here, a POST would be better). Also, the PUT and POST methods should be extended to allow setting of all performer exclusion parameters that are available elsewhere in the API.

Acceptance criteria:

  • The use of HTTP methods on the endpoint is corrected

    • PUT adds organisation objects to performers and/or exclusions

    • POST replaces the existing performer and exclusions configuration with a new one

  • The endpoints allow changing both of performers and of exclusions

    • Change the request body from an array of performers, to a structure that contains both performers and exclusions

ERA-9800

Project definition with more object types than allowed cannot be deployed

As an administrator, I would like to be informed that I am attempting to deploy a project definition with more object types than allowed by licensing module, and that this is not allowed by the system.

Acceptance criteria:

  • An error is shown in validation if the number of object types exceeds the number allowed by the licensing module in core-service

 

ERA-9803

BPM scripting API has "Datafield" class

Acceptance criteria:

  • "Datafield" has the same semantics as "Variables" except for lists

    • It removes "value" semantics from lists

    • This is also in line with expected behavior in javascript 

  • One script can use either "Variable" or "Datafield" class but not both (other scripts in the same process model can use any of them)

  • "Datafield" class is documented in internal Scripting-API documentation

ERA-9822

Performance of displaying of an object-field-configuration is improved

As a modeler, I would like that the view that contains field properties is loaded fast, in order to be able to switch views faster and consequently work faster. Currently, if an object type contains lots of fields, it takes several seconds to load the view.

Acceptance criteria:

  • Performance of displaying of an object-field-configuration is improved

ERA-9927

Script engine runs in strict mode

As a script developer, I would like that script engine runs in the strict mode in order to eliminate silent errors in scripts.

Acceptance criteria:

  • JavaScript engine in core-service runs in strict mode

OKTO-5953

The setup of the rendition-plus is asking whether to activate the use of the OCR-Service for the text extraction

After the update of libraries to avoid security check issues:

As an administrator, I will be able to activate the use of the OCR-Service for text extraction during the setup so that I do not have to configure it afterward.

Acceptance criteria:

  • The setup is asking whether to activate the use of OCR-Service

  • If activated the parameter ocr-engine=finereader is set in the file config.properties in the folder <service-manager path?>\webapps\osrenditioncache\WEB-INF\classes\config\ 

    • better: ocr-engine=enabled

    • old setting 'finereader' is migrated to 'enabled'

    • removed are the out-commented lines with the unused values 'extern' and 'cuneiform'

 

TUK-3125

In the search dialog, the order of the object type groups can be changed

As a user, I want to be supported by a feature that prevents me every time scrolling down the search dialog to those object type groups that I can't see so that I can use their object types.

Acceptance criteria:

  • When hovering over an object ype group a backward and forward symbol is offered in the header.

  • In the first group only the backward symbol and in the last group only the forward symbol is offered.

  • A click on the backward symbol moves the group one position backward and a click on the forward one position forward.

  • The new order of the groups is remembered locally

  • If changes in the schema cause deviation with the remembered groups the locally saved setting is removed.

  • If the language is changed the locally saved setting is not read but not removed. If the language is set back the remembered setting is used again.

TUK-3243

The action 'Share' is only offered if the user has the new object permission 'share' but no more for the object permission 'edit'. (A-Team)

As a user with the object permission 'share', I want to get the object action 'Share' so that I can share the document with other users if necessary.

Acceptance criteria:

  • client: The action 'Share' is only offered if the user has the new object permission 'share' but no more for the object permission 'edit'.

  • management-studio Organization view: The table of permissions of a user shows the new column 'SHARE'.

TUK-3374

It is possible to open a document file of the Microsoft Office format for viewing and editing via the O365 services

As a user, I want to be able to start the editing of a Microsoft Office based document file on the O365 platform so that I can work with other users on it.

Acceptance criteria:

  • A Microsoft Office document of a focused object can be viewed by the O365 dashlet.

  • In this case, the user has edit permission on this object an 'Edit'/'Bearbeiten' button is offered in the O365 dashlet. After pushing it a new browser tab is opened and the file is offered in the O365 user interface for editing.

  • The object is locked during editing.

  • If the O365 tab in the browser with the edited document file is closed and it was the last user in that edit session the client fetches this event and reloads the object details.

  • The history entry for update content is localized on client-side.

  • In the prepare view the preview is supported as well, no editing is possible here.

TUK-3415

In the object details header an icon is indicating whether this object is or was part of an process

As a user, I want to see an indication of a focused object whether it is part of a process file in an active process so that I do not have to investigate with more effort.

Acceptance criteria:

  • The endpoint DmsService.getItem() – /dms/id response contains the information about the affected processes if the parameter processcount=true is added to the request URL:

} ... "processcount": 2 }
  • If the processcount is gt 0, an icon is offered that indicates the situation.

    • The standard icon for processes in the inbox is offered similarly to the follow-up one.

    • When hovering over the tooltip the  BPMService GET endpoint ../processes is requested for the object and the tooltip shows information about the amount of once-started processes, and if the user does have access to the processes the model names are shown followed by the localized starttime and if given the endtime as well.

      • Example for requesting the process information for the given object:

        http://10.10.3.112:7321/api/bpm/processes?objectid=5DFF33226F254C57B961D4735B093932&page=0&size=20

 

TUK-3496

The Office 365 services are part of the setup

As an administrator, I want to be able to use the Office 365 services after the installation so that the users can preview Office files rendered by Microsoft Office sources, and to edit them on the Microsoft Office platform if the users possess an account for it.

Acceptance criteria:

  • After the installation - new and update - the Office 365 services are installed but they will not start until the setting for its sessions is changed from '0' to '1'.

  • In the configuration file gateway-prod.yml (or custom named) the following settings are extended during the new installation, but in case of an update this has to be added manually:

    routing.endpoints: ...   - name: 'dashlet365'     url: 'http://client/dashlet365'   - name: 'office365'     url: 'http://office365'
  • The Dashlet-Service is available as web resource and is therefore controlled by the client-service as well and not seen in the list of services in the service admin UI.

  • The O365-Service is shown with the label OFFICE365 in the service admin UI.

    • Default port is 7880

    • A Swagger UI is not offered

    • The following parameters have to be configured in the configuration file office365-prod.yml:

TUK-3622

A MS Office file including its versions can be previewed in the versions state including the compare mode

As a user, I want the versions view to support me with a preview of two versions containing document files of the format Microsoft Office that is based on the Microsoft O365 integration.

Acceptance criteria:

  • The version view shows a preview of older versions. No editing of older versions is offered, maybe better no editing in general.

TUK-3627

The three labels for the list in the 'Hit list' widget can be configured

As a user, I want to be able to determine the object properties which should be shown as object title and description so that I can see this important information.

Acceptance criteria:

  • In the configuration dialog of the list widget the following form fields are added:

    • 'First label'/'Erste Beschriftung' with 'created' as the default for the selectable object properties as they are listed for 'Sorted by'

      • if nothing is selected the default should still be 'created'

    • 'Second label'/'Zweite Beschriftung' with 'Title' as the default

      • if nothing is selected the default should still be 'Title'

    • 'Third label'/'Dritte Beschriftung' with 'Description' as the default

      • if nothing is selected the default should still be 'Description'

  • If the selected property is

    • of type organization like 'Creator' or 'Editor' the title of the user is shown with 'lastname, firstname' instead of the login name.

    • of type date, datetime, or number its localized value is shown

    • of type boolean, the corresponding checkbox for true and false are shown, and for undefined noch checkbox is shown.

  • The default property for sorting is 'Edited' and the sorting is descanding.

  • After the change of the selection, the corresponding values are shown in the list for the objects

TUK-3641

The client supports the use of the O365 Dashlet without manual configuration and handles events well

As an administrator, I don't want to configure the client to use the O365 Dashlet if it is up and running so that I don't have to care about it.

Acceptance criteria:

  • The client checks when the configured required service (part of the "viewers" section of the delivered main.json: "requiredservice" : "dashlet365") is running and uses the necessary viewer configuration directly.

    • It is possible to overwrite the internal configuration for the mimetypes via extend.json (see ticket section 'Ergänzung').

  • A used context-path is handled well.

  • The linked documents are working as well.

  • To be documented: Microsoft Office files that are email attachments are always shown via PDF rendition but not via the Microsoft O365 capability.

TUK-3662

When the core-service the first time starts up a trial license based on a just generated GUID is created and activated

As the system responsible, I want the core-service when starting up to prepare an initial license file so that the system can be used as a trial system with a limited number of users so that the system directly can be used without contacting OS. 

Acceptance criteria:

  • The core-service is extended with a service for the license management that is described below:

  • This action takes place only if the database is empty and no license is saved.

  • The created license file

    • is based on a GUID that is generated while starting up.

      • the clusterID of the system is taken into account as well. 

    • the following parameters are set

      • the activation date is that when generating the file

      • the expiration is that when generating the file plus 3 months

      • the number of named users 1 is that for the initial root user

      • the number of concurrent users is 5

    • the file is not encrypted but a signature is included that is generated with the public key and that includes the content of the license file.

TUK-3664

The license management is offered by the core-service

As the system responsible, I want the core-service to offer a license service that controls the number of named and concurrent licenses as well as an expiration date so that the system can only be used as contracted.

As a programmer, I want to be able to get the parameters of the activated license file, download the license file, and upload and activate a new license file via REST-WS endpoints.

Acceptance:

  • an internal license service is available that

    • save a license file in the database including validation

    • creates an initial license if no license is activated yet with the following parameters

      • type: PROVISIONAL

      • expirationDate is set plus 1 month

      • MaxUserNamed: 1 (assigned to root)

      • MaxUserConcurrent: 5 

      • MaxTypes: 10  (object-types)

      • StorageEncryption:  off

    • prevents server startup if a license is technically invalid caused by manipulation, and writes a log entry

    • if the expirationDate is reached and the core-service starts up only the root user can log in, and a maximum number of 5 object types is set

  • A new LicenseService offers REST-WS endpoints for showing the license conditions, downloading the active license file, and uploading a new one.

TUK-3665

A named user license can be assigned to a user via management studio

As an administrator, I will be able to assign and remove a named license to a specific user so that I can follow the requirements of my organization.

Acceptance criteria:

  • In the actions menu of a user that is not root the action 'Assign named license/Named-Lizenz zuordnen' or 'Remove named license/Named-Lizenz entfernen' is offered. 

    • The action dialog should have the following question: 'Do you want to assign a named license to this user?/Wollen Sie eine Named-Lizenz diesem Benutzer zuordnen?' or 'Do you want to remove the named license of this user?/Wollen Sie die Named-Lizenz von diesem Benutzer entfernen?'

    • New endpoints for assigning and removing a named license are available.

      • An error is reported if the named license for the root user is tried to remove.

    • If no more named license is available a notification is given:  'It is not possible to assign a named license because the available ones are assigned.'/'Es ist nicht möglich, eine Named-Lizenz zuzuordnen, da die verfügbaren zugeordnet sind.'

  • In the header of the user object, a symbol indicates if a license is assigned to the user.

    • This info is available in the user object.

    • A tooltip 'A named license is assigned'/'Eine Named-Lizenz wurde zugeordnet'

  • In the list of organization objects, a symbol indicates if a license is assigned to the user.

  • After the installation and update, the user root has a named license assigned.

The REST-WS interface offers a view that shows the license information, download the saved license file, and upload a new one

As an administrator, I will be able to get information about the activated license, download this license file to send it to my sales contact and upload and activate a new license file.

Acceptance critereria:

  • In the Monitoring view of the REST-WS interface, the information about the activated license can be seen.

  • The activated license file can be downloaded from the Monitoring view.

  • A new license file can be uploaded from the Monitoring view.

    • After positive validation, the new license is activated

    • If the validation is negative, a specific notification is given. Possible negative cases:

      • The format is not correct, the key-value pairs are incorrect, e.g. wrong key or wrong possible value.

      • The content has been changed so that the contained signature does not match.

      • It is not allowed to activate a file with the license type PROVISIONAL.

TUK-3668

The client informs a concurrent user if no login is possible because no further concurrent license is available

As a user, I want to be informed about the situation that no more concurrent licenses are available if I cannot log in this case.

Acceptance criteria:

  • In this case, the client tells the user:

    • EN: "The login was not possible because no concurrent license is available. Please, wait until another user has logged out."

    • DE: "Die Anmeldung war nicht möglich, da keine weitere Concurrent-Lizenz verfügbar ist. Bitte warten Sie, bis ein anderer Benutzer sich abgemeldet hat."

  • The support of SSO is not part of this story

TUK-3670

The gateway login page informs a concurrent user if no login is possible because no further license is available

As an administrator, who logs into the management-studio or the REST-WS interface I want to be informed about the situation that no more concurrent licenses are available if I cannot log in in this case.

Acceptance criteria:

  • Besides the error code 401 that is returned if the user name or password is not correct, the gateway gives the error code 429 to the client if no further concurrent license is available. The gateway login page tells the user:

    • EN: "The login was not possible because no concurrent license is available. Please, wait until another user has logged out."

    • DE: "Die Anmeldung war nicht möglich, da keine weitere Concurrent-Lizenz verfügbar ist. Bitte warten Sie, bis ein anderer Benutzer sich abgemeldet hat.

TUK-3672

After the expiration date, the core-service allows to log in but grants no permission to create and edit objects to any user

As the system responsible, I want after the expiration date has been reached and a given grant time not the core-service is reducing the feature set so that the users are no more able to create objects or to edit existing ones for another three days.

Acceptance criteria:

  • At this time the permissions the create and edit objects are not granted to all users.

  • These actions are not offered to users.

  • After these three days, only the user root is allowed to log in.

TUK-3695

If the 'Attribute for aggregation' in a chart widget is of type decimal or integer the configuration offers to set an 'Interval' and 'Starting point' as well

As a user, I want to be able to specify the interval and starting point for my chart with a number attribute for aggregation so that I can get a meaningful chart.

Acceptance criteria:

TUK-3710

The search API supports metrics for number attributes in a sub-aggregation

As a programmer, I want to be able to support the user for this:

As a user, I want to be able to get for a sub-aggregation the metrics like min, max, sum, avg, and median so that I can see the turnover of the most important 3 customers for the last month or year.

Acceptance criteria:

  • The search API is extended in this way:

The response is:

TUK-3809

The Service-Manager setup allows to configure the OCR-Service to start up with Tesseract OCR, but Abbyy Finereader can be configured as before

As the system-responsible, I want to offer an alternative OCR application for text extraction that is much cheaper than ABBY Finereader so that we can compete better in the market.

Acceptance criteria:

  • Tesseract ORC 5 is integrated into the OCR-Service and has not to be installed separately like Finereader. 

  • It is possible to configure by profile (service-watcher-sw.yml) whether Tesseract or Finereader should be used.

    • New installation: The service-manager setup is extended with a dialog 'Configuration for Tesseract OCR' where the use of Tesseract OCR can be activated. If activated the OCR-Service will  startup with one session and with Tesseract as configured in the service-watcher.yml. To change to Finereader follow the configuration as before, but remove tesseract from the profile:

  • The prepared default languages are those supported by the Intrafind Linguistic License for Elasticsearch.
    During the installation, the language for Tesseract can be configured:

    • image-20240425-090654.png

  • The configuration of the languages to be used by Tasseract can be done in the ocr–prod.yml file, for example:

TUK-3911

Line charts can be selected in the chart widget for 'Property of aggregation' of type date and datetime

Try this on an extra branch:

As a user, I want to be able to select a line chart type in case of an aggregation for date properties if this presents the data better than the other chart types.

Acceptance criteria:

  • In the list of chart types the item  'Line - straight'/'Linie - Gerade', 'Line - curve'/'Linie - Kurve' is offered.

  • If a line chart is selected only properties of type date and datetime are offered for the aggregation.

  • After the selection of all necessary parameters, in the preview area, a line chart presents the corresponding data.

  • In this case, only presenting one dataset the legend is not shown.

  • The value 'Default' is not offered in the list of histogram types and 'Months' is preselected.

TUK-3934

The widget 'Hit list or hit count' is split into the two widgets 'Hit list' and 'Object count'

As a user, I want to place a separate object count widget that looks like the existing ones for the inbox and in-tray.

Acceptance criteria:

  • The existing widget 'Hit list or hit count' is renamed to 'Hit list' and the checkbox for only counting is removed.

  • A new 'Object count'/Objektanzahl' widget is offered and can be configured with the 'Saved search'

  • The look of this widget is similar to that of the inbox widget.

    • If more than one object type is affected the standard icon for a document is shown otherwise the specific object type icon.

    • If the count is '0' the widget is not shown similar to the inbox and in-try widget.

  • A click on that widget opens the hit list with these objects.

 

TUK-4029

The 'Object count' widget is extended with three thresholds: green for OK, yellow as warning, red for critical

As a user, I want to see a color on my specific 'Object count' widget so that it indicates to me that everything is OK (Green), that I have to keep an eye on it (Yellow), or that I have to do something (Red).

Acceptance criteria:

  • In the widget configuration, these three thresholds/Schwellenwerte can be set

  • and a checkbox to toggle the sequence of the thresholds

    • depending on the sequence the number of the widget is shown in the color Green, Yellow, or Red

  • If no value is entered for the success threshold and the count matches no color is shown

 

TUK-4030

The client shows all the time a notification if a provisional or test license is used or the expiration time has been reached

As the system responsible, I want the users of a PROVISIONAL and TEST system to be informed about this type of license/system and when it will expire so that they can contact their administrator to renew the license.

Additionally, I want users of a PRODUCTION system to be informed about reaching the expiration date within the last month so that they can contact their administrator to renew the license.

Acceptance criteria:

  • There is a REST WS endpoint that informs about the type of license and a given expiration date.

  • If a configured expiration date is reached within a month information is shown in the appbar.

    • EN: 'Your <type of license> license will expire on <localized date>.'

    • DE: 'Ihre <type of license> läuft am <localized date> ab.'

  • During the grace mode:

    • EN: 'Your license has been exceeded: You can't create new objects or edit existing ones.'

    • DE: 'Ihre Lizenz ist abgelaufen. Sie können keine neuen Objekte erstellen oder vorhandene ändern.'

    • If a user tries to create a new object or to save a changed object an error message is shown with the same information.

TUK-4044

After saving the metadata the corresponding hit list row is updated

As a user, I want to be supported by an update of the hit list row after the saving of the changed metadata of the opened object so that I am not irritated while seeing different data.

Acceptance criteria:

  • After saving the metadata the corresponding hit list row is updated.

TUK-4092

The Sessions monitoring view of the REST-WS interface shows information about the active concurrent users

As an administrator, I want to be supported by information about active concurrent users so that I can request more licenses if needed.

Acceptance criteria:

  • The Session monitoring view of the REST-WS interface shows

    • whether a user uses a concurrent license

    • the number of active concurrent users of licensed concurrent users / of unlimited

TUK-4098

It is possible to get a list of users with an assigned named license via a REST-WS ../organization/query endpoint

As a programmer, I will be able to request the core-service for a list of users with an assigned named license so that I can offer this list in a user interface with the action to remove the named license.

As an administrator, I will be able to query for users with an assigned license via the REST-WS interface so that I get an overview.

Acceptance criteria:

  • The REST-WS GET ../organization/query endpoint is extended with a parameter 'namedonly' that is set to false by default. If this parameter is set to true or false the expected list of users is returned.

TUK-4105

When the core-service starts a new license file can be read, validated and activated

As an administrator who is preparing an update to version 10, I will be able to organize a PRODUCTION license file before the update so that it can be activated after the installation so that the downtime remains short.

Acceptance criteria:

  • Before the update, the PRODUCTION license file can be ordered from OS by sending an email with the following information:

    • Customer name

    • Type of license (PRODUCTION, TEST)

    • Cluster-ID (can be fetched from the REST-WS System information view )

    • Encryption: should this feature be activated

  • When the server starts up the existence of the license file in the folder <installation path>/configuration is checked.

    • If no file exists and no license is active a trial license is generated and activated.

    • The system GUID is validated. If this does not match an error is reported.

    • If a license file exists it is validated. If the validation is OK the file is activated regardless of whether an activated license file exists or not.

    • A log entry about the license activation is written into the log file but not into the security log because this is not possible at this time.

    • After the activation, the license file is moved to the folder folder <installation path>/backups. The file name is extended with a timestamp.

TUK-4108

It is possible to get a report about the revised logins for concurrent users who could not log in because no more licenses were available

As an administrator, I will be able to get a report about the revised logins of a concurrent user could not log in because no more license for available so that I can decide to order more concurrent licenses.

Acceptance criteria:

  • A security log entry is written if a concurrent user could not log in because no more license for available.

  • Get a draft report via 
    .../rest-ws/service/monitor/seclog?event=ACCOUNT_USER_LOGIN_REJECTED_CONCURRENT_USER&offset=0&limit=-1

TUK-4159

In the 'Object count' widget, it can be determined whether the number should be shown although it is 0

As a user, I want to be able to determine for an 'Object count' widget whether the number should be shown although it is 0 if I need to see it as well.

Acceptance criteria:

  • In the widget configuration, a checkbox 'Don't show the number if it is zero'/'Nummer nicht zeigen, wenn sie Null ist' is offered. The box is checked by default.

  • If unchecked the number is always shown on the dashboard.

  • If the number is 0

    • it is not offered to open the result list

    • the default icon is shown as long as there is a possibility to get the icon by type from the backend

TUK-4229

The client is upgraded to Angular 17 and ag-grid to 31

As the system responsible, I want the client to be upgraded to Angular 17 for the major release 10.0 to keep the application future-proof.

Acceptance criteria:

  • Done: The component library 2.0.x is publicly available for Angular 17

    • The client is referencing the library version

  • To be checked: Does the widget library need to be prepared for Angular 17 or can the old one still be used.

  • The client is upgraded to Angular 17.

    • The 3rd party library ag-grid is updated from version 22 to 31 and necessary refactoring are done.

    • Other libraries are updated as well if necessary.

  • The component version starts with 11.0.0

TUK-4256

It is possible to compare the parameters of a new license file with the current ones before activating it in the REST-WS interface

As an administrator, I will be supported to stage a newly uploaded license file with a comparison between the current and the new license parameters so that I can better decide to activate it.

Acceptance criteria:

  • After uploading a new license file via the REST-WS license monitor page a click on 'Stage license' button reloads the view and show a comparison between the current license parameters and the new ones. The differences are marked in yellow.

  • After a click on the 'Activate staged license', the new license is in place.

  • After a click on the 'Dismiss staged license', the old view is reloaded again.

TUK-4259

The operation 'Notify system events' supports to request the License-Management-Service whether a new license file is available for the system

As an administrator, I want to be able to configure an operation that checks in the given time interval whether a new license is available and if so loading it for staging.

Acceptance criteria:

  • In the System view and in the section for the core-service, it is possible to configure the connection to the License-Management-Service:

  • The license key is empty as default. The key has to be requested via email.

  • In the management-studio, there is a new operation type 'Notify system evens'/'Über Systemereignisse benachrichtigen' in the group 'DMS operations'. When creating such an operation it is possible

    • to determine the behavior for license activation with

      • 'No check'/'Keine Prüfung' -> Nothing happens

      • Default: 'Check and staging'/'Prüfung und Bereitstellung' -> calls the REST-WS endpoint which requests the License-Management-Service whether a new license file is available for the system, and loads a new license if available for staging. An email is sent for this event.

      • and 'Check and automatic activation'/Prüfung und automatische Aktivierung' -> same but activates the license automatically. An email is sent for this event.

    • to determine whether to inform if a license expires -> Emails are sent in the given sequence within the last 30 days until expiration.

  • An admin email is sent

    • with a link 'Manage license' that opens the REST-WS Monitor view with the license management features

    • if a new license file is loaded: "A new license has been staged and can be activated."

    • if the license expires within a month: "Your license will expire in X days."

    • if the license has expired and the grace time starts: "Your license has expired. Until <date>, users can search, read, and download objects, but can't create new or edit existing ones anymore until a new license is activated."

    • if the grace time has exceeded: "Your license has expired. Only the root user can log in and activate a new license."

TUK-4268

In the license view of the REST-WS interface it is possible to initiate a check for a new license against the License-Management-Service and to stage it

As an administrator, I will be able to manually check whether a new license is available and stage it.

As an OS license manager, I will be able

  • to create and publish a new license to the License-Management-Service so that the corresponding system can fetch it.

  • to create a new license key that can be used to fetch an initial license based on a configuration for this key.

Acceptance criteria:

  • A REST-WS endpoint ../license/refresh is available that requests the License-Management-Service for checking and fetching the file.

  • In the REST-interface a button is offered 'Check for new license'

    • If a new license is available it gets staged.

  • In the management-studio- it can be configured

    • how to connect to the License-Service including a license key 

    • whether a new license should be activated automatically (this is for the operation that will be implemented to check and activate the license and to send the metrics)

    • whether metrics data should be sent.

  • It is possible to publish a new license with the CLI tool

    • This new license is published on the License-Management-Service.

  • CLI is capable of creating a new license key.

TUK-4284

The widget 'Recently edited and created objects' can be configured

As a user, I want to be able to see a preview of the widget 'Recently ...' so that I can decide whether to use it or not and that I can decide whether to see only recently edited or created objects.

Acceptance criteria:

  • After selecting the widget, the configuration and preview view is opened

  • In the configuration, checkboxes for each list are offered that allow to show them or not. The default is that both are checked. One must be checked.
    EN: 'Show recently edited objects' / 'Show recently created objects'
    DE: 'Zuletzt bearbeitete Objekte anzeigen' / 'Zuletzt erstellte Objekte anzeigen'

  • It is possible to determine the 'Number of objects'/'Anzahl objekte' to be listed. Default is 10, max 100, min 3

  • It is possible to 'Revert sorting'/'Sortierung umgekehren'. 

  • In this case of an update with existing widgets, both checkboxes are checked.

TUK-4328

Most services are using Spring Boot 3.2.3

As a system-responsible, I want the service-infrastructure of the major version is based on the current version of Spring Boot so that further support for it is available, especially in case of found vulnerabilities.

Acceptance criteria:

  • Those services that do not have a conflict with known issues are upgraded:

    • service-admin

    • messaging-service

    • service-watcher

    • discovery-service

    • index-service

    • search-service

    • OCR-service

    • dms-sidecar

    • rendition-sidecar

    • client-service

    • agent-service

    • signing-service

    • template-service

    • all others (gateway, extractionservice) will be updated later

  • The admin interface has been optimized regarding the styling of the services list.

TUK-4339

The management studio 10 is based on Angular 17

As the system responsible, I want to be supported by a management studio that is based on Angular 17 so that the application is future-proof.

This story is the prerequisite to start with the license management view which will be the first extension of this application.

Acceptance criteria:

  • The build process is adapted

  • All relevant libraries are updated

  • All dialogs are working well

  • The component version is 10.0.0-Beta2

TUK-4374

The validation of a new schema is checking the number of object types in respect to the given license

As the system-responsible, I want the core-service to revise the update of a schema if more object types than allowed via license parameter.

Acceptance criteria:

  • The core-service checks the allowed number of object types during validation and revises the update with a specific error.
    "The number of custom not abstract object types exceeds the licensed maximum of types. The licensed max types is {0} but the current system definition contains {1} non abstract types."

 

TUK-4399

In the settings, the 'Cache' part is removed and a button 'Reset to default' is added to the part 'Local settings'

As a user, I want to be supported by a reduced way to reset my local settings to the default ones so that I don't have to read about the different ways to reset something.

Acceptance criteria:

  • The 'Cache' part is removed.

  • In the 'Local configuration' part the button 'Reset to default'/'Zurücksetzen auf Standard' is added.

    • A click on it removes everything from the local cache and empties the settings in the user service as well.

 

TUK-4404

It is possible to set up chart widget legends for the x-and y-axes as well as for the chart

As a user, I want to be able to configure a legend for my chart diagram, and the x-axes and y-axes.

Acceptance criteria:

  • These three additional not mandatory fields are offered in the configuration form:

    • 'Legend for diagram'/'Legende für Diagramm'

    • 'Legend for x-axes'/Legende für X-Achse'

    • 'Legend for y-axes'/'Legende für Y-Achse'

  • The legend is only shown if a value is entered

    • max value: 50

  • The preview is refreshed after a change when paused for one second.

TUK-4469

The chart widget supports sub-aggregations for metrics

As a user, I want to be able to get for a sub-aggregation the metrics like min, max, sum, avg, and median so that I can see the turnover of the most important 3 customers for the last month or year.

Acceptance criteria:

  • If the chart type is not a line one and the 'Attribute for aggregation' is not of type date or number (no histogram or range) these fields are additional offered for the sub-aggregation in front of the legends:

    • Field 'Attribute for metrics' with the list of available number attributes which sets the value of "sort" and the "sub" key

    • Field 'Metrics' with the list 'Average'/'Durchschnitt', 'Maximum', 'Median', 'Minimum', 'Sum/Summe' with the "Sum" as default if 'Attribute for metric' is not null which sets the value "avg", "max", "median", "min", or "sum" for the key "metrics"

    • In this case of bar chard, a checkbox 'Revert sort order' that toggles the "order" between 'desc' as default and 'asc'. Toggling the value reverts the order of the x-axis.

    • These new fields are used to request the aggregation like this (this is documented on the developer portal):

  • The diagram shows the resulting sub-aggregation buckets as can be seen in the extension.

TUK-4500

In a chart widget, a threshold can be set to not show counts that have less objects

As a user, I want to be able to get in a chart only partial values if their count above above a configured threshold so that I get only the interesting information.

Acceptance criteria:

  • In the configuration of the chart widget of type 'Bar', 'Pie', and 'Ring', the integer field 'Threshold for count'/'Schwellwert für Anzahl' with default 0 is added.

  • The request for the aggregation is done with "min_doc_count" : <threshold> like this example:

TUK-4532

The Task list widget is UX-optimized and saves the task data via user service instead of local storage

As a user, I want the tasks that I have entered into the Tasks widget on one workstation to be listed on another workstation without the need to save them into the system before I log out.

Acceptance criteria:

  • The data is stored and read via user service under 'tasks'.

    •  It is possible to save more than one task list.

  • The task list title and a task title can have a maximum of 50 characters.

  • If no task exists the user is informed: "Great: no open task'/'Toll: keine offene Aufgabe'

  • A new task can be entered in the field 'Task title' and added by clicking the '+' button or pushing the enter key. After the adding the field is empty and the focus is on the field so that another task can be entered.

  • The task sequence can be changed by drag and drop.

  • A task can be removed.

  • A task can be marked as done.

  • Data from the former widget are not read: digest entry is written.

TUK-4577

The description of a custom object property can be changed via form script

As a programmer, I want to be able to inform the user about the to-do to fill a form field in a specific situation so that he can fill the correct value.

Acceptance criteria:

  • It is possible to overwrite the description of a form field that is shown below it, e.g.

TUK-4589

The Image widget is UX-optimized

As the system responsible, I want to get rid of the widget-grid-widget library to become independent from it.

Acceptance criteria:

  • The client uses its own widget to support given configured Images of the old widget.

  • Optimizations:

    • In the configuration area, the icon is centered now and became part of a button in the accent color that is centered.

      • When hovering over this button it is indicated that it can be clicked.

      • A tooltip is shown: 'Select an image'/'Wählen Sie ein Bild aus'

    • If no image is selected an icon is shown in the middle of the preview area with the hint: 'Select an image first.'/'Wählen Sie zu zuerst ein Bild aus.'

      • The selected image is shown in the center of the preview area. Its ratio is kept

    • If the selected image is greater than 5 MB a dialog is shown with the title 'Upload image', the filename, and a warning that the maximum size of 5 MByte is exceeded.

      • The file selection dialog offers only gif, jpeg, jpg, png, and svg files.

      • With 'Cancel' the dialog ist closed. With 'Back' the file selection dialog is opened again

    • On the dashboard, the image is centered and the ratio is kept in the configured widget area.

      • Its background ist transparent

TUK-4628

The service-manager setup is adopted for the extended endpoints of the office365 service

As a system-responsible, I want that the endpoints of the office365-service are available under a context path so that the gateway routing can be configured without exposing the manage endpoints.

Acceptance criteria:

  • The setup is configuring the routing path in gateway-prod.yml  with 'office365/api'

routing.endpoints: 

 

TUK-4637

If a new license has a lower number of named users than currently are in the system assigned it can not be activated

As the product responsible, I want a new license not to be activated if more named licenses are assigned to a user than the given number.

Acceptance criteria:

  • When uploading the new license in the compare column, the row for the number of named users indicates the conflict with a red color.

  • A new license is revised during activation if the number of named users is lower than the currently assigned.

    • A notification with a generic hint is given

TUK-4671

It is possible to reset the dashboard to default

As a user, I want to be able to reset my dashboard to default to start my configuration from scratch.

Acceptance criteria:

  • In the settings, a new section 'Dashboard' is offered with the button 'Reset to default'/'Zurücksetzen auf Standard'.

  • After pushing the button

    • a security dialog is offered: 'Should the dashboard be reset to default?'/'Soll das Dashboard auf Standard zurückgesetzt werden?'

    • After pushing 'Cancel'/'Abbrechen' the dashboard is not set to default.

    • After pushing 'Reset'/'Zurücksetzen' the section 'workspaceoption' is removed from the user config section web and saved so that the default dashboard is offered.

    • A notification 'The dashboard has been reset to default.'/'Das Dashboard wurde auf Standard zurückgesetzt.' is shown.

TUK-4769

The responsiveness of the app bar is optimized

As a user, I want to use the menu of the profile image also on small windows so that I can set up the client.

Acceptance criteria:

When the window becomes smaller these parts of the app bar are vanishing:

  • o: full appbar:

  • 1st: The license information

     

  • 2nd: symbols besides the profile image because all pages can be opened via the main menu as well

3rd: The logo

  • When the symbols vanish the main menu shows the items 'Dashboard' and 'User documentation' too.

TUK-4808

In case of a system update from version 9 to 10 a PROVISIONAL_UPDATE license on update is activated with 1000 concurrent users

As an administrator, I want to be supported that my production system is usable after an update from version 9 to 10 when I forgot to request my PRODUCTION license before the update.

Acceptance criteria: 

  • A new license module PROVISIONAL_UPDATE is used when creating the first license when starting up the updated system. This license contains:

    • 1000 concurrent users instead of 5

    • 200 types instead of 5

  • The license-management-service is adopted.

  • The CLI tool is adopted.