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 ({@code predecessor-version}, {@code successor-version}, {@code latest-version}, {@code version-history}, {@code timemap}, {@code memento}, {@code 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. {@code VALIDITY_TIME} (die Gültigkeit des Features in der realen Welt) oder {@code 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. {@code SERVER} verwendet den serverseitig erfassten Anfragezeitstempel; {@code 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 {@code datetime} auf den Features- und Feature-Ressourcen einer versionierten Collection: ein Datum oder Zeitstempel (RFC 3339) oder {@code now}. Mit dem Standardwert {@code now} liefern Anfragen ohne {@code 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. {@code anl} oder {@code lzi.beg}), die in einer einzelnen {@code Update}-Aktion gemeinsam mit dem Setzen eines Werts für die Rolle {@code PRIMARY_INTERVAL_END} geändert werden dürfen. Nicht aufgelistete Eigenschaften führen dazu, dass ein {@code Update}, das Stilllegung mit weiteren Änderungen kombiniert, mit {@code 400 Bad Request} abgelehnt wird. | array | v4.8 |
compositeIdPattern | null | Regulärer Ausdruck, der einen zusammengesetzten Feature-Identifikator (verwendet in {@code <fes:ResourceId rid="\u2026"/>}-Filtern und {@code gml:id}-Werten) in einen kanonischen Identifikator und einen erwarteten Suffix für {@code PRIMARY_INTERVAL_START} aufteilt. Das Muster muss zwei benannte Gruppen enthalten: {@code id} für den kanonischen Identifikator (unverändert in der Datenbank gespeichert) und {@code start} für das gepackte Zeitstempel-Suffix (geparst über {@code compositeIdTimestampFormat}). Bei {@code Replace}, {@code Update} und {@code 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 {@code Insert} wird das Suffix entfernt, sodass die kanonische ID gespeichert wird. | string | v4.8 |
compositeIdTimestampFormat | "yyyyMMdd'T'HHmmss'Z'" | {@code java.time.format.DateTimeFormatter}-Muster zum Parsen des durch {@code compositeIdPattern} erfassten Suffixes. Standard: {@code yyyyMMdd'T'HHmmss'Z'} \u2014 das kompakte ISO-8601-Basisformat mit expliziten {@code T}-/{@code Z}-Markern, z. B. {@code 20240215T121156Z}. Wird ignoriert, wenn {@code 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)$"