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 DataPools and DataSetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions.. | Each DataCatalog contains one or more DataPools. | Catalog |
| DataPool (will be implemented in v2.1) | Logical domain grouping datasetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. and related metadata. Example is "Verkehrsdaten". | Each DataCatalog contains one or more DataPools. A DataPool contains of multiple DataSetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions.. Each DataPool belongs to one TenantTenantAn isolated organizational partition that owns Data pools, Datasets, Users, Groups, and Roles. All access rules exist within their Tenant, and the Tenant is the widest Scope of a Role. Currently, one Tenant corresponds to the Platform.. Previously Datapools were called DataSpaces. | |
| DataSetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. | Structured collection of highly related data with metadata and tags. Examples include "Ladesäulen". A DataSetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. 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 DataPool contains of multiple DataSetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions.. Each DataSetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. has MetaData and can have multiple Tags. Each DataSetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. may contain multiple Pipelines and Distributions. | |
| MetaData | Descriptive information about datasetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. or distributions. This information includes properties defined in DCAT-AP.DE. | MetaData can describe DataSetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. or Distributions. | |
| Distribution | Published or shareable representation of a DataSetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions.. | Each Distribution is described by DistributionMetaData and is based on exactly one DataStructure. | Information Representation |
| PayloadData | The actual content of a DataSetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. 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 DataSetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions.. | 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 datasetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions.. Can be used to group DataSetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions., DataSources, DataStructures, e.g. into UseCases. | Each DataSetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. 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 DataPool. 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 |
| TenantTenantAn isolated organizational partition that owns Data pools, Datasets, Users, Groups, and Roles. All access rules exist within their Tenant, and the Tenant is the widest Scope of a Role. Currently, one Tenant corresponds to the Platform. | Organizational entity owning DataPools, DataSetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions., and users. | Each TenantTenantAn isolated organizational partition that owns Data pools, Datasets, Users, Groups, and Roles. All access rules exist within their Tenant, and the Tenant is the widest Scope of a Role. Currently, one Tenant corresponds to the Platform. contains multiple DataPools, DataSetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions., Users, and UserGroups. Each TenantTenantAn isolated organizational partition that owns Data pools, Datasets, Users, Groups, and Roles. All access rules exist within their Tenant, and the Tenant is the widest Scope of a Role. Currently, one Tenant corresponds to the Platform. 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 TenantsTenantAn isolated organizational partition that owns Data pools, Datasets, Users, Groups, and Roles. All access rules exist within their Tenant, and the Tenant is the widest Scope of a Role. Currently, one Tenant corresponds to the Platform.. | 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 TenantTenantAn isolated organizational partition that owns Data pools, Datasets, Users, Groups, and Roles. All access rules exist within their Tenant, and the Tenant is the widest Scope of a Role. Currently, one Tenant corresponds to the Platform. contains multiple Users. Each User can have multiple Assignments linking to Roles. | Account, Person |
| UserGroup | Group of Users for shared permissions. | Each TenantTenantAn isolated organizational partition that owns Data pools, Datasets, Users, Groups, and Roles. All access rules exist within their Tenant, and the Tenant is the widest Scope of a Role. Currently, one Tenant corresponds to the Platform. 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. DataPool, DataSetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions., or TenantTenantAn isolated organizational partition that owns Data pools, Datasets, Users, Groups, and Roles. All access rules exist within their Tenant, and the Tenant is the widest Scope of a Role. Currently, one Tenant corresponds to the Platform.). | 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 datasetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. or data applications. | Each DataRole grants multiple DataPermissions. | |
| SystemRole | Grants system-level or administrative privileges. | Each SystemRole grants multiple SystemPermissions. | |
| DataPermission | Permission to access datasetsDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions. 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 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 DatasetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions./-structure/-source with specific needed Roles. Optional, the ShareReuest references an InvitationLink |