-
Notifications
You must be signed in to change notification settings - Fork 15
Change the semantics of appliesTo
fields in the schema
#35
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
Conversation
Kesha @khieta, thank you for converting issue to the RFC, it looks great! |
@max2me Thanks for filing a clear issue that was easy to convert 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving as-is, but I do have a question about an alternative that's not currently discussed in the RFC.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new semantics sound good.
Offline discussion on backwards compatibility revealed that this RFC was more backwards compatible then we originally thought: omitting the |
appliesTo
fields in the schemaappliesTo
fields in the schema
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some nits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great. I'm not bothered by the backward incompatibility problem given here but if that's a showstopper then I'll wait to see what the proposed alternative might be.
Dismissing my approval (for now) pending resolution of the backwards compatibility / migration-related issues brought up in this thread and this thread. Whatever decision is reached should be reflected in the RFC text.
* Changed dates to YYYY-MM-DD format for consistency with other RFCs * Added a "landed" date * Removed the text about validation of unspecified entities, per discussion on RFC #35 --------- Co-authored-by: Craig Disselkoen <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added two new alternatives + an unresolved question to summarize our discussions so far 🎉 Starting fresh threads for more targeted discussion.
Update: re-starting discussion on this RFC 🎉 I've just pushed a major update that switches the proposal to what was originally "Alternative A". I feel that this is a more acceptable solution for users that currently have |
I don't see why this is inconsistent with RFC24. Maybe there's something I'm missing but I don't see why RFC24 needs to map exactly 1:1 to json format. There could be syntactic sugar to it. For instance, both of the following:
Could transpile to the same thing in json:
could they not? |
It's true that RFC24 doesn't need to map 1:1 to the JSON format: we can easily write a translator between the two syntaxes for the current proposal. In RFC24, |
I think we're all in agreement -- it is "inconsistent" which might be a poor UX / confusing for any folks dealing with both the JSON and RFC24 formats. But "inconsistent" does not mean "incompatible", and we can easily translate between the two even if they do not use precisely the same syntax for some edge cases. |
1. Require that either both `appliesTo.principalTypes` and `appliesTo.resourceTypes` are empty lists, or neither are. | ||
2. Disallow a missing `appliesTo` field. | ||
|
||
These changes remove some of the confusing behavior of the current implementation while maintaining backwards compatibility. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of "the current implementation", we could more precisely state "Cedar 2.x and 3.0" or even "Cedar 2.x and 3.x" (here and in other places in this RFC). The tradeoff is that as this RFC text lives to posterity, we may not keep updating this text with which Cedar versions have the described behavior. Nonetheless, the additional clarity might be worth it.
Co-authored-by: Craig Disselkoen <[email protected]>
Co-authored-by: Craig Disselkoen <[email protected]>
After much debate, we've decided to abandon this RFC for the following reasons:
|
Rendered
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.