RECHTE RICHTLINIE, FALSCHE DATEN?
Früher dachte ich, dass das Bereitstellen einer Richtlinie der schwierige Teil sei. Regel schreiben, auf die Chain legen, den Vertrag verbinden, fertig.
Aber Newtons Deployment-Flow zeigt eine kleinere Fehlerstelle, die leicht übersehen wird.
Ein PolicyClient-Vertrag muss von NewtonPolicyClient erben, sich registrieren lassen und anschließend seine Richtlinienkonfiguration erhalten. Der Haken: Onchain-Policy-Parameter müssen als flaches JSON vorliegen und zu params_schema.json passen. Das Gateway liest diese Bytes direkt aus und übergibt sie an Rego als data.params.
Nutze stattdessen das verschachtelte CLI-Format, denn die Policy-Auswertung kann dann an einer Schema-Validierung scheitern – wegen einer fehlenden erforderlichen Eigenschaft.
Das hat meine Sicht auf die Policy-Sicherheit verändert. Eine Regel kann logisch korrekt sein und dennoch scheitern, weil die Daten, die bei ihr ankommen, die falsche Struktur haben.
@NewtonProtocol #Newt
$NEWT
$B
$PYR
Was also bricht zuerst eine gute Policy?
Früher dachte ich, dass das Bereitstellen einer Richtlinie der schwierige Teil sei. Regel schreiben, auf die Chain legen, den Vertrag verbinden, fertig.
Aber Newtons Deployment-Flow zeigt eine kleinere Fehlerstelle, die leicht übersehen wird.
Ein PolicyClient-Vertrag muss von NewtonPolicyClient erben, sich registrieren lassen und anschließend seine Richtlinienkonfiguration erhalten. Der Haken: Onchain-Policy-Parameter müssen als flaches JSON vorliegen und zu params_schema.json passen. Das Gateway liest diese Bytes direkt aus und übergibt sie an Rego als data.params.
Nutze stattdessen das verschachtelte CLI-Format, denn die Policy-Auswertung kann dann an einer Schema-Validierung scheitern – wegen einer fehlenden erforderlichen Eigenschaft.
Das hat meine Sicht auf die Policy-Sicherheit verändert. Eine Regel kann logisch korrekt sein und dennoch scheitern, weil die Daten, die bei ihr ankommen, die falsche Struktur haben.
@NewtonProtocol #Newt
$NEWT
$B
$PYR
Was also bricht zuerst eine gute Policy?
Bad rule logic
0%
Wrong data shape
0%
Setup mistakes
0%
Poor testing
0%
0 Stimmen • Abstimmung beendet