// Simple predicates
'tacocat'.startsWith('taco')

// Parameterized predicates over structured data
account.balance >= transaction.withdrawal

// JSON objects
{'sub': '12345678',
 'aud': 'example2.cel.dev',
 'iss': 'https://example1.cel.dev/jwt-issuer'}

// Strongly typed objects
common.GeoPoint{ latitude: 10.0, longitude: -5.5 }

Common Expression Language (CEL) ist eine Ausdruckssprache, die schnell, portabel und sicher in leistungskritischen Anwendungen ausgeführt werden kann. CEL wurde für die Einbettung in eine Anwendung entwickelt und umfasst anwendungsspezifische Erweiterungen. Es eignet sich ideal zur Erweiterung deklarativer Konfigurationen, die Ihre Anwendungen möglicherweise bereits verwenden.

Verwenden Sie CEL beispielsweise für Listenfilter für API-Aufrufe, Validierungsbeschränkungen für Protokollpuffer und Autorisierungsregeln für API-Anfragen.

Beschleunigte Auswertung von Ausdrücken in leistungskritischen Pfaden von Nanosekunden bis Mikrosekunden
Entwicklerfreundlich, leicht und mit gemeinsamer Syntax für mehrere Google- und externe Systeme.
Non-Turing abgeschlossen und es wird nur auf Daten zugegriffen, die von der Host-Anwendung bereitgestellt werden.
Korrektheit, Sicherheitsinvarianten und Äquivalenz für alle Eingaben mit automatisierten SMT-Solvern wie Z3 nachweisen.

CEL eignet sich ideal für leistungskritische Anwendungen, da es für eine sichere und schnelle Bewertung (Nanosekunden bis Mikrosekunden) mit vorhersehbaren Kosten konzipiert wurde. CEL-Ausdrücke sind besonders nützlich für Prädikatlogik und einfache Datentransformationen.

CEL wird am effizientesten in Anwendungen verwendet, in denen Ausdrücke häufig ausgewertet, aber selten geändert werden. Beispielsweise ist das Auswerten einer HTTP-Anfrage anhand einer Sicherheitsrichtlinie ein hervorragender Anwendungsfall für CEL. Ein Ausdruck einer CEL-Sicherheitsrichtlinie würde einmalige Konfigurationskosten für die Validierung des Ausdrucks verursachen und wird dann sehr häufig mit vernachlässigbaren Kosten ausgewertet.

Sind Sie noch unsicher, welche Ihrer Properties betroffen sind? Sehen Sie sich die CEL-Übersicht und die Sprachdefinition an oder fragen Sie uns einfach! Wir helfen Ihnen gern weiter.

Da KI-Agents Richtlinien erstellen, umgestalten und bereitstellen, können heuristische Unittests Grenzfälle bei unendlich vielen Eingaben möglicherweise nicht abdecken. Das CEL Formal Verification Framework, das auf dem Z3-Theorem-Prover basiert, ermöglicht es Entwicklern, die Richtigkeit von Richtlinien mathematisch zu beweisen, die AST-Äquivalenz zu prüfen und Sicherheitsinvarianten im gesamten Eingabebereich zu garantieren.

Erkennen Sie subtile Logikfehler, erzwingen Sie umfassende Maßnahmen und sichern Sie die automatisierte Richtlinienerstellung mit mathematischer Sicherheit.

Sie möchten das CEL-Projekt unterstützen? Tragen Sie zu unserem Open-Source-Code und unserer Dokumentation bei. Wir freuen uns über Ihre Hilfe!