At the field properties level Akwatype allows to declare tags which we call functional tag.

They are introduced by the @ character e.g. @Denomination, @Sensitive ...

type Site{
    name: String {@Denomination}
    address: Address
    Turnover:Integer {
        @Sensitive
        label:"Annual turnover"
    }
}

Tags are displayed next to the field to which they are applied and tags from all fields are consolidated at the entity (type or face) level.

 

 

 

 

 

Tag Propagation

An interesting aspect of tags is their ability to propagate in the model.

This capability allows to know if a high level facade exposes tagged data regardless of the depth level at which the tagged data is located.

 

Conditional Tags

One of the difficulties encountered with tags is that some data must be tagged according to their context.

For example, we could have a situation where a person address data must be tagged with GDPR while a site's address data must not be

Akwatype has conditional tags to address this problem

A conditional tag is introduced by an @ (like a standard tag) but ends with a ?, e.g. @GDPR?

The difference with a standard tag is that the conditional tag will only be active if the field that points to the type, where the field with conditional tag is declared, is itself tagged.

In the example below the Person address will activate the GDPR tag of the Type Address data while the Site address will not.

type Site{
    name: String {@Denomination}
    address: Address
    Turnover:Integer {
        @Sensitive
        label:"Annual turnover"
    }
}

type Person {
    name: String
    firstName: String
    address:Address {@GDPR} 
}

type Address { street:String {@GDPR?} city:String {@GDPR?} country:String {@GDPR?} }

 

 

Show tags

To display the functional tags, click on the tag management button, on the right of the screen where the graph is displayed, and select the tags you want to see displayed.

Select the "Display propagated tags" checkbox to visualize the propagation of the tags in your graph.