Ash.Policy.Authorizer.Transformers.CachePolicyExpressions (ash v3.37.2)

Copy Markdown View Source

Builds and simplifies the policy expressions at compile time.

Persists, for the resource's policies, the simplified boolean expression as a whole and one specialized for each action (with the action, action type and private action checks already resolved), as well as one expression per distinct set of field policies. At runtime the authorizer starts from these instead of rebuilding and simplifying the same expression for every request.

The resource's expressions are persisted as the open fold {one_condition_matches, all_policies_match}. For a domain, a template of its policies over that fold is persisted instead, and composed with the resource's at runtime (the domain's policies come before the resource's).

This is a persister, so it runs once every transformer (actions, policies, field policies) has finished.

Summary

Functions

after?(_)

Callback implementation for Spark.Dsl.Transformer.after?/1.

after_compile?()

Callback implementation for Spark.Dsl.Transformer.after_compile?/0.

before?(_)

Callback implementation for Spark.Dsl.Transformer.before?/1.

transform(dsl)

Callback implementation for Spark.Dsl.Transformer.transform/1.