// 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 和外部系統使用。
安全
不會擷取完整作業,且只會存取主機應用程式提供的資料。
可正式驗證
使用 Z3 等自動化 SMT 求解器,證明所有輸入內容的正確性、安全不變量和等價性。
CEL 適合您的專案嗎?
CEL 的設計宗旨是要以安全又快速 (奈秒到微秒) 的可預測成本進行評估,因此非常適合用於重要效能的應用程式。CEL 運算式特別適合用於述詞邏輯和簡易資料轉換。
在經常評估運算式,但很少修改的應用程式中,CEL 的使用最有效率。舉例來說,根據安全性政策評估 HTTP 要求是 CEL 的絕佳用途。CEL 安全性政策運算式會有一次性設定費用來驗證運算式,然後頻繁地評估費用,費用可忽略不計。
仍然有疑問嗎?歡迎參閱 CEL 總覽和語言定義,或直接說出來向我們提問!我們 很樂意幫忙。
AI 代理時代的正式驗證
由於 AI 代理程式會編寫、重構及部署政策,啟發式單元測試可能無法涵蓋無限輸入內容的極端情況。CEL 正式驗證架構採用 Z3 定理證明器,可讓開發人員以數學方式證明政策正確性、檢查 AST 等價性,並確保整個輸入空間的安全不變量。
以數學上的確定性,找出細微的邏輯瑕疵、強制執行詳盡的防護機制,以及安全地自動編寫政策。
為 CEL 貢獻心力
想要協助 CEL 專案嗎?對我們的開放原始碼和說明文件做出貢獻。我們很樂意提供協助!