@karmaniverous/jeeves-server-openclaw 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -105,7 +105,37 @@ Create `jeeves-server.config.json` (or any cosmiconfig-supported format) in the
|
|
|
105
105
|
- `insiders` — map of email → `{ scopes?, allow?, deny? }`
|
|
106
106
|
- `keys._internal` — required for PDF/DOCX export (Puppeteer auth)
|
|
107
107
|
- `keys._plugin` — required for OpenClaw plugin auth
|
|
108
|
-
- `outsiderPolicy` — optional global constraints on outsider sharing
|
|
108
|
+
- `outsiderPolicy` — optional global constraints on outsider sharing (can reference a named scope)
|
|
109
|
+
|
|
110
|
+
### Named Scope Composition
|
|
111
|
+
|
|
112
|
+
Define reusable scope policies at the top level, then reference them by name:
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"scopes": {
|
|
117
|
+
"standard": { "allow": ["/**"], "deny": ["/secrets/**"] },
|
|
118
|
+
"no-vc": { "deny": ["/projects/vc/**"] },
|
|
119
|
+
"no-private": { "deny": ["/projects/jill/**"] }
|
|
120
|
+
},
|
|
121
|
+
"insiders": {
|
|
122
|
+
"dev@example.com": { "scopes": ["standard", "no-vc"] },
|
|
123
|
+
"jill@example.com": {
|
|
124
|
+
"scopes": ["standard", "no-private"],
|
|
125
|
+
"allow": ["/projects/jill/**"]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Composition rules:**
|
|
132
|
+
- Multiple named scopes are **unioned** — all `allow` and `deny` patterns merge
|
|
133
|
+
- Explicit `allow`/`deny` on the insider or key entry act as **overrides** with highest precedence:
|
|
134
|
+
1. Explicit `deny` → **DENIED** (overrides named allow)
|
|
135
|
+
2. Explicit `allow` → **ALLOWED** (overrides named deny)
|
|
136
|
+
3. Standard named scope `allow AND NOT deny`
|
|
137
|
+
|
|
138
|
+
This lets you compose broad policies (e.g. `no-private`) and surgically override them for specific users (e.g. Jill gets access to her own project).
|
|
109
139
|
|
|
110
140
|
Environment variable substitution is supported: `${VAR_NAME}` in string values.
|
|
111
141
|
|
package/openclaw.plugin.json
CHANGED