Heroku
herokuAn agent with heroku on its PATH can deploy. Memnox wraps the binary, reads the command before it runs, and matches it against the table below. Nothing here is a list of what we support: it is what the runtime already classifies, and the strings are the ones a rule matches on.
What it reads to authenticate
Discovery records that these exist and hashes them. It never reads a value, so a scan can say three agents reach this file and never what is inside it.
What it cannot undo
Every one of these carries the alternative a refusal names, which is why an agent takes the alternative and finishes the task instead of stopping.
heroku apps:destroy **heroku.apps:destroy
What it changes
Allowed by default, and the obvious first thing to put behind ask.
heroku releases:rollback **heroku.releases:rollback
What it only reads
Matched so a rule can say read is fine, rather than leaving it unspoken.
heroku ps **heroku.ps
The rule this writes
[[rules]] name = "heroku-destructive-asks-first" match.actions = ["heroku.apps:destroy"] decision.effect = "ask" decision.reason = "This cannot be undone."
memnox protect --for heroku writes this into memnox.policies.toml from the table above. You can edit it, and the file is yours.
Run npm i -g memnox && memnox setup to find out whether Heroku is actually reachable from your machine. It reads your own disk and needs no account.