// 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 }
Schnelle, sichere Ausdruckssprache
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.
Schnell
Mobil.
Erweiterbar
Sicher
Ist CEL das Richtige für Ihr Projekt?
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.