Skip to main content
Version: 2.0.0

Domain Model

The following figure shows the domain model of the CIVITAS/CORE platform. Every entity in it exists in v2 — concepts that had no implementation behind them were removed from the model rather than carried along as intent.

Several entities are named differently in the implementation, or are realised as an attribute rather than as an entity of their own. The In the implementation column below says which, for every entity, and Where the naming differs at the end of the page collects the renames.

Domain Model

All entities are described in the table below.

NameIn the implementationDescriptionRelationsSynonyms
DataCatalogCatalog — a basic implementation only; it will be extendedCentral 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
DataPoolAs modelledLogical 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.As modelledStructured collection of highly related data with metadata. 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. 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.
MetaDataattributes of 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. and Distribution, not as an entity of its own; DCAT-AP.DE is produced by the DCAT endpoint. A basic implementation only; it will be extendedDescriptive 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.
DistributionAs modelledPublished 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
PayloadDataConceptual — the data itself; no registry entityThe 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
DataStructureversioned through DataStructureVersionDefines schema and relationships of data, e.g. PayloadData.Each DataStructure may have one parent DataStructure. PayloadData that conforms to a DataStructure can be transformed by multiple Transformations.Schema, Data model
DataStructureRepositorythe Model Forge artifact registry (ADR 049)Repository for storing DataStructures and Templates.Each DataStructureRepository stores multiple DataStructures.Schema registry, Model registry
PersistenceDataSink (FROST, PostGIS)Mechanism for storing and retrieving data.PayloadData is stored in one Persistence.Storage, Source, Target
PipelineAs modelledWorkflow defining a sequence of data processing steps.Each Pipeline contains one or more Transformations 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
TransformationMapping, held as a Model Forge artifact (ADR 045)Defines how data is converted between structures.Each Transformation is typed by one or more DataStructures and belongs to exactly one Pipeline.Mapping, Conversion
DataSourceAs modelledOrigin 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
Connectorthe ConnectorType discriminator (MQTT, SQL), not as an entityManages data exchange between systems.Each DataSource uses one Connector, configured by a ConnectorConfiguration.Adapter, Integration connector
ConnectorConfigurationMQTT and SQL configurationsConfiguration 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.As modelledOrganizational 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.Organization, Client
UserAs modelledIndividual 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 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. and can have multiple Assignments linking to Roles.Account, Person
UserGroupGroupGroup 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
AssignmentAs modelledLinks 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
RoleAs modelledAbstract role defining access or responsibility.Each Role can have multiple Assignments. Specialized into DataRole and SystemRole.Access role, Permission group
DataRoleRoleType.DATA on Role, not as a subclassGrants 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..Each DataRole grants multiple DataPermissions.
SystemRoleRoleType.SYSTEM on Role, not as a subclassGrants system-level or administrative privileges.Each SystemRole grants multiple SystemPermissions.
DataPermissionPermissionType.DATA on Permission, not as a subclassPermission 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..Each DataRole grants multiple DataPermissions.
SystemPermissionPermissionType.SYSTEM on Permission, not as a subclassPermission for system operations.Each SystemRole grants multiple SystemPermissions.
ScopeScopeType plus the scope reference on Assignment, not as an entityA scope defines which resources can be used in the assignment of roles and groups.Scopes are linked to assignments

Where the naming differs​

FigureImplementationWhy
DataCatalogCatalogShorter, and catalogs nest — a Catalog may contain child Catalogs.
UserGroupGroupGroups carry assignments and nest; they are not limited to users.
PersistenceDataSinkThe platform writes into a sink; persistence also names the JPA layer, which is something else.
TransformationMappingCanonical vocabulary from ADR 060; Mappings are Model Forge artifacts, not portal entities.
DataStructureRepositoryModel Forge artifact registryThe registry stores every artifact kind, not only Data structures (ADR 049).
DataRole / SystemRoleRoleType on RoleA discriminator, not a subclass. The same holds for DataPermission / SystemPermission and PermissionType.