Versioned Features
specdraftimplproposalVersionsauswahl pro Feature, Versionshistorie und unveränderliche Mementoes.
Umfang
Erweitert die vorhandenen Features-Ressourcen um Versionsauswahl-Semantik und stellt eine Time-Map-Ressource bereit. Der Anfrageparameter datetime selektiert die Version jedes Features, die den angegebenen Zeitpunkt oder das Intervall schneidet; ohne Angabe wird die aktuelle Version geliefert. Antworten zu einzelnen Versionen enthalten den Header Memento-Datetime sowie die in RFC 7089 definierten Linkrelationen (predecessor-version, successor-version, latest-version, version-history, timemap, memento, original). Zusammen mit den Bausteinen Transactions und CRUD erzeugen Mutationen neue Versionen (bzw. stellen vorhandene still), statt Zeilen in der Datenbank zu überschreiben.
Konfiguration
Optionen
| Name | Default | Beschreibung | Typ | Seit |
|---|---|---|---|---|
buildingBlock | Immer VERSIONED_FEATURES. | string | v2.0 | |
enabled | false | Soll der Baustein aktiviert werden? | boolean | v2.0 |
timeAxis | null | Zeitachse, entlang derer die Versionsintervalle einer Sammlung interpretiert werden. VALIDITY_TIME (die Gültigkeit des Features in der realen Welt) oder TRANSACTION_TIME (Zeitpunkt der Erfassung im System). Muss gesetzt sein, wenn der Baustein für eine Sammlung aktiviert ist. | string | v4.8 |
mutationTime | null | Quelle des Zeitstempels, der beim Erzeugen oder Stilllegen einer Version verwendet wird. SERVER verwendet den serverseitig erfassten Anfragezeitstempel; CLIENT verwendet einen vom Client gelieferten Zeitstempel. Muss gesetzt sein, wenn die Sammlung Mutationen akzeptiert. | string | v4.8 |
defaultDatetime | "now" | Standardwert für den Query-Parameter datetime auf den Features- und Feature-Ressourcen einer versionierten Collection: ein Datum oder Zeitstempel (RFC 3339) oder now. Mit dem Standardwert now liefern Anfragen ohne datetime die aktuelle Version jedes Features; ein festes Datum bzw. ein fester Zeitstempel wählt die zu diesem Zeitpunkt gültigen Versionen aus. Intervalle sind nicht erlaubt. | string | v4.8 |
retireWithModifications | [] | Eigenschaftspfade (in Punktschreibweise der Schema-IDs, z. B. anl oder lzi.beg), die in einer einzelnen Update-Aktion gemeinsam mit dem Setzen eines Werts für die Rolle PRIMARY_INTERVAL_END geändert werden dürfen. Nicht aufgelistete Eigenschaften führen dazu, dass ein Update, das Stilllegung mit weiteren Änderungen kombiniert, mit 400 Bad Request abgelehnt wird. | array | v4.8 |
compositeIdPattern | null | Regulärer Ausdruck, der einen zusammengesetzten Feature-Identifikator (verwendet in <fes:ResourceId rid="..."/>-Filtern und gml:id-Werten) in einen kanonischen Identifikator und einen erwarteten Suffix für PRIMARY_INTERVAL_START aufteilt. Das Muster muss zwei benannte Gruppen enthalten: id für den kanonischen Identifikator (unverändert in der Datenbank gespeichert) und start für das gepackte Zeitstempel-Suffix (geparst über compositeIdTimestampFormat). Bei Replace, Update und Delete wird das geparste Suffix als If-Unmodified-Since-artige Vorbedingung interpretiert: der Start der offenen Version muss damit übereinstimmen, sonst scheitert die Aktion mit 412 Precondition Failed. Bei Insert wird das Suffix entfernt, sodass die kanonische ID gespeichert wird. | string | v4.8 |
compositeIdTimestampFormat | "yyyyMMdd'T'HHmmss'Z'" | java.time.format.DateTimeFormatter-Muster zum Parsen des durch compositeIdPattern erfassten Suffixes. Standard: yyyyMMdd'T'HHmmss'Z' - das kompakte ISO-8601-Basisformat mit expliziten T-/Z-Markern, z. B. 20240215T121156Z. Wird ignoriert, wenn compositeIdPattern nicht gesetzt ist. | string | v4.8 |
Dieses Modul benötigt bzw. unterstützt keine zusätzlichen Konfigurationsdateien.
Beispiele
- buildingBlock: VERSIONED_FEATURES
enabled: true
timeAxis: VALIDITY_TIME
mutationTime: CLIENT
retireWithModifications:
- anl
compositeIdPattern: "^(?<id>DE[A-Za-z0-9]{14})(?<start>\\d{8}T\\d{6}Z)$"