You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+25-11Lines changed: 25 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -139,21 +139,31 @@ If you're looking to integrate Cedar into a production system, please be sure th
139
139
-`x/exp` - code in this directory is not subject to the semantic versioning constraints of the rest of the module and breaking changes may be made at any time.
140
140
- Variadics may be added to functions that do not have them to expand the arguments of a function or method.
141
141
- Concrete types may be replaced with compatible interfaces to expand the variety of arguments a function or method can take.
142
+
- Backwards compatibility is maintained for all Go minor versions released within 6 months of a release of cedar-go.
142
143
143
144
## Change log
144
145
145
-
### New features in 1.2.0
146
+
### 1.2.0
147
+
#### New Features
146
148
- Support for the .isEmpty() operator.
149
+
- A new top-level Authorize() function, which allows authorization against a generic policy iterator (`AuthorizationPolicySet`) instead of requiring a PolicySet. Like the EntityGetter interface does for entities, using a generic iterator enables policy to be retrieved from external sources or for policy to be selected dynamically by the iterator implementation without having to clone an entire PolicySet.
150
+
- batch.Authorize() likewise now also accepts an `AuthorizationPolicySet`.
151
+
- First class iterator support for EntityUIDSet, Record, Set, and PolicySet container types.
147
152
148
-
### New features in 1.1.0
153
+
#### Upgrading from 1.1.0
154
+
- cedar-go now requires Go 1.23
155
+
156
+
### 1.1.0
157
+
#### New features
149
158
- Support for entity tags via the .getTag() and .hasTag() operators.
150
159
151
-
### New features in 1.0.0
160
+
### 1.0.0
161
+
### New features
152
162
- AST builder methods for Cedar datetime and duration literals and their extension methods have been added
153
163
- AST builder methods for adding extension function calls with uninterpreted strings
154
164
- Small improvement in evaluation runtime performance for large, shallow entity graphs.
155
165
156
-
### Upgrading from 0.4.x to 1.0.0
166
+
####Upgrading from 0.4.x to 1.0.0
157
167
158
168
- The `Parents` field on `types.Entity` has been changed to an immutable set type with an interface similar to `types.Set`
159
169
- The `UnsafeDecimal()` constructor for the `types.Decimal` type has been removed and replaced with the following safe constructors, which return error on overflow:
@@ -174,12 +184,13 @@ If you're looking to integrate Cedar into a production system, please be sure th
174
184
-`PolicySet.Delete()` has been renamed to `PolicySet.Remove()`
175
185
-`types.Set()` now takes variadic arguments of type `types.Value` instead of a single `[]types.Value` argument
176
186
177
-
### New features in 0.4.0
187
+
### 0.4.0
188
+
#### New features
178
189
179
190
-`types.Set` is now implemented as a hash set, turning `Set.Contains()` into an O(1) operation, on average. This mitigates a worst case quadratic runtime for the evaluation of the `containsAny()` operator.
180
191
- For convenience, public types, constructors, and constants from the `types` package are now exported via the `cedar` package as well.
181
192
182
-
### Upgrading from 0.3.x to 0.4.x
193
+
####Upgrading from 0.3.x to 0.4.x
183
194
184
195
-`types.Set` is now an immutable type which must be constructed via `types.NewSet()`
185
196
- To iterate the values, use `Set.Iterate()`, which takes an iterator callback.
@@ -189,29 +200,32 @@ If you're looking to integrate Cedar into a production system, please be sure th
189
200
- To iterate the keys and values, use `Record.Iterate()`, which takes an iterator callback.
190
201
- All implementations of `types.Value` are now safe to copy shallowly, so `Record.DeepClone()` has been removed.
191
202
192
-
### New features in 0.3.2
203
+
### 0.3.2
204
+
#### New features
193
205
194
206
- An implementation of the `datetime` and `duration` extension types specified in [RFC 80](https://github.com/cedar-policy/rfcs/blob/main/text/0080-datetime-extension.md).
195
207
- Note: While these types have been accepted into the language, they have not yet been formally analyzed in the [specification](https://github.com/cedar-policy/cedar-spec/).
196
208
197
-
### New features in 0.3.1
209
+
### 0.3.1
210
+
#### New features
198
211
199
212
- General performance improvements to the evaluator
200
213
- An experimental batch evaluator has been added to `x/exp/batch`
201
214
- Reserved keywords are now rejected in all appropriate places when parsing Cedar text
202
215
- A parsing ambiguity between variables, entity UIDs, and extension functions has been resolved
203
216
204
-
### Upgrading from 0.2.x to 0.3.x
217
+
####Upgrading from 0.2.x to 0.3.x
205
218
206
219
- The JSON marshaling of the Position struct now uses canonical lower-case keys for its fields
207
220
208
-
### New features in 0.2.0
221
+
### 0.2.0
222
+
#### New features
209
223
210
224
- A programmatic AST is now available in the `ast` package.
211
225
- Policy sets can be marshaled and unmarshaled from JSON.
212
226
- Policies can also be marshaled to Cedar text.
213
227
214
-
### Upgrading from 0.1.x to 0.2.x
228
+
####Upgrading from 0.1.x to 0.2.x
215
229
216
230
- The Cedar value types have moved from the `cedar` package to the `types` package.
217
231
- The PolicyIDs are now `strings`, previously they were numeric.
0 commit comments