Releases: cedar-policy/cedar
Releases · cedar-policy/cedar
v4.4.0
Release 4.4.0, available on crates.io
Cedar Language Version: 4.3
Added
- Stabilized RFC 76, removing the experimental
level-validatefeature flag. That functionality is now available without the feature flag. Stabilization comes with changes to fix bugs in the features. Level validation is now more permissive when checkingifexpressions (fixing #1507), and stricter when checking record literals and entity tag operations (fixing #1505 and #1503). (#1567) - Implemented RFC 53 (enumerated entity types) (#1377)
- Stabilized RFC 80 (
datetimeextension), makingdatetimea default feature. (#1541) - Added
Entities::remove_entities()to removeEntitys from anEntitiesstruct (#1453, resolving #701) - Added
PolicySet::merge()to merge aPolicySetinto anotherPolicySetstruct (#1476, resolving #610) - Added
to_cedarfunctions forPolicySet,Policy, andTemplatethat render the policy in the Cedar syntax. These functions can be used to convert JSON formatted policies into the human-readable syntax (#1510, resolving #461) - Added
Validator::schema()to get a reference to theSchemaeven after it has been consumed to construct aValidator(#1524) - Added
Schema::request_envs()to get all of theRequestEnvs that are valid according to the schema. (This joins the existingPolicy::get_valid_request_envs()andTemplate::get_valid_request_envs()that return the subset of request envs that are valid for a particular policy or template.) (#1547) - Added
EntityId::unescaped(), analogous toEntityId::escaped(). This is simply an alias forEntityId::as_ref()with theAsRefimpl that produces&str. (#1555) - Added
PartialResponse::unknown_entitiesmethod (#1557) - Added
Entities::lenandEntities::is_emptymethods (#1562, resolving #1523)
Changed
- Changed
Entities::add_entitiesandEntities::from_entitiesto ignore structurally equal entities with the same Entity UID. - For
protobufsexperimental feature, a number of changes to the interface and the Protobuf format definitions, as we continue to iterate towards making this feature stable. (#1488, #1495, #1506, #1535) - Bump MSRV to 1.81 (#1542)
HierarchyNotRespectedvalidation error is no longer returned (although the error variant remains, to avoid a breaking change). This means that in some edge cases, policies that previously failed to validate under strict validation will now pass validation, probably with anImpossiblePolicywarning. (#1355, resolving #638)
v4.3.3
Release 4.3.3, available on crates.io
Changed
Fixed
- Fixed the experimental
protobufsfeature so that code depending oncedar-policy
with this feature now successfully builds, even if that code is not part of the
same Cargo workspace ascedar-policy,cedar-policy-core, etc (#1452). - Fixed a bug in the experimental
entity-manifestfeature. If an entity appears as
both a possible value for a scope variable and an entity literal, slicing
using entity manifests will now correctly capture all necessary attributes (#1429). - Fixed a bug in the experimental
entity-manifestandlevel-validate
features. These features failed to consider any attribute accesses occurring
inside the guard of anifexpression when guard expression had a singleton
boolean type (#1462).
v4.3.2
Release 4.3.2, available on crates.io
Cedar Language Version: 4.2
Fixed
- Assume sufficient stack space when it cannot be determined (#1446, resolving #1443). Note that on platforms not supported by
stacker(e.g., Wasm, Android), this means that large inputs may result in stack overflows and crashing the process. On all platforms supported bystacker(Linux, macOS, ...), Cedar will continue to return the graceful errorRecursionLimitinstead of crashing.
v4.3.1
v4.3.0
Release 4.3.0, available on crates.io
Cedar Language Version: 4.2
Added
- Implemented RFC 62 (extended
hasoperator) (#1327, resolving #1329) - Implemented RFC 80 (
datetimeextension) as an experimental feature under flagdatetime(#1276, #1415) - Added new
.isEmpty()operator on sets (#1358, resolving #1356) - Implemented RFC 48 (schema annotations) (#1316)
- Implemented RFC 74 (entity manifests and slicing) behind the experimental
entity-manifestflag (#1239) - Added protobuf schemas and (de)serialization behind the experimental
protobufsflag (#1277, #1345) - New
Entity::new_with_tags()andEntity::tag()functions (#1402, resolving #1374) - Added
Request::contextandContext::getmethods to allow easy extraction of values from the context by key (#1318) - For the
partial-evalexperimental feature, addedPartialResponse::reauthorize_with_bindingsto accept substitutions from an iterator and deprecatedPartialResponse::reauthorize(#1387) - For the
partial-evalexperimental feature, addedRequestBuild::unknown_principal_with_typeandRequestBuild::unknown_resource_with_typemethods, allowing an unknown principal or resource to be constrained to a certain entity type (#1391) - Added
Cloneimplementations for more types (#1324)
Changed
- Stopped emitting warnings for identifiers containing certain printable ASCII
characters (e.g.,/and:) (#1336, resolving #621)
Fixed
v4.2.2
Release 4.2.2, available on crates.io.
Changed
- The error associated with parsing a non-existent extension function additionally
includes a suggestion based on available extension functions (#1280, resolving #332). - The error associated with parsing a non-existent extension method additionally
includes a suggestion based on available extension methods (#1289, resolving #246). - Improved entity validation speed, particularly for large schemas with many
actions (#1290 and #1296, resolving #1285)
Fixed
v4.2.1
Release 4.2.1, available on crates.io
Changelog
- Fixes a minor issue preventing docs from building on docs.rs
v4.2.0
Release 4.2.0, available on crates.io.
Cedar Language version: 4.1
Added
- Added
sub_entity_literalsAPI (#1233). - Added level validation RFC 76 as an experimental feature.
- Annotations without explicit values. It is now possible to write an annotation
@my_annotationas
short-hand for@my_annotation("")(#1231, resolving #1031). - Stabilized RFC 82, removing
the experimentalentity-tagsfeature flag. That functionality is now available
without the feature flag.
Changed
v4.1.0
Release 4.1.0, available on crates.io.
Added
- Added
get_entity_literalsAPI (#1149). - Implemented RFC 82, adding
entity tags to the Cedar language under experimental flagentity-tags(#1204, #1207, #1213, #1218) - Added public APIs to get language and SDK version numbers (#1219).
Fixed
- The formatter will now consistently add a trailing newline. (resolving #1217)
v3.4.1
Release 3.4.1, available on crates.io
Fixed
- The schema format conversion method
SchemaFragment::to_cedarschemawill now
return a name collision error when trying to convert a schema where any
namespaced type name collides with an unqualified type. This avoids a
situation where format conversion could change the target of an entity type
reference. (#1212, resolving #1063) This does not change what schema are
accepted by the parsing functions for either format.
Full Changelog: v3.4.0...v3.4.1