Skip to content

cel_type

A policy diagnostic from deedglass policy lint and the policy routes.

Severity: error

An expression does not type-check: an operator or function is applied to values of the wrong types. The most common case is comparing a value with a quoted number using <, <=, > or >=: a quoted number is a string, and strings compare letter by letter, so "10000" < "5000".

deedglass: policy/v1
name: refunds
defaults:
decision: deny
reason: No rule allows this action.
rules:
- id: small-refunds
match: { tool: stripe.create_refund }
when: args.amount <= "5000"
decision: allow
✕ policy.yaml:9:26 · cel_type
args.amount <= "5000" compares a number with a string.
hint: Compare numbers with numbers: args.amount <= 5000 (minor units, so 5000 is $50.00).

Fix:

when: args.amount <= 5000