safe-chains 0.224.0

Auto-allow safe bash commands in agentic coding tools
Documentation
[[command]]
name = "vegeta"
description = "HTTP load tester (Go). Subcommands: `attack`, `report`, `dump`, `encode`, `plot`. `attack` makes many HTTP requests according to the configured rate / duration / target file (network + load). `report`/`dump`/`encode`/`plot` analyse a saved attack result file (read or local SafeWrite)."
url = "https://github.com/tsenart/vegeta"
researched_version = "vegeta 12.x"
bare_flags = ["--help", "--version", "-h", "-v"]
# The safe twin for the `--output` gate below: an in-workspace report, and the bare form that
# defaults to stdout, must both keep working. Without these the gate has nothing proving it does
# not swallow ordinary usage.
examples_safe = [
    "vegeta report",
    "vegeta report --output",
    "vegeta report --output ./results.txt",
]
examples_denied = [
    "vegeta report --output /etc/cron.d/x",
    "vegeta report --output ~/.ssh/authorized_keys",
]

# `--output` names the FILE the analysis is written to, on every sub that has it, and it was
# ungated: `vegeta report --output ~/.ssh/authorized_keys` auto-approved, writing report content
# into a credential file. `write` because vegeta emits a report there; it does not run it.
#
# Note `--output` sits in BOTH `standalone` and `valued` on these subs. That is not a contradiction
# — it is how this schema spells an OPTIONAL value, and it is load-bearing here: vegeta's `--output`
# defaults to stdout when bare. The gate applies to the form that carries a value.
[command.path_gate]
flags = { "--output" = "write" }

[[command.sub]]
name = "report"
level = "SafeRead"
bare = true
standalone = ["--every", "--help", "--type", "--output", "-h"]
valued = ["--every", "--output", "--type"]

[[command.sub]]
name = "dump"
level = "SafeRead"
bare = true
standalone = ["--dumper", "--help", "--output", "-h"]
valued = ["--dumper", "--output"]

[[command.sub]]
name = "encode"
level = "SafeRead"
bare = true
standalone = ["--help", "--output", "--to", "-h"]
valued = ["--output", "--to"]

[[command.sub]]
name = "plot"
level = "SafeRead"
bare = true
standalone = ["--help", "--output", "--threshold", "--title", "-h"]
valued = ["--output", "--threshold", "--title"]

[[command.sub]]
name = "help"
allow_all = true

[[command.sub]]
name = "attack"
candidate = true