Skip to main content
Version: 2.0-rc

URN Format

Model ManagementModel ManagementThe part of the platform that defines, versions and stores the data models and integration configuration (the model artifacts) from which the platform is configured. It is implemented by Model Forge, an embedded module of the Portal Backend. manages all model artifactsModel ArtifactUmbrella term for any persistable CORE unit: Element, DataStructure, Mapping, DataSource, DataSink, Pipeline and DataSet. Every artifact has a stable CORE URN identity and is versioned. through global identities: every artifact has a unique, stable and versionable URN that exists independently of storage location, file names or registry technology.

The identities simultaneously serve as:

  • Registry keys
  • Reference targets for JSON Schema $ref
  • Stored artifact references
  • Foundation for the dependency graph

Structure​

urn:core:<scope>:<owner>:<artifact-type>:<domain>:<name>:<version>
SegmentMeaningExamples
urn:coreCORE namespace—
scopeScope of validityplatform, tenant, standard, dataset, project
ownerPublishercivitas, stadt-muenster, xoev
artifact-typeArtifact typedatastructure, mapping, pipeline, datasource, datasink, dataset
domainDomain hierarchy (dot-separated)common, mobility.parking, environment.air
nameTechnical nameGeoPoint, ParkingSensor, WeatherObservation
versionSemantic version1.0.0, 1.1.0, 2.0.0

Examples​

urn:core:platform:civitas:datastructure:common:GeoPoint:1.0.0
urn:core:tenant:stadt-muenster:datastructure:mobility.parking:ParkingSensor:1.0.0
urn:core:tenant:stadt-muenster:mapping:mobility.parking:ParkingSensorToNgsi:1.0.0
urn:core:tenant:stadt-muenster:pipeline:mobility.parking:ParkingImport:1.0.0
urn:core:standard:xoev:datastructure:xmeld:Meldeanschrift:1.7

The standard scope marks external standard models imported unmodified (e.g. XÖV standards from XRepository).

A DataStructure's exchange format (JSON Schema or XSDXML Schema DefinitionA W3C language for describing the structure of XML documents. Model Management imports XSD into JSON Schema and can serialize an Element as XSD.) is not encoded in the URN. Both use the datastructure artifact type; the format is a per-version representation, not an identity (see XML/XSD Integration). A client-supplied urn:core:…:xsd:… (an XSDXML Schema DefinitionA W3C language for describing the structure of XML documents. Model Management imports XSD into JSON Schema and can serialize an Element as XSD. artifact-type URN) is rejected with HTTP 400.

Logical vs. versioned identity​

Model ManagementModel ManagementThe part of the platform that defines, versions and stores the data models and integration configuration (the model artifacts) from which the platform is configured. It is implemented by Model Forge, an embedded module of the Portal Backend. distinguishes two forms of the same identity:

FormExampleRepresents
Logical URN (no version)urn:core:platform:civitas:datastructure:common:GeoPointThe domain concept
Versioned URNurn:core:platform:civitas:datastructure:common:GeoPoint:1.0.0A concrete version

The logical URN is the artifact's stored identity and the key of the in-memory caches; the version segment maps to a stored artifact_version. The dependency graph is version-precise: its nodes are versioned URNs and the dependency endpoints report concrete versions (a logical or :latest query resolves to the current version).

The latest reference token​

A reference between artifacts may pin a concrete version (…:Foo:1.0.0) or use the latest token (…:Foo:latest) to always track the target's current (highest-SemVer) version. latest is valid as a reference target and as a read id (GET …?id=…:Foo:latest), resolving to the current version at read time; self/HAL links and Location headers always return the concrete version, so latest stays a client→server input. It is not a writable identity — an artifact is always authored at a concrete version, and a client-supplied :latest (like a legacy :xsd:) identity is rejected with 400.

Usage in JSON Schema​

Every JSON Schema carries the CORE URNCORE URNThe global identity Model Management assigns to every model artifact: a unique, stable and versionable URN that exists independently of storage location, file names or registry technology. as its $id — the document is fully self-describing:

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:core:platform:civitas:datastructure:common:GeoPoint:1.0.0",
"title": "GeoPoint"
}

The backend respects an existing CORE URNCORE URNThe global identity Model Management assigns to every model artifact: a unique, stable and versionable URN that exists independently of storage location, file names or registry technology. as $id. If none is present, Model Forge generates one from the title field using the configured namespace segments (see Configuration).

Schemas reference other schemas directly through their CORE URNCORE URNThe global identity Model Management assigns to every model artifact: a unique, stable and versionable URN that exists independently of storage location, file names or registry technology.:

{
"properties": {
"location": {
"$ref": "urn:core:platform:civitas:datastructure:common:GeoPoint:1.0.0"
}
}
}

From these references Model ManagementModel ManagementThe part of the platform that defines, versions and stores the data models and integration configuration (the model artifacts) from which the platform is configured. It is implemented by Model Forge, an embedded module of the Portal Backend. automatically registers the dependency-graph edges and stores the full reference graph (including cycles) as artifact references.

Usage in Mappings and Pipelines​

Mappings reference the participating DataStructures by URN:

{
"$schema": "https://civitasconnect.digital/core/mapping/v1",
"id": "urn:core:platform:civitas:mapping:common:sensor-to-observation:1.0.0",
"source": "urn:core:platform:civitas:datastructure:common:SensorReading:1.0.0",
"target": "urn:core:platform:civitas:datastructure:common:Observation:1.0.0"
}

Pipeline nodes reference DataSources, Mappings and DataSinks by URN:

{
"id": "n-source",
"kind": "source",
"sourceRef": "urn:core:platform:civitas:datasource:common:mqtt-temperature:1.0.0"
}

Mapping to the registry​

The artifact registry addresses artifacts by their stored identity, all derived mechanically from the URN:

Registry columnDerived from
artifact_typeartifact type segment (datastructure, mapping, …)
logical_urnlogical URN (without version)
artifact_version.versionversion segment

The URN remains the domain source of truth; PostgreSQL is the technical persistence.