Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Page Properties
hiddentrue
idDONE

Antje
Product Version
Report Notepresentable
Assignee

Resources & Remarks

(Info) https://wiki.optimal-systems.de/pages/viewpage.action?pageId=57442949    

  • Antje: Cleaning up the Tutorial → moving things to Concepts

Modification History

NameDateProduct VersionAction
Antje08 FEB 20212.4New page properties macro.
Antje28 APR 20212021 SummerInfo added: number of tags per object limited to 50.
Antje21 JUN 20212021 Summer FixResistant Tags added.

Modify:

Note
titleNote

If a new version of an object is created, tags can be manipulated as well. Especially, a POST update of the binary content file removes all tags from the object. The new version will not have any tags. In order to assign version-independent processing information, please use resistant tags as described below.

Excerpt
Tags are used to describe the status of an object within a process chain independently of the object's metadata, which means no need of definition in the schema and no triggering of new versions
Antje24..26 NOV 20212022 Springimprovement, tag name length
Agnieszka09 DEZ 20212022 SpringrLANG
Antje03 JAN 20222022 Springbehavior during POST restoring action added
Christoph29 MAR 20222022 SummerAdding "Hiding Tags for Certain User" (DOKU-2316)

Anchor
HidingTags
HidingTags
Hiding Tags for Certain Users

Not all tags are relevant for the general user, e.g. tags that are needed for automatic data processing. To prevent the general user from seeing these tags, a classification tag can be defined as follows in the schema:

 <classification>tag[tenMyTenant:process,0,1,2,3,4,5,6,10,100]</classification>

For the general user, only the tags that are explicitly listed are displayed. The name and value of the tag will be shown. If specified, they are localized.
Users with administrative roles are shown all tag entries, including those needed only for automated processes.

Note: Tags will not be validated by the backend. The same tag name can be used by different clients, but the tag can be used differently by these clients. Since this can lead to problems, it is recommended to assign an appropriate name space to the tag, e.g. the tenant name. In the above example, the tag "process" has been assigned to the name space tenMyTenant.


Excerpt

The basic idea for the usage of tags is to describe the state of an object within a process chain. They basically consist of a name and a state value and can be assigned to any object.


Section
bordertrue


Column

Table of Contents

Table of Contents
exclude(Table of Contents|Read on|Tagging Objects for Processing|Schema - Defining Object Types|Changing Schema Structures \("Schema Flow"\))


...

In document lifecycle management, multi-stage and asynchronous processes are not uncommonquite the contrary. The first process steps are carried out with the highest priority. More complex and currently not absolutely essential process steps are carried out asynchronously with a lower priority. This saves time, and carrying out operations in parallel lets you distribute resources more evenly. To resume a process chain, additional information about the current status state of the process is necessary. In order to not mix an object's metadata with its status state data, there is the possibility to tag objects.  Pure tagging operations do not trigger the creation of new object versions.

Objects can be searched by tags and selected for the next process step. All tagging activities are recorded by the yuuvis® system in the object history (Audit Trail). Thanks to this, you can always retrace who has done what and when. Trouble shooting, reporting on the process status state or general issues are made easy by this centrally stored history.

Characteristics of Tags

...

Difference between metadata and tags:

  • Tags do NOT belong to the metadata and thus do not need to be defined in the schema. Moreover, .
  • Tags are stored together with the object as value for the system:tags property similar to metadata.
  • Pure tag operations do not NOT lead to the creation of a new object version.Tags are always available for the current object version.
  • The properties of tags are included in the searchable data.

...

  • Tags can only be attached to the current version of an object, whereas previous versions cannot have tags.
  • For version-specific information, metadata provide the suitable options. They have to be defined in the

...

  • schema.
Note
titleNote

If a new version of an object is created, tags can be manipulated as well. Especially, a POST update of the binary content file removes all tags from the object. The new version will not have any tags. In order to assign version-independent processing information, please use resistant tags as described below.

Tag Management

Endpoints

Tags can be set in any object creation body in the system property system:tags. In the same way, it is also possible to set, modify or remove tags for the new version of an object in any metadata POST/PATCH update call. A POST update without the explicit specification of already existing tags will remove them from the corresponding object.

Furthermore, there are endpoints for pure tag operations that do not trigger a new version of the corresponding object, but only a new entry in the audit trail:

...

State information:

  • Tags describe the state of an object in a process chain. The state information is specified via an integer value.

Tracing information:

  • Tags are provided with a process identification that allows to retrace tag operations and tune the update or deletion permissions for the tag.

Assignment:

  • Tags can be added to any object during object creation, during metadata updates or completely independent via a tagging endpoint.
  • Multiple tags can be added to one object.
  • The number of tags assigned to one object is limited to 50.

Querying on tags:

  • The properties of tags are included in the searchable data.
  • Tags are queried similar to table properties.

Behavior during POST metadata updates:

  • If the system:tags property is specified in the request body,
    • all included tags are assigned to the new object version with the given name and state. The same value as system:lastModificationDate and system:traceId will be set automatically for creationDate and traceId respectively for all of them.
    • each tag that is not included is deleted. The new object version will not have that tag.
  • If the property system:tags is NOT specified in the request body or is set to null, all tags will be deleted. The new object version will not have any tag.

Behavior during PATCH metadata updates:

  • If the system:tags property is specified in the request body,
    • all included tags are assigned to the new object version.
    • each tag that is not included is deleted. The new object version will not have that tag.
  • If the system:tags property is NOT specified in the request body, all tags are transferred to the new object version. Their statecreationDate and traceId remain unchanged.
  • If the system:tags property is set to null, all tags will be deleted. The new object version will not have any tag.

Behavior during POST updates of the binary content file:

  • If the tag name ends with the suffix :resistant, the tag is transferred to the new object version. Its state remains unchanged.
  • If the tag name does NOT end with the suffix :resistant, the tag is deleted. It will not be assigned to the new object version.

Behavior during POST restoring actions of an old version (as of 2022 Spring):

  • If the tag name ends with the suffix :resistant, the tag is transferred to the new object version. Its state remains unchanged.
  • If the tag name does NOT end with the suffix :resistant, the tag is deleted. It will not be assigned to the new object version.

Any tag operation is documented in the object audit trail.

Tag Properties

Tags are defined by the following properties:

PropertyTypeDescriptionIn a request
nameString

Name of the tag for identification. It has to be unique for the corresponding object.

The tag names are validated during a tag creation or update process. To pass the validation, they have to match the regular expression [a-z](:?[a-z][a-z0-9]*)* and must not be longer than 32 characters (as of 2022 Spring, no longer than 128 characters).

As of version 2021 Summer, the suffix :resistant triggers a specific behavior of the tag. If a tag name matches the expression [a-z](:?[a-z][a-z0-9]*)*:resistant, the tag will behave like a resistant tag as described below.

required
stateIntegerRepresents the status of the corresponding object in a process chain.required
creationDateStringDate and time of the last modification of the tag. It is set automatically by the system.optional, only available in search queries
traceIdHexadecimal lowercase string with maximum length 16

Process identification of any tag operation. If not specified in the request, a random String value will be set after the tag operation.

In a tag update or delete request, the request parameter traceIdMustMatch can be set to true. The operation will be done only if the traceId of the call matches the current traceId of the requested tag. After such update processes, the traceId of the updated tag will be the same as before.

Per default, traceIdMustMatch is set to false.

optional, specified by means of the HTTP header X-B3-TraceId

In a request, the corresponding properties are included directly in the URL for the call of the endpoint. In contrast, if tags are displayed in a response body, their properties are listed as a part of a JSON structure in the value of the property system:tags property.

Handling of the 'traceId'

The traceId is a process identification that provides the possibility to retrace tag operations and tune the update or deletion permissions for the tag. In the request URL, the query parameter traceIdMustMatch can be changed from its default value false to true. Thus, two different scenarios are possible:

...

Tagging Endpoints

The following endpoints for pure tag operations do not trigger a new version of the corresponding object, but only a new entry in the audit trail:

Anchor
ResistantTags
ResistantTags

...

Resistant tags are identified by the suffix :resistant at the end of the string tag nametag name.

Note: The tag name including the suffix must not exceed the length limit of 128 characters.

Summary

This article gave an introduction into the handling of tags as a feature of the lifecycle management of objects in yuuvis® Momentum. In the "Tagging Objects for Processing" tutorial, an exemplary use case is explained.

...