27 stable releases

3.2.1 May 31, 2024
3.1.3 Apr 15, 2024
3.1.2 Mar 29, 2024
3.0.1 Dec 21, 2023
2.3.1 Jul 20, 2023

#342 in Configuration

Download history 11/week @ 2024-02-14 110/week @ 2024-02-21 66/week @ 2024-02-28 290/week @ 2024-03-06 240/week @ 2024-03-13 80/week @ 2024-03-20 262/week @ 2024-03-27 167/week @ 2024-04-03 254/week @ 2024-04-10 161/week @ 2024-04-17 53/week @ 2024-04-24 37/week @ 2024-05-01 30/week @ 2024-05-08 365/week @ 2024-05-15 75/week @ 2024-05-22 254/week @ 2024-05-29

732 downloads per month
Used in 3 crates

Apache-2.0

1.5MB
36K SLoC

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.

Dependencies

~7–11MB
~157K SLoC