kosli evaluate input #
Synopsis #
kosli evaluate input [flags]
Evaluate a local JSON input against a Rego policy.
Read JSON from a file or stdin and evaluate it against a Rego policy.
The input file should contain the raw JSON object your policy expects —
not the wrapper produced by --show-input. Use jq '.input' to extract
the policy input from a --show-input --output json capture.
The policy must use package policy and define an allow rule.
An optional violations rule (a set of strings) can provide human-readable denial reasons.
The command exits with code 0 when allowed and code 1 when denied.
When --input-file is omitted, JSON is read from stdin.
Flags #
| Flag | Description |
|---|---|
| -h, --help | help for input |
| -i, --input-file string | [optional] Path to a JSON input file. Reads from stdin if omitted. |
| -o, --output string | [defaulted] The format of the output. Valid formats are: [table, json]. (default "table") |
| -p, --policy string | Path to a Rego policy file to evaluate against the input. |
| --show-input | [optional] Include the policy input data in the output. |
Flags inherited from parent commands #
| Flag | Description |
|---|---|
| -a, --api-token string | The Kosli API token. |
| -c, --config-file string | [optional] The Kosli config file path. (default "kosli") |
| --debug | [optional] Print debug logs to stdout. A boolean flag https://docs.kosli.com/faq/#boolean-flags (default false) |
| -H, --host string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") |
| --http-proxy string | [optional] The HTTP proxy URL including protocol and port number. e.g. 'http://proxy-server-ip:proxy-port' |
| -r, --max-api-retries int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) |
| --org string | The Kosli organization. |
Examples Use Cases #
These examples all assume that the flags --api-token, --org, --host, (and --flow, --trail when required), are set/provided.
capture trail data for local policy iteration #
kosli evaluate trail TRAIL --flow FLOW
--policy allow-all.rego
--show-input --output json | jq '.input' > trail-data.json
then iterate on your policy locally #
kosli evaluate input
--input-file trail-data.json
--policy policy.rego
evaluate and show the data passed to the policy #
kosli evaluate input
--input-file trail-data.json
--policy policy.rego
--show-input
--output json
read input from stdin #
cat trail-data.json | kosli evaluate input
--policy policy.rego