Summary

  • draft-wei-capability-language-core-00 definiert allow_unresolved als eigenen Wert: Eine Auflage ist bekannt, aber Evidenz oder Evaluator reichen noch nicht zur Entscheidung.
  • Der Consumer muss die normalisierte Restmenge erhalten, alle konjunktiven Auflagen auflösen und bei Verletzung oder nicht auflösbarem Zustand ablehnen.
  • Ein im Zeitfenster korrekt erzeugtes allow endet mit diesem Fenster. Ein Cache darf aus einer Momentaufnahme keine dauerhafte Befugnis machen.

Der Berechtigungsfehler im Adapter

Nehmen wir einen Schlüsselwechsel, der zwischen 01:30 und 01:40 zulässig ist. Die Capability nennt außerdem ein Administrationsnetz. CLC bestätigt das Netz, erhält aber kein verlässliches now. Revision 00 antwortet deshalb mit allow_unresolved und transportiert die Zeitauflage weiter.

Der Wert ist keine eingeschränkte Freigabe. Die Autorisierungsrechnung ist offen. Der Consumer muss vertrauenswürdige Zeit beschaffen, eine resolution liefern und Resolve ausführen; andernfalls lehnt er ab.

Gefährlich sind gewöhnliche Abkürzungen: Ein Binding macht aus jedem Nicht-Null-Enum true, ein Gateway setzt HTTP 200 mit Erlaubnis gleich, ein Workflow kennt nur Erfolg und Fehler. So wird der scheinbar neutrale Adapter zur letzten Entscheidungsinstanz.

Erkannte Syntax ist kein erfüllter Zustand

CLC bleibt gegenüber dem Carrier neutral. Ob ein natives Token echt ist und welchem Aussteller vertraut wird, klärt die Umgebung. Auch die Aktion selbst liegt außerhalb der Sprache. Der Kern bewertet eine gemeinsame Ausdrucksform und zeigt an, wo seine Beobachtung endet.

Revision 00 kennt Kernbedingungen für Uhr und Netz. Sie kann deren Form parsen, normalisieren und weitergeben. Daraus entsteht weder eine vertrauenswürdige Uhr noch eine aktuelle Netzbeobachtung. Würde eine bekannte, aber nicht evaluierbare Bedingung verschwinden, verließe die Capability den Kern mit größerer Befugnis.

Darum bleibt sie in unresolved. Mehrere Bedingungen desselben scheme/type gelten gemeinsam. First-wins, last-wins oder eine Auswahl per OR schreiben die Policy neu. Wirklich gleiche Duplikate dürfen zusammenfallen; unterschiedliche Pflichten nicht.

Auch die Sortierung ist festgelegt: maßgeblich sind UTF-8-Bytes, nicht die Standardreihenfolge einer Laufzeit. ECMAScripts übliche UTF-16-Sortierung ist nicht automatisch gleichwertig. Determinismus stellt sicher, dass beide Seiten dieselbe Restschuld sehen. Er begleicht sie nicht.

Resolve ist Teil der Entscheidung

Resolve verarbeitet die erste Entscheidung und die Zustände der offenen Pflichten. Sobald eine violated ist, folgt deny. Nur wenn alle satisfied sind, folgt allow. Bleibt eine unknown, bleibt auch allow_unresolved. Fehlerhafte Resolutionen und ungültige Zeitstempel führen zur Ablehnung.

Ein prüfbarer Datensatz muss Sprachrevision, native Prüfung, erstes Enum, genaue Restmenge, Identität und Version der Evaluatoren, Evidenzreferenz, Beobachtungszeit, Einzelzustände, End-Enum und freigegebene Aktion verbinden. Der Eintrag „Resolver aufgerufen“ erklärt nicht, welche Evidenz welche Erlaubnis vollendet hat.

Im Evidenzpfad gibt es keinen entsprechenden Schwebezustand: unbekannte Evidenz ist UNSATISFIED. Das verhindert, dass ehrliche Unvollständigkeit in der Autorisierung zu Nachsicht bei fehlenden Belegen wird.

Die Freigabe um 01:39 endet um 01:40

Eine vertrauenswürdige Uhr zeigt 01:39; die Zeitauflage ist erfüllt und Resolve darf allow liefern. Um 01:41 beschreibt dieses Ergebnis die Lage nicht mehr. Seine Wiederverwendung aus einem Cache ist eine neue Entscheidung ohne neue Beobachtung.

Ein Cache-Schlüssel aus Subjekt, Ressource und Aktion reicht deshalb nicht. Kontext, Resolution-Zeit und das früheste Segmentende müssen die Lebensdauer begrenzen. RFC 3339 vereinheitlicht Zeitdarstellung, bestimmt aber weder Vertrauensuhr noch tolerierte Abweichung.

Containment ersetzt die Prüfung ebenfalls nicht. Eine Capability kann strukturell innerhalb einer anderen liegen und jetzt trotzdem unzulässig sein. Sie kann korrekt normalisiert, aber aus einem nicht vertrauenswürdigen Carrier stammen. Selbst allow beweist weder Ausführung noch Wirkung.

Heng Lus Reality Layers halten diese Ebenen auseinander: Capability-Text, normalisierte Repräsentation, Betriebsbeobachtung, Aktion und Ergebnis. Eine Minimum Initial Specification kann die Übergabe der offenen Pflicht standardisieren, ohne lokale Trust- und Folgeentscheidungen zu beanspruchen.

Revision 00 nennt 123 Conformance-Vektoren, 1.184 Property-Fälle und drei Implementierungen. Das ist nützliche Running-Code-Evidenz. Die drei teilen jedoch einen Autor; die im Draft genannte Schwelle unabhängiger Implementierung ist nicht erreicht. Unabhängige Tests müssen Enum-Bindings, UTF-8-Reihenfolge, wiederholte Bedingungen, unknown, ungültige Zeiten und den exakten Cache-Ablauf abdecken, bevor Interoperabilität als erwiesen gilt.

Sources and limits

Diese Quellen belegen einen aktiven individuellen Internet-Draft, sein öffentliches Korpus und verwandte Spezifikationen. Sie belegen keinen IETF-Konsens, RFC, WG-Adoption, unabhängige Sicherheitsprüfung, breite Einführung, Carrier-Vertrauen oder Betriebsergebnis. Dieser Artikel behandelt nur den Kanal erkannter, nicht evaluierter Bedingungen, die Resolve-Schleife und das Zeitfenster von Revision 00.