Annotationen
Mittels Annotationen kann die Applikation konfiguriert und kundenspezifisch angepasst werden. Insbesondere ist es möglich, bestehende Elementtypen und Properties zu verändern sowie beliebig viele neue, kundenspezifische Properties zu definieren.
Alle Elementtypen und Properties, die standardmäßig vorhanden sind und mittels Annotationen angepasst werden können, sind im Metamodell beschrieben.
Das Metamodell dokumentiert alle Elementtypen und Properties in dataspot und ist in der vordefinierten Datenbank meta erreichbar.
Annotationen wirken sich unmittelbar in der Benutzeroberfläche und in allen Schnittstellen (Metadata REST/API, Metadata Upload/Download) aus. Bestehende, veränderte Properties bzw. neue, kundenspezifische Properties werden in den jeweiligen Elementen in der Benutzeroberfläche als Eingabefelder angezeigt. Ebenso werden neue Properties in den Schnittstellen beim Import und Export berücksichtigt.
Annotationen werden in YAML (.YAML, .YML) erfasst.
YAML ist eine vereinfachte Auszeichnungssprache, angelehnt an XML, und auf leichte Lesbarkeit für Menschen ausgelegt.
In YAML werden Datenstrukturen ausschließlich mit Schlüssel/Wert-Paaren (assoziativen Listen), Listen (Arrays) und Einzelwerten (Skalaren) abgebildet.
Nur Benutzer mit der Zugriffsstufe Administrator sind berechtigt, auf der Mandantenseite Annotationen zu bearbeiten.
Konfiguration
Bestehende Elementtypen und deren Properties können in YAML angepasst werden. Neue, kundenspezifische Properties können zu bestehenden Elementtypen hinzugefügt werden.
Elementtyp
Elementtypen werden in UpperCamelCase geschrieben.
Zunächst wird der Name des Elementtyps (laut Metamodell) auf oberster Ebene angegeben. Der Elementtyp kann dann, unter Verwendung der entsprechenden Schlüssel, angepasst werden.
# Elementtyp 'BusinessAttribute' umbenennen und Symbol ändern
BusinessAttribute:
label: Eigenschaft
icon: wrench
ling: s3p3f
Der Schlüssel label ändert die Bezeichnung des Elementtyps.
Der Schlüssel icon ändert das angezeigte Symbol.
Der Schlüssel ling gibt die Deklinationsklasse der Bezeichnung an.
Eine genaue Beschreibung aller Schlüssel befindet sich hier.
Property
Properties werden in lowerCamelCase geschrieben.
Bestehende Properties eines Elementtyps können mit dem Schlüssel properties angepasst werden.
Danach wird der Name der Property (laut Metamodell) angegeben.
# Bestehende Property 'title' umbenennen
BusinessAttribute:
properties:
title:
label: Überschrift
Neue, kundenspezifische Properties können mit dem Schlüssel customProperties zu einem Elementtyp hinzugefügt werden.
Danach wird der Name der neuen Property vergeben.
Dieser Name muss die Property eindeutig identifizieren und darf nicht mit anderen, vorhandenen Properties des Elementtyps kollidieren.
Der technische Name einer kundenspezifischen Property muss mit einem Buchstaben, : oder _ beginnen und darf danach nur Buchstaben, Ziffern, ., :, - oder _ jedoch keine Leerzeichen oder andere Sonderzeichen (/, &, ?, <, >, +, =, usw.) enthalten.
# Neue Properties 'confidentiality' und 'priority'
BusinessAttribute:
customProperties:
confidentiality:
label: Vertraulichkeit
baseType: STRING
priority:
label: Prioriät
literals:
LOW:
label: Niedrig
MEDIUM:
label: Mittel
HIGH:
label: Hoch
Neue Properties werden Teil des Metamodells. Sie werden beim jeweiligen Element in der Benutzeroberfläche als Eingabefelder angezeigt. Ebenso werden neue Properties in den Schnittstellen beim Import und Export berücksichtigt.
Mit dem Schlüssel stereotype können Elementtypen stereotypisiert werden.
Der Schlüssel customProperties definiert dabei für jeden Stereotyp eigene, kundenspezifische Properties.
In YAML muss jede Ebene mit zwei Leerzeichen eingerückt werden.
In der Konfiguration darf ein Elementtyp nur ein Mal vorkommen. Alle Erweiterungen und Anpassungen des Elementtyps sollten an einer einzigen Stelle erfolgen.
Falls kundenspezifische Properties entfernt werden, muss vor der Löschung sichergestellt werden, dass die betroffenen Properties leer sind. Dies ist besonders bei Stereotypen zu beachten, da es ansonsten in der Folge zu Problemen in der Verarbeitung kommen kann.
Mandantenfähigkeit
Die Konfiguration eines Basismandanten wird an alle untergeordneten Mandanten vererbt, d.h. alle untergeordneten Mandanten übernehmen die Konfiguration ihres Basismandanten.
Ein untergeordneter Mandant kann die geerbte Konfiguration des Basismandanten zwar nicht löschen jedoch erweitern oder überschreiben:
- In der Konfiguration des untergeordneten Mandanten können neue Properties hinzugefügt werden.
- In der Konfiguration des untergeordneten Mandanten können Properties überschrieben werden, die im Basismandanten bereits definiert sind.
Auf der Mandantenseite eines untergeordneten Mandanten werden die Mandanten-Annotationen und Mandanten-Profile des Basismandanten angezeigt aber können nicht bearbeitet werden.
Mandanten-Profile des Basismandanten können Modellen des untergeordneten Mandanten zugeordnet werden.
Elementtypen
Das Metamodell beschreibt alle Elementtypen.
Die folgende Liste zählt alle relevanten, konkreten Elementtypen auf, die konfiguriert werden können. Die Elementtypen sind nach den Modell-Typen angeordnet, in denen sie vorkommen:
| Name | Bezeichnung (label) |
|---|---|
BusinessDataModel | Geschäftsobjektmodell |
BusinessObject | Geschäftsobjekt |
BusinessAttribute | Attribut |
Relationship | Beziehung |
BusinessConstraint | Fachliche Bedingung |
MeasuresCatalog | Kennzahlenkatalog |
Measure | Kennzahl |
Dimension | Dimension |
Dimensioning | Dimensionierung |
DataCatalog | Datenkatalog |
Dataset | Datenset |
SubDataset | Subdatenset |
Distribution | Distribution |
Composition | Bestandteil |
ReferenceDataModel | Referenzdatenmodell |
ReferenceObject | Referenzobjekt |
ReferenceValue | Referenzwert |
Mapping | Überleitungstabelle |
Translation | Überleitung |
SystemCatalog | Systemkatalog |
System | System |
Subsystem | Subsystem |
ProcessingRecords | Verarbeitungsverzeichnis |
Processing | Verarbeitung |
Usage | Verwendung |
ProjectDirectory | Projektverzeichnis |
Project | Projekt |
Subproject | Subprojekt |
Usage | Verwendung |
DataDomainModel | Datentypmodell |
DataDomain | Datentyp |
QualityModel | Qualitätsmodell |
Indicator | DQI |
Application | Zuordnung |
Measurement | Messung |
UmlModel | Datenmodell |
UmlClass | Datenobjekt |
UmlAttribute | Attribut |
UmlAssociation | Beziehung |
UmlOperation | Operation |
UmlParameter | Parameter |
UmlDatatype | Datentyp |
UmlEnumeration | Enumeration |
UmlLiteral | Literal |
UmlConstraint | Constraint |
DxOrganization | Organisation |
Role | Rolle |
Post | Posten |
Group | Gruppe |
Person | Person |
Task | Aufgabe |
Tenant | Mandant |
User | Benutzer |
Workflow | Workflow |
Issue | Issue |
Approval | Freigabe |
Discussion | Diskussion |
Darüber hinaus gibt es Elementtypen, die keinem Modell-Typ eindeutig zugeordnet werden können, sondern in unterschiedlichen Modellen vorkommen:
| Name | Bezeichnung (label) |
|---|---|
Collection | Sammlung |
Attribution | Verantwortung |
Derivation | Herkunft |
Deployment | Bereitstellung |
Dependency | Abhängigkeit |
Transformation | Transformation |
Rule | Transformationsregel |
Hierarchie
Das Metamodell beschreibt eine Hierarchie von Elementtypen.
In dieser Hierarchie werden konkrete Elementtypen (z.B. BusinessDataModel, BusinessObject, BusinessAttribute oder Group) von abstrakten Elementtypen abgeleitet (z.B. Scheme, Classifier, Attribute oder Agent).
Die konkreten Elementtypen erben die Eigenschaften von den abstrakten Elementtypen (z.B. BusinessDataModel erbt von Scheme, BusinessObject erbt von Classifier, BusinessAttribute erbt von Attribute und Group erbt von Agent).
Annotationen können für abstrakte Elementtypen definiert werden. Alle konkreten Elementtypen, die von diesen abstrakten Elementtypen ableiten, erben auch deren Annotationen.
Die folgende Liste zählt einige abstrakte Elementtypen und deren abgeleiteten, konkreten Elementtypen auf:
| Abstrakter Elementtyp | Abgeleitete, konkrete Elementtypen |
|---|---|
Classifier | BusinessObjectUmlClass |
Attribute | BusinessAttributeUmlAttribute |
Association | RelationshipUmlAssociation |
Constraint | BusinessConstraintUmlConstraint |
Enumeration | ReferenceObjectUmlEnumeration |
Literal | ReferenceValueUmlLiteral |
Scheme | BusinessDataModelReferenceDataModelMeasuresCatalogDataCatalogQualityModelProjectDirectoryProcessingRecordsDataDomainModelSystemCatalogUmlModel |
Ticket | IssueApprovalDiscussion |
Die gesamte Hierarchie der konfigurierbaren Elementtypen, einschließlich aller abstrakten und konkreten Elementtypen und deren Ableitungen, ist im Metamodell beschrieben.
Es kann gezielt unterschieden werden, ob ein konkreter Elementtyp (z.B. BusinessDataModel) oder ein abstrakter Elementtyp (z.B. Scheme) - inklusive aller abgeleiteten Elementtypen - konfiguriert werden soll.
# Kundenspezifische Property 'confidentiality' in allen Modellen
Scheme:
customProperties:
confidentiality:
label: Vertraulichkeit
labelEn: Confidentiality
# Kundenspezifische Property 'priority' nur in Geschäftsobjektmodellen
BusinessDataModel:
customProperties:
priority:
label: Prioriät
labelEn: Priority
Status
Jedes Metadatenobjekt befindet sich in einem bestimmten Status innerhalb eines Workflows. Während der Verarbeitung kommt es zu Übergängen zwischen verschiedenen Status. Mittels Annotationen können sowohl die verfügbaren Status angepasst oder entfernt werden als auch neue, kundenspezifische Status definiert werden.
Jeder Status ist einer der folgenden Gruppen zugeordnet:
Asset:
properties:
status:
groups:
DRAFT:
label: Entwurf
labelEn: Draft
NOT_PUBLIC:
label: Nicht öffentlich
labelEn: Not Public
PUBLIC:
label: Öffentlich
labelEn: Public
- Metadatenobjekte, deren Status aus der Gruppe
DRAFTist, sind nur für Administratoren und Editoren sichtbar. Die letzte veröffentliche Version des Metadatenobjekts ist für lesende Benutzer sichtbar. - Metadatenobjekte, deren Status aus der Gruppe
NOT_PUBLICist, sind nur für Administratoren und Editoren sichtbar. Die letzte veröffentliche Version des Metadatenobjekts ist für lesende Benutzer nicht sichtbar. - Metadatenobjekte, deren Status aus der Gruppe
PUBLICist, sind für alle Benutzer sichtbar.
Standardmäßig sind folgende Status definiert:
Asset:
properties:
status:
literals:
WORKING:
label: In Arbeit
labelEn: Working
title: Noch in Arbeit bzw. in Überarbeitung
titleEn: Work in progress or in revision
icon: wrench
order: 0
group: DRAFT
SUBMITTED:
label: Abgestimmt
labelEn: Submitted
icon: scale-balanced
order: 1
group: DRAFT
ACCEPTED:
label: Abgenommen
labelEn: Accepted
icon: gavel
order: 2
group: DRAFT
FINAL:
label: Finalisiert
labelEn: Final
icon: badge-check
order: 3
group: NOT_PUBLIC
PUBLISHED:
label: Veröffentlicht
labelEn: Published
icon: globe
order: 4
group: PUBLIC
INACTIVE:
label: Inaktiv
labelEn: Inactive
icon: solid-do-not-enter
order: 5
group: NOT_PUBLIC
inactive: true
REJECTED:
label: Abgelehnt
labelEn: Rejected
icon: thumbs-down
order: 6
group: DRAFT
inactive: true
Der Schlüssel inactive kennzeichnet einen Status als inaktiv.
Inaktive Status werden in der Benutzeroberfläche entsprechend angezeigt.
| Status | Gruppe | Sichtbarkeit von Metadatenobjekten |
|---|---|---|
In Arbeit | DRAFT | Metadatenobjekte sind sichtbar für Administratoren und Editoren. Die letzte veröffentlichte Version ist sichtbar für lesende Benutzer. |
Abgestimmt | DRAFT | Metadatenobjekte sind sichtbar für Administratoren und Editoren. Die letzte veröffentlichte Version ist sichtbar für lesende Benutzer. |
Abgenommen | DRAFT | Metadatenobjekte sind sichtbar für Administratoren und Editoren. Die letzte veröffentlichte Version ist sichtbar für lesende Benutzer. |
Finalisiert | NOT_PUBLIC | Metadatenobjekte sind sichtbar für Administratoren und Editoren jedoch nicht sichtbar für lesende Benutzer. |
Veröffentlicht | PUBLIC | Metadatenobjekte sind sichtbar für alle Benutzer. |
Inaktiv | NOT_PUBLIC | Metadatenobjekte sind sichtbar für Administratoren und Editoren jedoch nicht sichtbar für lesende Benutzer. |
Abgelehnt | DRAFT | Metadatenobjekte sind sichtbar für Administratoren und Editoren. Die letzte veröffentlichte Version ist sichtbar für lesende Benutzer. |
Um die vorhandenen Status anzupassen oder neue, kundenspezifische Status hinzuzufügen, muss in der Property status im Elementtyp Asset der Schlüssel literals entsprechend erweitert oder geändert werden.
Falls ein Status gelöscht wird, muss vor der Löschung sichergestellt werden, dass dieser Status aus allen Workflows entfernt wird.
Theme
Jedes Theme kann kundenspezifisch angepasst werden. Es ist möglich, das zugrundeliegende Farbschema auszuwählen sowie die Farben ausgewählter Bildschirmkomponenten (z.B. Seitenleiste, Statusfarben) zu definieren und die Schriftart zu ändern.
Es ist nur möglich, die standardmäßig vorhandenen Themes LIGHT (Hell), DARK (Dunkel) und CVD (Farbsehschwäche) zu individualisieren.
Es ist nicht möglich, neue Themes hinzuzufügen.
Theme:
instances:
LIGHT:
label: Hell
labelEn: Light
icon: sun-bright
order: 1
appFont: Nunito Sans
sidebarBackgroundColor: "d1dfe2"
sidebarBorderColor: "dcdcdc"
sidebarHeaderColor: "656565"
sidebarHeaderHoverColor: "464646"
sidebarButtonColor: "464646"
sidebarButtonHoverBackgroundColor: "84b2ba"
sidebarButtonActiveColor: "ffffff"
sidebarButtonActiveBackgroundColor: "096574"
statusDraftColor: "a24372"
statusPublicColor: "1b5860"
statusNotPublicColor: "49506c"
statusInactiveColor: "ff6347"
statusNoneColor: "98661f"
DARK:
label: Dunkel
labelEn: Dark
icon: moon
order: 2
appFont: Nunito Sans
sidebarBackgroundColor: "03353d"
sidebarBorderColor: "323232"
sidebarHeaderColor: "9fa6ad"
sidebarHeaderHoverColor: "cdd7e1"
sidebarButtonColor: "cdd7e1"
sidebarButtonHoverBackgroundColor: "076574"
sidebarButtonActiveColor: "464646"
sidebarButtonActiveBackgroundColor: "d1dfe2"
statusDraftColor: "d384b0"
statusPublicColor: "84b2ba"
statusNotPublicColor: "b7a9d6"
statusInactiveColor: "db9180"
statusNoneColor: "b6876a"
CVD:
label: Farbsehschwäche
labelEn: Color vision deficiency
icon: eye-slash
order: 3
appFont: Inter
sidebarBackgroundColor: "272727"
sidebarBorderColor: "323232"
sidebarHeaderColor: "9f9f9f"
sidebarHeaderHoverColor: "cdcdcd"
sidebarButtonColor: "cdcdcd"
sidebarButtonHoverBackgroundColor: "1a1a1a"
sidebarButtonActiveColor: "464646"
sidebarButtonActiveBackgroundColor: "d1d1d1"
statusDraftColor: "b5889b"
statusPublicColor: "6a8fda"
statusNotPublicColor: "b4b3ef"
statusInactiveColor: "db9180"
statusNoneColor: "b6876a"
colorScheme: DARK
Farben werden als RGB-Werte angegeben (Hexadezimale Farbdefinition). Es wird empfohlen, die RGB-Werte mit doppelten Hochkomma anzugeben.
Es ist möglich, einzelne Schlüssel zu überschrieben, ohne die restlichen Einstellungen zu ändern.
Theme:
instances:
CVD:
appFont: Lato
Folgende Schlüssel können angepasst werden:
| Schlüssel | Beschreibung |
|---|---|
label, labelEn | Die Bezeichnung des Themes im Menü. |
icon | Das Symbol des Themes im Menü. |
order | Die Ordnungszahl, die zum Sortieren der Themes im Menü verwendet wird. |
appFont | Die Schriftart der Applikation [Inter,Lato,Noto Sans, Nunito Sans]. |
sidebarBackgroundColor | Die Hintergrundfarbe der Seitenleiste und der Buttons in der Menüleiste. |
sidebarBorderColor | Die Rahmenfarbe der Seitenleiste und der Buttons in der Menüleiste. |
sidebarHeaderColor | Die Schriftfarbe der Überschriften in der Seitenleiste. |
sidebarHeaderHoverColor | Die Schriftfarbe der Überschriften in der Seitenleiste beim Hovern. |
sidebarButtonColor | Die Schriftfarbe der Buttons in der Seitenleiste und Menüleiste. |
sidebarButtonHoverBackgroundColor | Die Hintergrundfarbe der Buttons in der Seitenleiste und Menüleiste beim Hovern. |
sidebarButtonActiveColor | Die Schriftfarbe der gewählten Buttons in der Seitenleiste. |
sidebarButtonActiveBackgroundColor | Die Hintergrundfarbe der gewählten Buttons in der Seitenleiste. |
appBarBackgroundColor (deprecated) | Die Hintergrundfarbe der Menüleiste. |
appBarColor (deprecated) | Die Schriftfarbe der Menüleiste. |
statusDraftColor | Die Schriftfarbe für Assets, die sich im Veröffentlichungsstatus Entwurf befinden. |
statusPublicColor | Die Schriftfarbe für Assets, die sich im Veröffentlichungsstatus Öffentlich befinden. |
statusNotPublicColor | Die Schriftfarbe für Assets, die sich im Veröffentlichungsstatus Nicht öffentlich befinden. |
statusInactiveColor | Die Schriftfarbe für Assets, die sich in einem inaktiven Status befinden. |
statusNoneColor | Die Schriftfarbe für Elemente, die keinen Status zugewiesen haben. |
colorScheme | Das zugrundeliegende Farbschema [LIGHT,DARK]. |
Der Schlüssel colorScheme kann nur für das Theme CVD (Farbsehschwäche) geändert werden.
Aus Kompatibilitätsgründen werden die Schlüssel appBarBackgroundColor und appBarColor (deprecated), falls vorhanden, automatisch auf die Schlüssel sidebarButtonColor, sidebarBackgroundColor, sidebarHeaderColor, usw. konvertiert und überschreiben gegebenenfalls deren explizit gesetzten Werte.
Um die Schlüssel sidebarButtonColor, sidebarBackgroundColor, sidebarHeaderColor, usw. explizit setzen zu können, müssen die Schlüssel appBarBackgroundColor und appBarColor entfernt werden.
Login-Dialog
Die Eingabefelder des Login-Dialogs können kundenspezifisch angepasst werden.
Dazu müssen im Default-Mandanten die Properties loginId und password des Elementtyps User angegeben werden:
- Der Schlüssel
label(bzw.labelEn) gibt die Bezeichnung an, die neben dem Eingabefeld im Login-Dialog angezeigt wird. - Der Schlüssel
title(bzw.titleEn) gibt die Beschreibung an, die als Tooltipp über dem Eingabefeld im Login-Dialog eingeblendet wird.
# Kundenspezifischer Login-Dialog
User:
properties:
loginId:
label: Login-ID
labelEn: Login ID
title: Die Benutzerkennung des Benutzers
titleEn: The login ID of the user
password:
label: Passwort
labelEn: Password
title: Das Passwort des Benutzers (mind. 8 Zeichen)
titleEn: The password of the user (min. 8 characters)