Model @@allow | Supported | Supported | list, detail, read, create, update, delete |
Model @@deny | Supported | Supported | Deny precedence implemented |
Action alias all | Supported | Supported | Expands to list/detail/create/update/delete |
| Read action split | Supported in richer engines | Supported | list scopes find_many, detail scopes find_unique, read applies to both |
auth() != null | Supported | Supported | Model and procedure policies |
auth() == null | Supported | Supported | Model and procedure policies |
field == literal | Supported | Supported | Boolean, Int, String subset |
field != literal | Supported | Supported | Boolean, Int, String subset |
field == auth().field | Supported | Supported | Model and procedure subset |
field != auth().field | Supported | Supported | Model and procedure subset |
auth().field == modelField | Supported | Supported | Model and procedure subset |
auth().field != modelField | Supported | Supported | Model and procedure subset |
field == otherField | Supported in richer engines | Supported | Procedure policies only |
field != otherField | Supported in richer engines | Supported | Procedure policies only |
auth().field == literal | Supported | Supported | Model and procedure subset |
auth().field != literal | Supported | Supported | Model and procedure subset |
&& / || grouping | Supported | Supported | Parenthesized grouping supported in parser/lowering |
| Row-level read scoping | Supported | Supported | SQL-scoped on find_many / find_unique |
| Row-level update scoping | Supported | Supported | SQL-scoped |
| Row-level delete scoping | Supported | Supported | SQL-scoped |
| Create-time policy checks | Supported | Partial | Scalar/auth checks run in-memory; relation checks use DB lookups when join columns are present in create input/defaults |
| Create-time auth defaults | Supported | Partial | Only @default(auth().field) |
Procedure @allow | Supported | Supported | Runtime wrappers + routes |
Procedure @deny | Supported | Supported | Deny precedence implemented |
| Procedure input field checks | Supported | Supported | Direct args and args.<field> paths, with input/auth/input comparisons |
| DB-backed procedure auth | Supported in richer engines | Partial | @authorize(Model, action, args.path) delegates to model detail/update/delete auth by id |
| Structured principal context | Supported in richer engines | Partial | CoolContext now carries principal.actor/session/tenant/claims plus legacy auth() compatibility |
Relation-based auth like auth() == author | Supported | Supported | Single-column to-one relations that reference id |
Nested auth paths like auth().org.id | Supported in richer engines | Supported | Exact auth keys still win; dotted paths traverse nested auth maps |
| Relation traversal inside policies | Supported in richer engines | Partial | Recursive to-one and quantified to-many traversal are supported across model policies |
| Collection predicates in policies | Supported in richer engines | Partial | Supports dotted some / every / none relation segments inside model policies |
| Built-in policy functions | Supported in richer engines | Partial | hasRole('...') and inTenant('...') are supported as boolean terms in model and procedure policies |
| Arbitrary functions in policies | Supported in richer engines | Not supported | No custom policy function plugin layer beyond the built-in term set |
| Forced server-owned fields | Sometimes supported with richer semantics | Not supported | @default(auth().field) is fallback-only, not override-enforcement |
| Field-level read masking | Sometimes supported in richer stacks | Not supported | Model-level access only |
| Field-level write blocking | Sometimes supported in richer stacks | Not supported | Model-level access only |
| Post-update input-aware policies | Sometimes supported in richer stacks | Partial | Current update/delete checks are row-scoped SQL predicates |
| Durable external auth plugin engine | Sometimes supported via plugin/runtime systems | Not supported | Current engine is built-in and macro/runtime-local |