cedar-policy-formatter

Crates.iocedar-policy-formatter
lib.rscedar-policy-formatter
version4.2.2
sourcesrc
created_at2023-05-10 11:29:18.378723
updated_at2024-11-11 17:29:47.906151
descriptionPolicy formatter for the Cedar Policy Language.
homepagehttps://cedarpolicy.com
repositoryhttps://github.com/cedar-policy/cedar
max_upload_size
id861273
size109,682
Devs (github:cedar-policy:devs)

documentation

README

Cedar Policy Formatter

This package contains a simple formatter library for Cedar policies based on the pretty crate. We integrate it into Cedar CLI so that you can format your Cedar policies directly. You can also use it as a library in your Cedar applications.

Please share your opinions about the format using a feature request. And report any bugs you find using a bug report.

Quick Start

The easiest way to format your Cedar policies is via Cedar CLI's format subcommand.

# Default indentation is two spaces.
# Default line width is 80.
cedar format -p my-policies.cedar
# I want more indentation.
cedar format -i 4 -p my-policies.cedar
# I like shorter lines.
cedar format -l 40 -p my-policies.cedar

Usage

Build

To build, simply run cargo build (or cargo build --release).

Run

The formatter is invoked via Cedar CLI's format subcommand. Its options can be found using the following command.

cedar format -h

Documentation

Generated documentation for the latest version can be accessed on docs.rs.

Testing

Tests for this package use insta for snapshot testing. Tests are executed with the usual cargo test, but, if your changes introduce a difference in how we format any of the test policies, the tests will fail, printing a nicely formatted diff as the error message. You can then run cargo insta review to review how formatting has changed. If the change is expected, accept it and commit the updated snapshot file. Otherwise, reject the change, and fix it as you would any other failing test case.

You can add new test cases just just by placing a .cedar file in the tests directory. The next run of cargo test will fail because there is no snapshot file. Run cargo insta review to review the formatted output for the new tests. Accept and commit the snapshot if it is correct.

Commit count: 710

cargo fmt