// 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) 是一種運算式語言,具備快速、可攜性,且能在著重效能的應用程式中安全執行。CEL 能夠嵌入含有應用程式專屬擴充功能的應用程式,非常適合用來擴充應用程式可能已使用的宣告式設定。
使用 CEL 來處理 API 呼叫的清單篩選器、通訊協定緩衝區的驗證限制,以及 API 要求的授權規則。
快
針對重要效能路徑 (從奈秒到微秒) 加速評估運算式。
攜帶
開發人員易於使用,並以通用語法搭配多個 Google 和外部系統使用。
可擴充
支援子設定和擴充功能,可輕鬆嵌入並依設定和政策規定調整。
Safe
不會擷取完整作業,且只會存取主機應用程式提供的資料。
CEL 適合您的專案嗎?
CEL 的設計宗旨是要以安全又快速 (奈秒到微秒) 的可預測成本進行評估,因此非常適合用於重要效能的應用程式。CEL 運算式特別適合用於述詞邏輯和簡易資料轉換。
在經常評估運算式,但很少修改的應用程式中,CEL 的使用最有效率。舉例來說,根據安全性政策評估 HTTP 要求是 CEL 的絕佳用途。CEL 安全性政策運算式會有一次性設定費用來驗證運算式,然後頻繁地評估費用,費用可忽略不計。
仍然有疑問嗎?歡迎參閱 CEL 總覽和語言定義,或直接說出來向我們提問!我們 很樂意幫忙。
為 CEL 貢獻心力
想要協助 CEL 專案嗎?對我們的開放原始碼和說明文件做出貢獻。我們很樂意提供協助!