Skip to main content
Version: V2-Next

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 DataSets.Each DataCatalog contains one or more DataPools.Catalog
DataPoolAs modelledLogical domain grouping datasets and related metadata. Example is "Verkehrsdaten".Each DataCatalog contains one or more DataPools. A DataPool contains of multiple DataSets. Each DataPool belongs to one Tenant. Previously Datapools were called DataSpaces.
DataSetAs modelledStructured collection of highly related data with metadata. 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 DataPool contains of multiple DataSets. Each DataSet has MetaData. Each DataSet may contain multiple Pipelines and Distributions.
MetaDataattributes of DataSet 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 datasets or distributions. This information includes properties defined in DCAT-AP.DE.MetaData can describe DataSets or Distributions.
DistributionAs modelledPublished or shareable representation of a DataSet.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 DataSet 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 DataSets.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
TenantAs modelledOrganizational entity owning DataPools, DataSets, and users.Each Tenant contains multiple DataPools, DataSets, Users, and UserGroups.Organization, Client
UserAs modelledIndividual with access to data and systems.Each Tenant contains multiple Users. Each User belongs to one Tenant and can have multiple Assignments linking to Roles.Account, Person
UserGroupGroupGroup of Users for shared permissions.Each Tenant 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, DataSet, or Tenant).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 datasets.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 datasets.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.