Zum Inhalt springen

Vertrag01 von 04

Welche Felder beschreibt ein Objekt?

Objekt: Kennung und Eigenschaften

Thema
FORGE
Lesezeit
2 Min.
Erstfassung
Stand
Bauplan
Auf dieser Seite
  1. 01Ein geplanter Vertrag, kein erreichbarer Endpunkt
  2. 02Identität ist kein Abgleich per Namen
  3. 03Lesen und Ändern auseinanderhalten
  4. 04Schutz am Objekt erhalten
  5. 05Zusammengesetzter Typ: SourceRef
  6. 06Schema
  7. 07Felder
  8. 08Fehlerfälle
  9. 09Grenze und Regel
  10. 10Verwandte Seiten

Ein Objekt beschreibt eine eindeutig benannte Sache mit Eigenschaften, Quellenbezug und Version. Dieser geplante Vertrag trennt die Identität einer Sache von den Datensätzen, die etwas über sie behaupten.

Ein geplanter Vertrag, kein erreichbarer Endpunkt

Die Felder beschreiben eine prüfbare Entwurfsrichtung. Es gibt hier keinen zugesagten HTTP-Endpunkt, keine SDK-Methode und keine Kompatibilitätsgarantie. Vor einer Implementierung müssen Authentifizierung, Grenzwerte, Serialisierung und Fehlertransport festgelegt und getestet werden.

Identität ist kein Abgleich per Namen

Zwei Quellen können denselben Vorgang unterschiedlich benennen. Für die Zuordnung braucht es eine explizite Abgleichregel mit Herkunft und Konfliktbehandlung. Gleiche Namen allein sind kein Identitätsbeweis. Eine zusammengeführte Sicht bewahrt die ursprünglichen Quellkennungen.

Lesen und Ändern auseinanderhalten

Ein Leseresultat ist eine Momentaufnahme. Eine geplante Handlung nennt zusätzlich die erwartete Version. Hat sich die Sache inzwischen geändert, wird neu gelesen und geprüft. Der Vertrag erlaubt keine stille Überschreibung einer jüngeren Änderung.

Schutz am Objekt erhalten

Begriff · Beziehung

Eine benannte Verbindung zwischen Objekten, etwa: Objekt A gehört zu Objekt B. Die Verbindung braucht selbst einen Quellenbezug.

Beziehungen im Abbild modellieren

Das Objekt darf nur Eigenschaften enthalten, die der aufrufende Kontext lesen darf. Ein abgeleiteter Name, eine Beziehung oder eine Trefferzahl kann ebenfalls geschützte Information verraten. Die Zugriffskontrolle muss deshalb auch Ausgaben und Verknüpfungen behandeln.

Zusammengesetzter Typ: SourceRef

Jeder Eintrag in sources benennt genau eine Beobachtung in einer Quelle. Die Zeit gehört zur jeweiligen Beobachtung; die Frische des Gesamtobjekts ersetzt sie nicht. Auch dieser zusammengesetzte Typ ist ein Entwurf.

sourceId: string, Pflicht
Stabile Kennung der angebundenen Quelle.
recordId: string, Pflicht
Kennung des Datensatzes innerhalb dieser Quelle.
observedAt: string (date-time), Pflicht
Zeitpunkt, zu dem genau dieser Datensatz beobachtet wurde.
sourceRevision: string | null, Pflicht
Quellrevision, falls verfügbar. null bedeutet unbekannt und darf nicht als unverändert gelten.

Die Kennung der Quelle überträgt kein Zugriffsrecht. Vor dem Lesen muss der aktuelle Zugriffskontext gegen die Quelle geprüft werden.

Schema

{
  "id": "<objekt-kennung>",
  "type": "<objekttyp>.v1",
  "version": <version>,
  "properties": {
    "state": "<zustand>"
  },
  "sources": [
    {
      "sourceId": "<quelle>",
      "recordId": "<datensatz>",
      "observedAt": "<zeitpunkt>",
      "sourceRevision": null
    }
  ],
  "observedAt": "<zeitpunkt>",
  "classification": "internal",
  "accessPolicyRef": "<zugriffsregel>"
}
Schema 1JSON · Schema mit Platzhaltern

Felder

FeldTypPflichtBedeutung
idstringjaStabile, innerhalb der Organisation eindeutige Kennung. Ein Namenswechsel ändert sie nicht.
typestringjaVersionierter Objekttyp, etwa <objekttyp>.v1. Kein frei interpretierter Modelltext.
versionintegerjaMonoton steigende Revision. Grundlage für die Erkennung konkurrierender Änderungen.
propertiesobjectjaEigenschaften gemäß dem Schema des Objekttyps. Unbekannte Felder werden zurückgewiesen.
sourcesSourceRef[]jaQuellenkennung, Datensatzkennung und Beobachtungszeit. Kein Kopieren geheimer Zugangsdaten.
observedAtstring (date-time)jaZeitpunkt der Beobachtung in der Quelle. Kein Beweis für Aktualität ohne Frischegrenze.
classificationstringjaSchutzklasse. Ein Standardwert darf fehlende Einstufung nicht als öffentlich ausgeben.
accessPolicyRefstringjaReferenz auf die geltende Zugriffsregel. Die Referenz erteilt selbst kein Recht.

Fehlerfälle

KennungBedeutung
OBJECT_SCHEMA_INVALIDEin Pflichtfeld oder dessen Typ passt nicht zum Objektschema.
SOURCE_NOT_READABLEDer aufrufende Kontext darf die Herkunft nicht lesen.
VERSION_CONFLICTEine Änderung basiert auf einer überholten Revision.

Grenze

Grenze
Dieser Schnittstellenvertrag ist geplant. Ein lokaler Kontrollprototyp belegt weder eine veröffentlichte API noch organisationsweiten Betrieb.

Verwandte Seiten