# Cerbos v0.19.0

## Highlights

The `PlanResources` API now validates requests using [schemas](https://docs.cerbos.dev/cerbos/0.43.0/policies/schemas) to flag any invalid or unknown attributes. Similar to the `CheckResources` API, the [schema enforcement level](https://docs.cerbos.dev/cerbos/0.43.0/configuration/schema) defined in the configuration file determines whether invalid requests are processed with warnings or completely rejected.

This release also includes several fixes to the `PlanResources` output to simplify the plan produced for expressions that make use of higher-order functions like `in` and `exists`. The AST produced for logical operators like `and` and `or` is now more consistent regardless of the operator used as well.

Distributed traces can now be exported to collectors that support [OTLP](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md) by using the new [`otlp` exporter](https://docs.cerbos.dev/cerbos/0.43.0/configuration/tracing#otlp). Thanks to community member @rcrowe for contributing this feature.

## Changelog

### Bug Fixes

- Avoid short-circuit when expressions access non-existent attributes ([#1056](https://github.com/cerbos/cerbos/pull/1056))
- Handle missing scopes in playground validate API ([#1042](https://github.com/cerbos/cerbos/pull/1042))
- Transform `&&`/`||` to `and`/`or` in ASTs ([#1021](https://github.com/cerbos/cerbos/pull/1021))
- Transform maps to lists for membership test ([#1032](https://github.com/cerbos/cerbos/pull/1032))
- Transform maps to lists in comprehension expressions ([#1044](https://github.com/cerbos/cerbos/pull/1044))
- Transform membership test in empty list to false ([#1059](https://github.com/cerbos/cerbos/pull/1059))

### Enhancements

- Export traces via OTLP to a collector ([#1017](https://github.com/cerbos/cerbos/pull/1017))
- Output detailed index build errors when the number of errors is low ([#1038](https://github.com/cerbos/cerbos/pull/1038))
- Validate schemas when planning queries ([#1013](https://github.com/cerbos/cerbos/pull/1013))

### Documentation

- Add AWS Cognito integration demo docs ([#1037](https://github.com/cerbos/cerbos/pull/1037))
- Add link to AWS Cognito docs in sidebar ([#1039](https://github.com/cerbos/cerbos/pull/1039))
- Updating customer logos ([#1054](https://github.com/cerbos/cerbos/pull/1054))
- Use analogy to explain derived roles ([#1015](https://github.com/cerbos/cerbos/pull/1015))

### Chores

- Add function to compile a set of files ([#1046](https://github.com/cerbos/cerbos/pull/1046))
- Bump bufbuild/buf-lint-action from 1.0.0 to 1.0.1 ([#1047](https://github.com/cerbos/cerbos/pull/1047))
- Bump bufbuild/buf-setup-action from 1.5.0 to 1.6.0 ([#1048](https://github.com/cerbos/cerbos/pull/1048))
- Bump github.com/alecthomas/kong from 0.6.0 to 0.6.1 ([#1028](https://github.com/cerbos/cerbos/pull/1028))
- Bump github.com/alecthomas/participle/v2 ([#1026](https://github.com/cerbos/cerbos/pull/1026))
- Bump github.com/alecthomas/participle/v2 from 2.0.0-alpha11 to 2.0.0-beta.2 ([#1051](https://github.com/cerbos/cerbos/pull/1051))
- Bump github.com/bufbuild/buf from 1.5.0 to 1.6.0 in /tools ([#1053](https://github.com/cerbos/cerbos/pull/1053))
- Bump github.com/fergusstrange/embedded-postgres ([#1029](https://github.com/cerbos/cerbos/pull/1029))
- Bump github.com/google/gops from 0.3.23 to 0.3.24 ([#1049](https://github.com/cerbos/cerbos/pull/1049))
- Bump github.com/lestrrat-go/jwx/v2 from 2.0.2 to 2.0.3 ([#1025](https://github.com/cerbos/cerbos/pull/1025))
- Bump github.com/minio/minio-go/v7 from 7.0.28 to 7.0.29 ([#1033](https://github.com/cerbos/cerbos/pull/1033))
- Bump github.com/pterm/pterm from 0.12.41 to 0.12.42 ([#1050](https://github.com/cerbos/cerbos/pull/1050))
- Bump github.com/stretchr/testify from 1.7.2 to 1.7.5 ([#1052](https://github.com/cerbos/cerbos/pull/1052))
- Bump github.com/vektra/mockery/v2 from 2.12.3 to 2.13.1 in /tools ([#1024](https://github.com/cerbos/cerbos/pull/1024))
- Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc ([#1027](https://github.com/cerbos/cerbos/pull/1027))
- Bump google.golang.org/protobuf ([#1023](https://github.com/cerbos/cerbos/pull/1023))
- Bump helm/kind-action from 1.2.0 to 1.3.0 ([#1022](https://github.com/cerbos/cerbos/pull/1022))
- Bump version to 0.19.0
- Fix confdocs panic when no struct tag is provided ([#1020](https://github.com/cerbos/cerbos/pull/1020))
- Fix flaky query plan test by sorting map keys in deterministic order ([#1043](https://github.com/cerbos/cerbos/pull/1043))
- Fix flaky update store test ([#1045](https://github.com/cerbos/cerbos/pull/1045))
- Ignore OpenTelemetry error message about sampler ([#1031](https://github.com/cerbos/cerbos/pull/1031))
- Split tests across multiple runners ([#1019](https://github.com/cerbos/cerbos/pull/1019))
