You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/guide/capability-allowlist.md
+19-7Lines changed: 19 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,8 +31,10 @@ Runtime mutation still happens only through explicit enable flows (`capability_e
31
31
Release baseline policy:
32
32
33
33
1. third-party sources are discoverable by default (`mounted`)
34
-
2. runtime flow has no approval gate; enable path is one-step when `enable_supported=true`
35
-
3.`blocked` is explicit deny state (policy/source/runtime blocklist), reserved for clear deny signals
34
+
2. external capability sources default to usable path (`mounted`) in normal mode
35
+
3. conservative users can switch external capability sources back to `indexed` through `external_capability_safety_mode`
36
+
4. runtime flow has no approval gate; enable path is one-step when `enable_supported=true`
37
+
5.`blocked` is explicit deny state (policy/source/runtime blocklist), reserved for clear deny signals
36
38
37
39
Runtime blocklist model:
38
40
@@ -76,12 +78,22 @@ Web routes map to daemon ops:
76
78
3.`PUT /api/v1/capabilities/allowlist`
77
79
4.`DELETE /api/v1/capabilities/allowlist`
78
80
79
-
## 6. Recommended Workflow
81
+
## 6. External Capability Safety Mode
82
+
83
+
`capability_allowlist_get` / `validate` / `update` expose `external_capability_safety_mode` as a thin semantic view over the default posture for external capability sources:
84
+
85
+
1.`normal` => external capability sources default to `mounted`
86
+
2.`conservative` => external capability sources default to `indexed`
87
+
88
+
Built-in packs are unaffected. Per-source and per-capability overrides can still be stricter.
89
+
90
+
## 7. Recommended Workflow
80
91
81
92
1. call `capability_allowlist_get`
82
-
2. prepare patch (or full replacement)
83
-
3. call `capability_allowlist_validate`
84
-
4. apply with `capability_allowlist_update(expected_revision=...)`
85
-
5. if mismatch, refetch and retry
93
+
2. inspect `external_capability_safety_mode` and current revision
94
+
3. prepare patch (or full replacement)
95
+
4. call `capability_allowlist_validate`
96
+
5. apply with `capability_allowlist_update(expected_revision=...)`
97
+
6. if mismatch, refetch and retry
86
98
87
99
Use `capability_allowlist_reset` to drop overlay and return to packaged default.
0 commit comments