-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflyctl-ops.json
More file actions
106 lines (106 loc) · 2.61 KB
/
flyctl-ops.json
File metadata and controls
106 lines (106 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
{
"version": "0.2",
"identity_profiles": [
{
"id": "fly-api-token",
"provider": "env-bearer",
"subject": {
"kind": "service",
"principal": "agent://ops/flyctl",
"display_name": "Flyctl Operations Agent",
"delegation_mode": "none"
},
"auth": {
"mode": "service",
"required": false,
"provider_config": {
"token_env": "FLY_API_TOKEN"
}
},
"trust": {
"level": "restricted",
"constraints": {
"max_autonomy": "restricted",
"escalation": "fail"
}
},
"presentation": {
"bindings": [
{
"source": "credentials.access_token.value",
"target": {
"kind": "env",
"name": "FLY_API_TOKEN"
},
"required": false,
"redact": true
}
],
"handoff": "none",
"cleanup": "always"
}
}
],
"workflows": [
{
"id": "flyctl-ops",
"name": "Flyctl Operations",
"identity": {
"ref": "fly-api-token"
},
"contract": {
"sandbox": "permissive",
"network": "unrestricted",
"audit": "always",
"required_trust_level": "restricted",
"trust_enforcement": "advisory"
},
"tasks": [
{
"id": "check-app-status",
"name": "Check Fly App Status",
"shell": {
"program": "flyctl",
"args": ["status", "--app", "my-app"]
},
"target": {
"session_target": "shell"
},
"schedule": {
"cron": "*/10 * * * *"
},
"output": {
"format": "text",
"preview_bytes": 1200,
"offload": "auto",
"retrieve": "on-demand"
},
"delivery": {
"mode": "none"
},
"on_failure": {
"id": "triage-flyctl-failure",
"name": "Triage Flyctl Failure",
"prompt": "Review the parent flyctl failure, explain the most likely cause, and propose the safest next step without making changes.",
"target": {
"session_target": "isolated",
"agent_id": "main"
},
"intent": {
"mode": "plan",
"read_only": true
},
"context": {
"retrieval": "recent",
"limit": 3
},
"delivery": {
"mode": "announce",
"to": "@owner_dm"
}
}
}
]
}
]
}