// 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 }

CEL (Common Expression Language) to szybki, przenośny i bezpieczny do stosowania w aplikacjach o wysokiej wydajności język wyrażeń. Język CEL został opracowany z myślą o umieszczeniu w aplikacji przy użyciu rozszerzeń typowych dla aplikacji i jest idealny do rozszerzania deklaratywnej konfiguracji, z której aplikacje mogą już korzystać.

Możesz używać języka CEL na przykład do filtrów listy połączeń z interfejsami API, ograniczeń weryfikacji buforów protokołów czy reguł autoryzacji dla żądań interfejsu API.

Przyspieszona ocena wyrażeń w ścieżkach z nanosekundami do mikrosekund, które mają kluczowe znaczenie dla wydajności.
Łatwy dla programistów, lekki, o wspólnej składni w wielu systemach Google i zewnętrznych.
Obsługuje ustawienia podrzędne i rozszerzenia, można je łatwo umieścić na stronie oraz dostosować do konfiguracji i wymagań dotyczących zasad.
Niekompletna edycja i dostęp tylko do danych dostarczonych przez aplikację hosta.

Język CEL sprawdza się w aplikacjach, w których kluczowe znaczenie ma wydajność, ponieważ umożliwia bezpieczną i szybką ocenę danych (od nanosekund do mikrosekund) przy przewidywalnych kosztach. Wyrażenia CEL są szczególnie przydatne w przypadku logiki predykatów i prostych przekształceń danych.

Język CEL jest najczęściej używany w aplikacjach, w których wyrażenia są oceniane często, ale rzadko modyfikowane. Na przykład porównanie żądania HTTP z zasadami zabezpieczeń jest doskonałym przykładem użycia języka CEL. Wyrażenie zasady zabezpieczeń CEL wiąże się z jednorazowym kosztem konfiguracji na potrzeby weryfikacji wyrażenia, a następnie jest oceniane bardzo często przy minimalnym koszcie.

Ciągle nie masz pewności? Zapoznaj się z ogólnymi informacjami na temat języka CEL i definicją języka lub po prostu nas o to poproś. Chętnie Ci pomożemy.

Chcesz pomóc projektowi CEL? Wnieś swój wkład do naszego kodu open source i w dokumentacji. Chętnie pomożemy.