$ shellfirm
Protection Coverage

Fly.io

Protection patterns for Fly.io CLI operations including app destruction, secrets, volumes, and Postgres

The flyio check group covers destructive Fly.io CLI operations. Both fly and flyctl command names are supported.

Fly.io checks

Destroy app

IDflyio:apps_destroy
SeverityCritical

Destroying a Fly.io app permanently removes it and all its resources including machines, volumes, and IPs.

# Triggers
fly apps destroy
fly apps destroy my-app
fly apps destroy my-app --yes
flyctl apps destroy my-app

# Does NOT trigger
fly apps list
fly apps create my-app

Unset secrets

IDflyio:secrets_unset
SeverityHigh

Removing secrets can break running applications that depend on them.

# Triggers
fly secrets unset MY_SECRET
fly secrets unset SECRET1 SECRET2
flyctl secrets unset MY_SECRET --app my-app

# Does NOT trigger
fly secrets list
fly secrets set MY_SECRET=value

Destroy volumes

IDflyio:volumes_destroy
SeverityHigh

Destroying a volume permanently deletes all data stored on it.

# Triggers
fly volumes destroy vol_abc123
fly volume destroy vol_abc123
flyctl volumes destroy vol_abc123

# Does NOT trigger
fly volumes list
fly volumes create

Destroy Postgres cluster

IDflyio:postgres_destroy
SeverityCritical

Destroying a Fly Postgres cluster permanently deletes the database and all its data.

# Triggers
fly postgres destroy
fly postgres destroy my-pg-cluster
flyctl postgres destroy my-pg-cluster

# Does NOT trigger
fly postgres list
fly postgres create

Summary table

IDCommandSeverity
flyio:apps_destroyfly apps destroyCritical
flyio:secrets_unsetfly secrets unsetHigh
flyio:volumes_destroyfly volumes destroyHigh
flyio:postgres_destroyfly postgres destroyCritical