Overview
Although the CZERTAINLY platform is technology independent, each technology have its own specifics that the users should be able to use properly.
CZERTAINLY uses Attribute
to control such specific behaviour of different technologies, like certification authorities, credential providers, discovery of certificates, etc. So called Attributes
are used in almost every Connector
and developer must understand them in order to implement custom behaviour or extend the functionality of the platform.
For more information about the concept behind the Connector
, Attributes
, Callbacks
, etc, see the CZERTAINLY platform overview.
Now let's take a look on what exactly is an Attribute
and how it can be used.
It is all about the Attributes
The concept works on the principle of exchanging and validation of Attributes
between the Client
, Connector
and CZERTAINLY platform.
Implementation of some specific Connector
must be able to define and properly handle its specific Attributes
. The definition is then exchanged with the Client
and the platform validates it consistency and mediate the flow and logic between them:
Because the communication is controlled by the platform, it ensures the consistency and security of the Attributes
that are exchanged between the Client
and the Connector
. and eventually applied in the target technology.
BaseAttribute
The BaseAttribute
is the base class for all Attributes
. It contains the basic properties that are common for all Attributes
and uses the generic type T
to define the 'content`. Tab |
You can find specification of the BaseAttribute
in the CZERTAINLY Interfaces repository.
Table below describes the properties of the BaseAttribute
:
Property | Type | Short description | Required |
---|---|---|---|
uuid | string | UUID of the defined Attribute . The combination of the Connector UUID and the Attribute UUID must be unique | Yes |
name | string | Name of the Attribute | Yes |
description | string | Description of the Attribute for better understanding of the Attribute purpose. This should contain descriptive explanation of the Attribtue . | No |
type | AttributeType | Type of the Attribute | Yes |
content | AttributeContent | Content of the Attribute based on the AttributeContentType | No |
Attribute
building blocks:
Each implementation of Attribute
type consists of the following building blocks:
AttributeProperties
- properties defines the behaviour of theAttribute
AttributeContent
- specific content of theAttribute
that is defined based on thecontent
typeAttributeConstraint
- constraint that defines the validation of theAttribute
contentAttributeCallback
- callback that is used to get theAttribute
content when it depends on other factors
The building blocks for each particular Attribute
type are described in Attributes section.
Building blocks description and examples
The following section describes in detail each building block of the Attribute
and provides examples of the Attributes
.
📄️ Properties
Properties defines the behaviour of the Attribute.
📄️ Content
Attribute supports various content defined by contentType.
📄️ Constraints
Constraints define set of rules that are applied for validation of the Attribute content as input. The Attribute content is validated when the Attribute is created or updated. Validation is controlled consistently by the platform and ensures that the Attribute content is valid and can be used for further processing.
📄️ Callbacks
In some cases, the content of the Attribute depends on the content of some other Attribute or some other aspects. This is where we use AttributeCallback to define the callback that will be used to get the content of the Attribute. The callback will be triggered when the mapping rules of the callback definition will be satisfied.
📄️ Attributes
Attribute, specifically its type is used to control different behaviour of the content and values in the platform. Some attributes defined the data that are exchanged between technologies, some of them may represent read-only information, and some of them may contain additional attributes that are grouped together or works as a wizard.
📄️ Examples
You can find here various examples of how to create and use attributes in different programming languages.
📄️ Attribute Definition Management
Attributes play a crucial role in exchanging parameters and values for various operations. Maintaining consistency in their definition and content is essential, particularly for Data and Metadata attributes. These definitions are specified within connectors and are not managed by Core.