Skip to main content
Like AOF? Give us a star!
If you find AOF useful, please star us on GitHub. It helps us reach more developers and grow the community.

Platform Policies

AOF uses simple platform-based safety rules to protect against accidental destructive commands.

Default Policies

PlatformReadWriteWhy
CLIYesYesLocal, authenticated
SlackYesYes (with approval)Enterprise SSO, audit logs
TelegramYesNoMobile, less controlled
WhatsAppYesNoMobile, less controlled

How It Works

  1. Message arrives from a platform (Telegram, Slack, etc.)
  2. AOF checks if the command is a write operation
  3. If write + mobile platform → Block with helpful message
  4. If write + Slack → Execute (approval workflow available)
  5. If read → Execute on all platforms

Write Operations

These patterns are blocked on mobile platforms:

kubectl:

  • kubectl apply, kubectl create, kubectl delete
  • kubectl patch, kubectl replace, kubectl edit
  • kubectl scale, kubectl rollout, kubectl drain

docker:

  • docker rm, docker rmi, docker stop, docker kill
  • docker run, docker exec, docker build

helm:

  • helm install, helm upgrade, helm uninstall, helm rollback

terraform:

  • terraform apply, terraform destroy, terraform import

aws:

  • Commands with create, delete, update, terminate, modify

git:

  • git push, git reset --hard, git rebase

Blocked Message

When a write operation is blocked:

Write operations are blocked on Telegram.
Use Slack or CLI for this operation.

Slack Approval Workflow

On Slack, destructive commands can require approval:

  1. User requests: "delete the nginx pod"
  2. Bot asks for approval with ✅/❌ buttons
  3. Authorized user approves
  4. Command executes

Configure approvers in your config:

spec:
platforms:
slack:
approval_allowed_users:
- U015VBH1GTZ # Slack user ID