📌 O que é CEL (Common Expression Language)
CEL é uma linguagem de expressão projetada para ser:
- Rápida — avalia expressões em tempo crítico de forma eficiente. (Common Expression Language)
- Portátil — com sintaxe comum em várias plataformas e sistemas. (Common Expression Language)
- Segura — não é Turing-completa e só acessa dados fornecidos pelo aplicativo host, o que evita execução arbitrária de código. (Common Expression Language)
- Extensível — fácil de adaptar com funções e tipos para necessidades específicas de cada aplicação. (Common Expression Language)
Ela foi criada para ser incorporada em aplicações onde você precisa que usuários ou sistemas possam definir lógicas simples (como regras, filtros ou validações) avaliadas com desempenho previsível e seguro. (Common Expression Language)
🧠 Para que serve
CEL é usada para escrever expressões pequenas e poderosas que podem:
- validar dados (como regras de esquema ou campos)
- definir regras de autorização ou políticas
- filtrar listas ou eventos
- avaliar condições em tempo de execução
Por exemplo, você pode escrever lógicas como:
account.balance >= transaction.withdrawal
'user'.startsWith('u')Essas expressões são avaliadas dentro de um contexto fornecido pela própria aplicação, sem permitir loops infinitos ou execuções inseguras. (Common Expression Language)
⚙️ Onde CEL é usada (casos reais)
- Em Kubernetes: para declarar regras de validação e políticas diretamente na API do cluster sem precisar de webhooks externos. (Kubernetes)
- Em serviços como Google Cloud: filtragem e transformações de eventos usando regras expressas em CEL. (Google Cloud Documentation)
- Em outras ferramentas e plataformas que precisam oferecer configuração lógica segura e eficiente.
🆚 Características principais
| Característica | O que significa |
|---|---|
| Não-Turing completa | Não permite loops infinitos ou execução de código arbitrário, garantindo segurança. (Chromium) |
| Sintaxe simples | Parecida com expressões de linguagens como C, Java, Go ou JavaScript. (Chromium) |
| Foco em expressões | Cada programa CEL é essencialmente uma única expressão avaliada de forma eficiente. (Chromium) |
| Integrável | Pode ser incorporada em aplicações que precisam de lógica configurável pelo usuário. (Chromium) |
📌 Em resumo
CEL é uma linguagem de expressão rápida, segura e portátil para avaliação de lógicas pequenas, especialmente útil em configurações, validações e políticas embutidas em aplicações, APIs ou plataformas que exigem desempenho e segurança. (Common Expression Language)