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
| Platform | Read | Write | Why |
|---|---|---|---|
| CLI | Yes | Yes | Local, authenticated |
| Slack | Yes | Yes (with approval) | Enterprise SSO, audit logs |
| Telegram | Yes | No | Mobile, less controlled |
| Yes | No | Mobile, less controlled |
How It Works
- Message arrives from a platform (Telegram, Slack, etc.)
- AOF checks if the command is a write operation
- If write + mobile platform → Block with helpful message
- If write + Slack → Execute (approval workflow available)
- If read → Execute on all platforms
Write Operations
These patterns are blocked on mobile platforms:
kubectl:
kubectl apply,kubectl create,kubectl deletekubectl patch,kubectl replace,kubectl editkubectl scale,kubectl rollout,kubectl drain
docker:
docker rm,docker rmi,docker stop,docker killdocker 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:
- User requests: "delete the nginx pod"
- Bot asks for approval with ✅/❌ buttons
- Authorized user approves
- Command executes
Configure approvers in your config:
spec:
platforms:
slack:
approval_allowed_users:
- U015VBH1GTZ # Slack user ID