Fly.io

CLIfly

An agent with fly 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.

! ~/.fly/config.yml

What it cannot undo

1

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.

fly apps destroy **fly.apps-destroy

What it changes

1

Allowed by default, and the obvious first thing to put behind ask.

fly deploy **productionfly.deploy

What it only reads

1

Matched so a rule can say read is fine, rather than leaving it unspoken.

fly statusfly.status

The rule this writes

[[rules]]
name = "fly-destructive-asks-first"
match.actions = ["fly.apps-destroy"]
decision.effect = "ask"
decision.reason = "This cannot be undone."

memnox protect --for fly 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 Fly.io is actually reachable from your machine. It reads your own disk and needs no account.