cedar-policy / cedar

Implementation of the Cedar Policy Language
https://www.cedarpolicy.com
Apache License 2.0
897 stars 80 forks source link

Entity Slicing: Support loading of particular entity ancestors #1171

Closed oflatt closed 2 months ago

oflatt commented 2 months ago

Description of changes

This PR extends entity manifests to describe in particular what Cedar ancestors are required. This can greatly reduce the data required, since entities may have many ancestors. This change is implemented by re-using the existing access trie data structure to describe all the ancestors required.

PR stack: https://github.com/cedar-policy/cedar/pull/1102 https://github.com/cedar-policy/cedar/pull/1105 https://github.com/cedar-policy/cedar/pull/1154 https://github.com/cedar-policy/cedar/pull/1156 https://github.com/cedar-policy/cedar/pull/1171 (This PR)

1196

https://github.com/cedar-policy/cedar/pull/1208

Issue #, if available

Checklist for requesting a review

The change in this PR is (choose one, and delete the other options):

I confirm that this PR (choose one, and delete the other options):

I confirm that cedar-spec (choose one, and delete the other options):

oflatt commented 2 months ago

Here's a slide that describes what this PR is doing:

image

In the actual implementation, these green "pointers" are actually implemented by storing another trie

shaobo-he-aws commented 2 months ago

Closed in favor of a single PR.