Domain Model
The following figure shows the domain model of the CIVITAS/CORE platform.
All entities are described in the table below.
| Name | Description | Relations | Synonyms |
|---|---|---|---|
| DataCatalog | Central registry of DataSpaces and DataSets. | Each DataCatalog contains one or more DataSpaces. | Catalog |
| DataSpace | Logical domain grouping datasets and related metadata. Example is "Verkehrsdaten". | Each DataCatalog contains one or more DataSpaces. A DataSpace contains multiple DataSets. Each DataSpace belongs to one Tenant. | |
| DataSet | Structured collection of highly related data with metadata and tags. Examples include "Ladesäulen". A DataSet describes a single information ("Ladesäulen") and references multiple Distributions (i.e. representations) of this information, as well as the transformations that are used to generate those Distributions. | Each DataSpace contains multiple DataSets. Each DataSet has MetaData and can have multiple Tags. Each DataSet may contain multiple Pipelines and Distributions. | |
| MetaData | Descriptive information about datasets or distributions. This information includes properties defined in DCAT-AP.DE. | MetaData can describe DataSets or Distributions. | |
| Distribution | Published or shareable representation of a DataSet. | Each Distribution is described by DistributionMetaData and is based on exactly one DataStructure. | Information Representation |
| PayloadData | The actual content of a DataSet conforming to a DataStructure. | Each PayloadData conforms to exactly one DataStructure. | Data payload, Raw data |
| DataStructure | Defines schema and relationships of data, e.g. PayloadData. | Each DataStructure may have one parent DataStructure, a set of DataStructureProperties. PlayloadData that conforms to a DataStructure can be transformed by multiple Transformations. | Schema, Data model |
| DataStructureTemplate | Template for creating reusable DataStructures. Templates predefine certain classes and properties, e.g. the STA template may define a Thing, a DataStream, and Observations. Templates are used in the wizard mode to support easy persisting of data into a specific data store such as FROST. | Each DataStructureTemplate can instantiate multiple DataStructures. | Schema template, Meta Model |
| DataStructureRepository | Repository for storing DataStructures and Templates. | Each DataStructureRepository stores multiple DataStructures and multiple DataStructureTemplates. | Schema registry, Model registry |
| DataStructureProperties | Describes constraints or attributes of a DataStructure. | Each DataStructure has one set of DataStructureProperties. | Schema properties, Structure attributes |
| Persistence | Mechanism for storing and retrieving data. | PayloadData is stored in one Persistence. | Storage, Source, Target |
| Pipeline | Workflow defining a sequence of data processing steps. | Each Pipeline contains one or more Processors and can be associated with one or more DataSets. | Data pipeline, ETL flow, Flow |
| Processor | Executes a processing step (e.g., transform, validate). | Each Pipeline has multiple Processors. Each Processor may use one or more Persistences and may apply one or more Transformations. | Node |
| Transformation | Defines how data is converted between structures. | Each Transformation is typed by one or more DataStructures. It may have one or many TransformationProperties. | Mapping, Conversion |
| TransformationProperties | Parameters or metadata of a Transformation. | Each Transformation may have one or many TransformationProperties. | Transformation config, Conversion parameters |
| Tag | Label or classification marker for datasets. Can be used to group DataSets, DataSources, DataStructures, e.g. into UseCases. | Each DataSet can have multiple Tags. | Label, Keyword |
| DataSource | Origin of PayloadData (internal or external). A DataSource is typed by a DataStructure and uses a connector to retrieve the PayloadData. | Each DataSource uses one Connector and belongs to one DataSpace. A DataSource may have one ConnectorConfiguration. | Input source, Data provider |
| Connector | Manages data exchange between systems. | A connector can be specialized as NorthBound or SouthBound. | Adapter, Integration connector |
| NorthBoundConnector | Connector for external or higher-level communication. | Inherits from Connector. | Upstream connector |
| SouthBoundConnector | Connector for internal or lower-level communication. | Inherits from Connector. | Downstream connector |
| ConnectorConfiguration | Configuration of a Connector (e.g., URLs, credentials). | Each DataSource uses exactly one ConnectorConfiguration to configure the used Connector. | Connector setup, Connection config |
| Tenant | Organizational entity owning data spaces, datasets, and users. | Each Tenant contains multiple DataSpaces, DataSets, Users, and UserGroups. Each Tenant can be deployed on exactly on Instance. | Organization, Client |
| Instance | Running deployment of a CIVITAS/CORE platform. | Each Instance runs in exactly one Cluster. Each Instance may contain multiple Tenants. | Deployment, Environment, Platform Instance |
| Cluster | Infrastructure grouping multiple Instances. | Each Cluster hosts one or more Instances. | Kubernetes Cluster |
| User | Individual with access to data and systems. | Each Tenant contains multiple Users. Each User can have multiple Assignments linking to Roles. | Account, Person |
| UserGroup | Group of Users for shared permissions. | Each Tenant contains multiple UserGroups. Each UserGroup can have multiple Assignments to Roles. | Group, Team |
| Assignment | Links a User or UserGroup to a Role for a specific Scope (i.e. DataSpace, DataSet, or Tenant). | Each Assignment connects one User or one UserGroup to one Role. | Role binding, Access assignment |
| Role | Abstract role defining access or responsibility. | Each Role can have multiple Assignments. Specialized into DataRole and SystemRole. | Access role, Permission group |
| DataRole | Grants access to datasets or data applications. | Each DataRole grants multiple DataPermissions. | |
| SystemRole | Grants system-level or administrative privileges. | Each SystemRole grants multiple SystemPermissions. | |
| DataPermission | Permission to access datasets or applications. | Each DataRole grants multiple DataPermissions. Each DataPermission provides access to Data in multiple Applications. | |
| SystemPermission | Permission for system operations. | Each SystemRole grants multiple SystemPermissions, which provide access to Applications. | |
| Application | Software system providing user or visualization interfaces. | App, System, Client | |
| Masterportal | Application for geographical visualization of data. | Inherits from Application. | Portal, Dashboard |
| Superset | Application for dashboards and analytics. | Inherits from Application. | BI tool, Dashboard app |
| CivitasPermission | Abstract permission for Civitas platform components. Is implemented by GovernancePermission, DataPermission, and SystemPermission. CivitasPermissions are defined and shipped with the CIVITAS/CORE platform. | ||
| InvitationLink | An Invitation Link can be used to invite a person as user to the platform. | Invitation Links reference Users and ShareRequests | |
| Scope | A scope defines which resources can be used in the assignment of roles and groups. | Scopes are linked to assignments | |
| ShareRequest | ShareRequest bundle the wish, that a user can access a Dataset/-structure/-source with specific needed Roles. Optional, the ShareReuest references an InvitationLink |