Category
Other
Describe the feature you'd like to request
I have a valid, auto-generated 5000 line schema of Kubernetes types, and tried out the cedar-lean-cli analyze compare command.
I tried comparing two policysets that should be equivalent, namely:
simple1.cedar
permit (
principal == k8s::User::"lucas",
action == k8s::Action::"create",
resource is core::configmaps
);
simple2.cedar
permit (
principal == k8s::User::"lucas",
action == k8s::Action::"create",
resource is core::configmaps
) when {
resource.name != "foo"
};
permit (
principal == k8s::User::"lucas",
action == k8s::Action::"create",
resource is core::configmaps
) when {
resource.name == "foo"
};
Then I ran
time cedar-lean-cli analyze compare simple1.cedar simple2.cedar api.cedarschema
which took around 4 minutes. I wondered why it's so slow, until I waited for the output, and found out it does the checks for every request environment. That makes sense for sure, but in my case I guess it's known that all request environments not targeted by either policy must be the same, without checking.
There were 1707 request environments, it (only) took on average 146ms to evaluate a fully empty request environment with lots of schema, but no policy attached.
So I guess that could be an optimization to cut a significant amount of time from larger policy comparisons.
Describe alternatives you've considered
Additional context
Is this something that you'd be interested in working on?
Category
Other
Describe the feature you'd like to request
I have a valid, auto-generated 5000 line schema of Kubernetes types, and tried out the
cedar-lean-cli analyze comparecommand.I tried comparing two policysets that should be equivalent, namely:
simple1.cedarsimple2.cedarThen I ran
which took around 4 minutes. I wondered why it's so slow, until I waited for the output, and found out it does the checks for every request environment. That makes sense for sure, but in my case I guess it's known that all request environments not targeted by either policy must be the same, without checking.
There were 1707 request environments, it (only) took on average 146ms to evaluate a fully empty request environment with lots of schema, but no policy attached.
So I guess that could be an optimization to cut a significant amount of time from larger policy comparisons.
Describe alternatives you've considered
Additional context
Is this something that you'd be interested in working on?