Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Entity Slicing: Type-annotated entity manifests #1196

Conversation

oflatt
Copy link
Contributor

@oflatt oflatt commented Sep 11, 2024

Description of changes

This PR adds type-annotated entity manifests to Cedar. It does so via a post-pass over the entity manifest instead of adding the types at analysis time. This design enables easy serialization and deserialization, as long as type annotations are added again after deserialization.

This will enable a smarter API that can traverse the entity manifest in a type-aware way. The entity loader can provide subsets of the entity manifest that don't have entity dereferences, simplifying the problem to loading single entities.

PR stack:
#1102
#1105
#1154
#1156
#1171
#1196 (This PR)
#1208

Issue #, if available

Checklist for requesting a review

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

  • A breaking change requiring a major version bump to cedar-policy (e.g., changes to the signature of an existing API).
  • A backwards-compatible change requiring a minor version bump to cedar-policy (e.g., addition of a new API).
  • A bug fix or other functionality change requiring a patch to cedar-policy.
  • A change "invisible" to users (e.g., documentation, changes to "internal" crates like cedar-policy-core, cedar-validator, etc.)
  • A change (breaking or otherwise) that only impacts unreleased or experimental code.

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

  • Updates the "Unreleased" section of the CHANGELOG with a description of my change (required for major/minor version bumps).
  • Does not update the CHANGELOG because my change does not significantly impact released code.

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

  • Does not require updates because my change does not impact the Cedar formal model or DRT infrastructure.
  • Requires updates, and I have made / will make these updates myself. (Please include in your description a timeline or link to the relevant PR in cedar-spec, and how you have tested that your updates are correct.)
  • Requires updates, but I do not plan to make them in the near future. (Make sure that your changes are hidden behind a feature flag to mark them as experimental.)
  • I'm not sure how my change impacts cedar-spec. (Post your PR anyways, and we'll discuss in the comments.)

@oflatt oflatt marked this pull request as ready for review September 11, 2024 19:47
@oflatt oflatt changed the title Type-annotated entity manifests Entity Slicing: Type-annotated entity manifests Sep 16, 2024
@shaobo-he-aws
Copy link
Contributor

Closed in favor of a single PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants