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: .agents/skills/generate-sandbox-policy/SKILL.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -384,6 +384,7 @@ Before presenting the policy to the user, verify correctness **and** flag breadt
384
384
- [ ] Middleware `order` values are unique and no selected chain exceeds 10 stages
385
385
- [ ] No fail-closed middleware selector can cover a `tls: skip` endpoint
386
386
- [ ] Any required WebSocket control advertises `WEBSOCKET_MESSAGE/PRE_CREDENTIALS`, and the user understands that V1 does not inspect binary messages
387
+
- [ ] Endpoints contributed by a credentialed provider are not L4-only or `tls: skip` unless `allow_uninspected_credentials: true` explicitly records the exception
387
388
388
389
### Schema Warnings (log-only, but should be fixed)
389
390
@@ -418,6 +419,7 @@ Evaluate the generated policy for overly broad access and **include warnings in
418
419
| **Broad CIDR** in `allowed_ips` (e.g., `10.0.0.0/8`) | "This `allowed_ips` entry covers a very broad range. Consider narrowing to a specific subnet (e.g., `10.0.5.0/24`) to minimize exposure." |
419
420
| **`on_error: fail_open`** | "This middleware can be bypassed when it is unavailable, rejects configuration, returns an invalid result, or exceeds its body limit. Use `fail_closed` unless availability is more important than this control." |
420
421
| **Broad middleware host selector** | "This middleware attaches independently of the admitting network rule to every matching destination, then runs only for operation bindings its implementation advertises. Narrow `endpoints.include` or add exclusions if the attachment is not required for every matching host." |
422
+
| **`allow_uninspected_credentials: true`** | "This endpoint may carry provider credentials on traffic OpenShell cannot inspect or rewrite. Prefer an inspected protocol and credential rewrite; keep this exception only when raw traffic is required." |
421
423
422
424
Format breadth warnings clearly in the output, e.g.:
Copy file name to clipboardExpand all lines: .agents/skills/openshell-cli/cli-reference.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -384,6 +384,7 @@ Incrementally merge live network policy changes into the current sandbox policy.
384
384
Notes:
385
385
386
386
- The sandbox name defaults to the last-used sandbox.
387
+
-`--add-endpoint` options are comma-separated: `allowed-ip=<CIDR-or-IP>`, `websocket-credential-rewrite`, `request-body-credential-rewrite`, and `allow-uninspected-credentials`. The last option is a security-sensitive exception for provider-credentialed L4-only, `tls: skip`, or otherwise uninspectable traffic.
387
388
-`--add-allow` and `--add-deny` operate on REST and WebSocket endpoints. Use full YAML for JSON-RPC, MCP, SQL, or other policy structure.
388
389
-`--wait` cannot be combined with `--dry-run`.
389
390
- Use `policy set` when replacing the full policy or changing static sections.
"--add-endpoint options segment supports only 'websocket-credential-rewrite', 'request-body-credential-rewrite', and 'allowed-ip=<CIDR-or-IP>'; got '{option}' in '{spec}'"
383
-
));
384
-
};
385
-
let allowed_ip = allowed_ip.trim();
386
-
if allowed_ip.is_empty(){
387
-
returnErr(miette!(
388
-
"--add-endpoint allowed-ip option must include a CIDR or IP value in '{spec}'"
389
-
));
390
-
}
391
-
if allowed_ip.contains(char::is_whitespace){
392
-
returnErr(miette!(
393
-
"--add-endpoint allowed-ip option must not contain whitespace in '{spec}'"
"--add-endpoint options segment supports only 'allow-uninspected-credentials', 'websocket-credential-rewrite', 'request-body-credential-rewrite', and 'allowed-ip=<CIDR-or-IP>'; got '{option}' in '{spec}'"
394
+
));
395
+
}
404
396
}
405
397
}
406
398
407
399
Ok(())
408
400
}
409
401
402
+
/// Validate the value part of an `allowed-ip=<CIDR-or-IP>` endpoint option.
0 commit comments