Project: Open Policy Containers (Provisioning / Security & Compliance)
File: README.md

<img src="assets/opcr.png" alt="opcr" width="200"> The policy CLI is a tool for building, versioning and publishing your authorization policies. It uses OCI standards to manage artifacts, and the to compile and run. ](https://goreportcard.com/report/github.com/opcr-io/policy) ](https://github.com/opcr-io/policy/actions/workflows/ci.yaml) ](https://codebeat.co/projects/github-com-opcr-io-policy-main) ](https://github.com/opcr-io/policy/actions/workflows/codeql-analysis.yml) ](https://bestpractices.coreinfrastructure.org/projects/6859) Please refer to our site for installation, usage, customization and tips. Wanna discuss features or show your support for this tool? Channel: Invite: `policy` is available on Linux, macOS and Windows platforms. Binaries for Linux, Windows and Mac are available as tarballs in the page. Via Homebrew for macOS or LinuxBrew for Linux ```shell brew tap opcr-io/tap && brew install opcr-io/tap/policy ``` Note: if you want to try a pre-release version before the official release: ```shell brew tap opcr-io/tap && brew install opcr-io/tap/policy-rc ``` Via the nix package manager on nixOS, other linux distros, and macOS At the moment the package is only available in the `unstable` channel. Below are some examples using nix to install `policy` via the shell, NixOS configuration, and home-manager configuration. Shell: ```shell nix-env --install -A nixpkgs.opcr-policy ``` NixOS: ```nix environment.systemPackages = with pkgs; [ opcr-policy ]; ``` home-manager: ```nix home.packages = with pkgs; [ opcr-policy ]; ``` Via a GO install ```shell go install github.com/opcr-io/policy/cmd/policy@latest ``` `policy` is currently using go v1.16 or above. In order to build `policy` from source you must: Install Clone the repo Build and run the executable ```shell mage build && ./dist/buildlinuxamd64/policy ``` You can run as a Docker container: ```shell docker run -it --rm ghcr.io/opcr-io/policy:latest --help ``` ```shell $ policy --help Usage: policy <command> Commands: build Build policies. images List policy images. push Push policies to a registry. pull Pull policies from a registry. login Login to a registry. logout Logout from a registry. save Save a policy to a local bundle tarball. tag Create a new tag for an existing policy. rm Removes a policy from the local registry. inspect Displays information about a policy. repl Sets you up with a shell for running queries using an OPA instance with a policy loaded. templates List and apply templates version Prints version information. Flags: -h, --help Show context-sensitive help. -c, --config="/Users/ogazitt/.policy/config.yaml" Path to the policy CLI config file. --debug Enable debug mode. -v, --verbosity=INT Use to increase output verbosity. -k, --insecure Do not verify TLS connections. Run "policy <command> --help" for more information on a command. ``` Logs are printed to `stderr`. You can increase detail using the verbosity flag (e.g. `-vvv`). This is still work in progress! If something is broken or there's a feature that you want, please file an issue and if so inclined submit a PR! The policy CLI uses a lot of great and amazing open source projects and libraries. A big thank you to all of them! File an issue first prior to submitting a PR! Ensure all exported items are properly commented If applicable, submit a test suite against your PR Please send an email to one of the . We commit to addressing vulnerabilities promptly.