Stand · Bauplan
Eine Freigabe bindet eine Entscheidung an eine konkrete beabsichtigte Handlung und einen begrenzten Geltungsbereich. Diese Referenz ist ein geplanter öffentlicher Vertrag; sie ist nicht das Tokenformat des vorhandenen Browser-Prototyps.
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.
Die Entscheidung an den Inhalt binden
Eine Freigabe für einen Vorschlag darf nicht für einen nachträglich geänderten Vorschlag gelten. Deshalb muss der Vertrag die entscheidungsrelevanten Werte eindeutig festhalten. Was nicht in die Bindung eingeht, ist durch diesen Mechanismus nicht geschützt.
Verbrauch muss atomar sein
Zwei gleichzeitige Aufrufe dürfen dieselbe Einmalkennung nicht beide erfolgreich verbrauchen. Im geplanten Betrieb braucht es dafür eine konsistente Verbrauchsstelle. Ein Flag im Browser reicht nicht für konkurrierende Prozesse oder einen Neustart.
Was der Prototyp tatsächlich zeigt
Begriff · HMAC
Ein Message Authentication Code auf Basis einer Hashfunktion und eines gemeinsamen Schlüssels. Wer den Schlüssel hat, kann gültige Werte erzeugen.
Die Browser-Vorführung verwendet HMAC-SHA256 für ein einmaliges, an eine Sache gebundenes Ja. Der Zustand liegt im Speicher des aktuellen Browserfensters. Ein MAC mit gemeinsamem Schlüssel ist keine öffentlich prüfbare digitale Signatur. Produktive Identitätsprüfung und Schlüsselverwaltung sind damit nicht nachgewiesen.
Schema
{
"id": "<freigabe-kennung>",
"actionRef": "<handlung-kennung>",
"actionDigest": "<pruefwert-der-handlung>",
"approvedBy": "<identitaet>",
"issuedAt": "<zeitpunkt>",
"expiresAt": "<zeitpunkt>",
"nonce": "<einmalkennung>",
"state": "issued",
"policyVersion": "<regelfassung>"
}Felder
| Feld | Typ | Pflicht | Bedeutung |
|---|---|---|---|
id | string | ja | Eindeutige Freigabekennung. |
actionRef | string | ja | Genau der vorbereitete Handlungsversuch. |
actionDigest | string | ja | Prüfwert der kanonisch serialisierten entscheidungsrelevanten Eingabe. Das Verfahren wird vor Implementierung festgelegt. |
approvedBy | string | ja | Verifizierte entscheidende Identität. Kein frei gesetzter Anzeigename. |
issuedAt | string (date-time) | ja | Ausstellungszeitpunkt. |
expiresAt | string (date-time) | ja | Spätester zulässiger Verbrauch. |
nonce | string | ja | Eindeutige Einmalkennung. Der Verbrauch muss atomar erfasst werden. |
state | enum | ja | issued, consumed, expired oder revoked. |
policyVersion | string | ja | Fassung der Regel zum Zeitpunkt der Entscheidung. |
Fehlerfälle
| Kennung | Bedeutung |
|---|---|
APPROVAL_EXPIRED | Die Geltungsdauer ist überschritten. |
APPROVAL_ALREADY_CONSUMED | Die Einmalkennung wurde bereits verwendet. |
APPROVAL_BINDING_MISMATCH | Ziel, Eingabe oder handelnde Identität stimmen nicht mit der Entscheidung überein. |
APPROVAL_REVOKED | Die Entscheidung wurde vor Ausführung widerrufen. |
Grenze
- Grenze
- Dieser Schnittstellenvertrag ist geplant. Ein lokaler Kontrollprototyp belegt weder eine veröffentlichte API noch organisationsweiten Betrieb.