Skip to content
Zurück zur Startseite

§ DOCUMENTATION

Richtlinienverkettung

Ordnen Sie Richtlinien mit expliziten Voraussetzungen an. Überspringen Sie aufwändige Prüfungen, wenn eine günstigere vorgelagerte Richtlinie bereits entschieden hat. Eskalieren Sie nur dann, wenn die erste Verteidigungslinie angeschlagen hat.

§ 01

Wozu Richtlinien verketten?

Jede Durchsetzungsanfrage führt alle anwendbaren Richtlinien aus. Die Verkettung erlaubt es Ihnen, Abhängigkeiten auszudrücken, ohne dieses Standardverhalten zu ändern:

  • Einen aufwändigen Validator nur dann ausführen, wenn eine günstige vorgelagerte Prüfung bestanden wurde.
  • Zur menschlichen Freigabe eskalieren, nur wenn eine PII- oder Injection-Richtlinie bereits angeschlagen hat.
  • Reihenfolge garantieren – z. B. den Sanitizer immer vor dem Klassifizierer ausführen.
§ 02

Felder

FeldTypBedeutung
prerequisitesUUID[]IDs anderer Richtlinien, die zuerst ausgewertet werden müssen. Max. 20. Standard: [].
evaluationOrderint 0–100000Stabiler Tiebreaker, wenn die Voraussetzungen keine vollständige Reihenfolge ergeben. Standard: 100.
chainTriggerenumLegt fest, wie die Kette entscheidet, ob diese Richtlinie ausgewertet wird. Siehe Trigger-Tabelle unten.
§ 03

Trigger

TriggerDiese Richtlinie auswerten, wenn …
all_passedJede Voraussetzung hat keine Verletzung zurückgegeben. Standard – verwenden Sie diesen Trigger, wenn die Kette eine aufwändige Verfeinerung günstiger vorgelagerter Prüfungen darstellt.
any_violatedMindestens eine Voraussetzung wurde verletzt. Für Eskalationen geeignet – z. B. eine Freigabeanfrage nur erstellen, wenn bereits etwas ausgelöst hat.
alwaysVoraussetzungen beeinflussen nur die Reihenfolge. Verwenden Sie diesen Trigger, wenn Sie eine deterministische Abfolge benötigen, die Kette aber stets ausgeführt werden soll.
§ 04

Beispielkette

# Richtlinie A — günstig, schnell, läuft immer{ "name": "pii-guard", "policyType": "pii_access", ... } # Richtlinie B — läuft nur, wenn A bestanden hat{  "name": "finance-cost-cap",  "policyType": "expression",  "ruleDefinition": { "expression": "cost > 1.0" },  "prerequisites":   ["<policy-A-id>"],  "evaluationOrder": 200,  "chainTrigger":    "all_passed"} # Richtlinie C — eskaliert, wenn A oder B verletzt wurde{  "name": "security-review",  "policyType": "custom_validator",  "ruleDefinition": { "validatorId": "..." },  "prerequisites":   ["<policy-A-id>", "<policy-B-id>"],  "evaluationOrder": 300,  "chainTrigger":    "any_violated"}
§ 05

Zykliserkennung

Zyklen werden beim Schreiben abgelehnt – innerhalb derselben Transaktion wie das Insert oder Update. Ein DFS durchläuft jede Voraussetzungskette vor dem COMMIT. Wird ein Zyklus erkannt, schlägt die Anfrage mit HTTP 400 fehl und enthält einen Breadcrumb des fehlerhaften Pfads:

HTTP/1.1 400 Bad RequestContent-Type: application/json {  "error": {    "code": "VALIDATION_ERROR",    "message": "Policy prerequisites would introduce a cycle",    "fields": { "prerequisites": "cycle: A → B → C → A" }  }}

Da Zyklen die Datenbank nie erreichen, muss sich die Laufzeitauswertung nicht damit befassen. Der einzige Fehlerfall zur Durchsetzungszeit ist eine fehlende Voraussetzung – etwa weil die vorgelagerte Richtlinie gelöscht oder deaktiviert wurde. In diesem Fall wird die abhängige Richtlinie als skipped erfasst (Fail-Closed für die Kette, nicht für die Anfrage), und ein Audit-Ereignis wird ausgelöst.

§ 06

Beobachtbarkeit

  • policy.chain.skipped — wird ausgelöst, wenn eine Trigger-Bedingung nicht erfüllt ist und die Richtlinie übersprungen wird.
  • policy.chain.cycle_detected — wird ausgelöst, wenn ein Zyklusversuch beim Schreiben abgelehnt wird.
  • Trace-Entscheidungen enthalten eine skippedByChain-Aufschlüsselung, sodass Ketten im Nachhinein rekonstruierbar sind.
§ 07

Eine Kette über die CLI einsehen

Mit execlave policies chain sehen Sie die vollständige Auswertungsreihenfolge; mit execlave policies chain --id <policy-id> listen Sie die Voraussetzungen einer bestimmten Richtlinie und ihre nachgelagerten Abhängigen auf. Fehlende Voraussetzungen werden rot markiert, damit Abweichungen erkannt werden, bevor sie zur Laufzeit als stilles Überspringen auftauchen.

$ execlave policies chain# ORDER  NAME               TYPE            TRIGGER       PREREQS# 10     pii-guard          pii_access      all_passed    —# 200    finance-cost-cap   expression      all_passed    1# 300    security-review    custom_validator any_violated 2
Richtlinienverkettung — Execlave Docs