@judaharagao/opencode-ssh 1.2.1 → 1.3.0
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.
- package/README.md +24 -1
- package/dist/display/formatter.d.ts +1 -1
- package/dist/display/formatter.d.ts.map +1 -1
- package/dist/display/formatter.js +9 -2
- package/dist/display/formatter.js.map +1 -1
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +6 -3
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/security/allowlist.d.ts +5 -0
- package/dist/security/allowlist.d.ts.map +1 -1
- package/dist/security/allowlist.js +16 -0
- package/dist/security/allowlist.js.map +1 -1
- package/dist/security/policy.d.ts +5 -0
- package/dist/security/policy.d.ts.map +1 -1
- package/dist/security/policy.js +9 -0
- package/dist/security/policy.js.map +1 -1
- package/dist/security/validator.d.ts +1 -1
- package/dist/security/validator.d.ts.map +1 -1
- package/dist/security/validator.js +9 -5
- package/dist/security/validator.js.map +1 -1
- package/dist/ssh/executor.d.ts +2 -2
- package/dist/ssh/executor.d.ts.map +1 -1
- package/dist/ssh/executor.js +4 -4
- package/dist/ssh/executor.js.map +1 -1
- package/dist/tools.d.ts +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +13 -9
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ Or with configuration:
|
|
|
52
52
|
| `default_timeout` | number | `30` | Default command timeout in seconds |
|
|
53
53
|
| `audit_enabled` | boolean | `true` | Enable audit logging |
|
|
54
54
|
| `blocklist_extra` | string[] | `[]` | Additional regex patterns to block |
|
|
55
|
-
| `allowlist` | string[] | `[]` | Additional allowed patterns (restricted mode) |
|
|
55
|
+
| `allowlist` | string[] | `[]` | Additional allowed patterns (restricted/read_only mode) — merged with the per-project allowlist from `ssh.security_policy` |
|
|
56
56
|
| `ssh_config_path` | string | `~/.ssh/config` | Path to the SSH config file used to resolve host aliases, defaults, proxies, and auto-connect targets |
|
|
57
57
|
| `auto_connect` | boolean | `false` | Connect automatically at startup to every `Host` entry in the ssh config that has a `HostName` (with retry/backoff) |
|
|
58
58
|
| `auto_reconnect` | boolean | `true` | Reconnect a dropped session automatically before the next `ssh.exec`/`ssh.upload`/`ssh.download` (key-authenticated sessions) |
|
|
@@ -96,6 +96,27 @@ Only commands in the allowlist + read-only commands are allowed. Risky and destr
|
|
|
96
96
|
### Read-Only Mode
|
|
97
97
|
Only read-only commands (ls, cat, grep, docker ps, etc.) are allowed. No write operations.
|
|
98
98
|
|
|
99
|
+
## Custom Allowlist
|
|
100
|
+
|
|
101
|
+
Restricted and read-only modes respect allowlist patterns from **both** sources (merged, deduped):
|
|
102
|
+
|
|
103
|
+
1. **Plugin config** — in your `opencode.json`:
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
["@judaharagao/opencode-ssh", {
|
|
107
|
+
"mode": "restricted",
|
|
108
|
+
"allowlist": ["docker stop .*", "docker rm .*"]
|
|
109
|
+
}]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
2. **Per-project policy** — at runtime via `ssh.security_policy`:
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
ssh.security_policy(action="add_allowlist", pattern="docker stop .*")
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Patterns persist in `<project>/.opencode-ssh/policy.json` and are merged with the config patterns on every execution. Either source alone is enough to permit a matching command in restricted/read_only mode. The destructive blocklist always wins over any allowlist entry.
|
|
119
|
+
|
|
99
120
|
## Commands (Tools)
|
|
100
121
|
|
|
101
122
|
### `ssh.connect`
|
|
@@ -160,6 +181,8 @@ View or modify the security policy.
|
|
|
160
181
|
```
|
|
161
182
|
ssh.security_policy(action="view")
|
|
162
183
|
ssh.security_policy(action="add_blocklist", pattern="custom-dangerous-.*")
|
|
184
|
+
ssh.security_policy(action="add_allowlist", pattern="docker stop .*")
|
|
185
|
+
ssh.security_policy(action="remove_allowlist", pattern="docker stop .*")
|
|
163
186
|
```
|
|
164
187
|
|
|
165
188
|
### `ssh.audit_log`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/display/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE7D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA+C3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAsBvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GAAG,OAAO,GAC7B,MAAM,CAqBR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACnF,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/display/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE7D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA+C3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAsBvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAWR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GAAG,OAAO,GAC7B,MAAM,CAqBR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACnF,MAAM,CAmBR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IACN,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB,EACD,eAAe,GAAE,MAAM,EAAO,GAC7B,MAAM,CA+CR"}
|
|
@@ -127,7 +127,7 @@ export function formatCheckResult(command, validation) {
|
|
|
127
127
|
/**
|
|
128
128
|
* Format a security policy for display.
|
|
129
129
|
*/
|
|
130
|
-
export function formatSecurityPolicy(policy) {
|
|
130
|
+
export function formatSecurityPolicy(policy, configAllowlist = []) {
|
|
131
131
|
const lines = [
|
|
132
132
|
"## SSH Security Policy",
|
|
133
133
|
"",
|
|
@@ -135,6 +135,13 @@ export function formatSecurityPolicy(policy) {
|
|
|
135
135
|
`**Last Updated:** ${policy.updatedAt}`,
|
|
136
136
|
"",
|
|
137
137
|
];
|
|
138
|
+
if (configAllowlist.length > 0) {
|
|
139
|
+
lines.push("### Config Allowlist Patterns (plugin settings)");
|
|
140
|
+
for (const p of configAllowlist) {
|
|
141
|
+
lines.push(`- \`${p}\``);
|
|
142
|
+
}
|
|
143
|
+
lines.push("");
|
|
144
|
+
}
|
|
138
145
|
if (policy.extraBlocklist.length > 0) {
|
|
139
146
|
lines.push("### Extra Blocklist Patterns");
|
|
140
147
|
for (const p of policy.extraBlocklist) {
|
|
@@ -143,7 +150,7 @@ export function formatSecurityPolicy(policy) {
|
|
|
143
150
|
lines.push("");
|
|
144
151
|
}
|
|
145
152
|
if (policy.customAllowlist.length > 0) {
|
|
146
|
-
lines.push("### Custom Allowlist Patterns");
|
|
153
|
+
lines.push("### Custom Allowlist Patterns (via ssh.security_policy)");
|
|
147
154
|
for (const p of policy.customAllowlist) {
|
|
148
155
|
lines.push(`- \`${p}\``);
|
|
149
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/display/formatter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/display/formatter.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.d.ts
CHANGED
|
@@ -9,5 +9,5 @@ import type { SecurityMode } from "./config/schema.js";
|
|
|
9
9
|
* - tool.execute.before: Pre-execution validation (additional safety net)
|
|
10
10
|
* - tool.execute.after: Post-execution audit metadata
|
|
11
11
|
*/
|
|
12
|
-
export declare function createSshHooks(mode?: SecurityMode, extraBlocklist?: string[]): Hooks;
|
|
12
|
+
export declare function createSshHooks(mode?: SecurityMode, extraBlocklist?: string[], extraAllowlist?: string[], projectDir?: string): Hooks;
|
|
13
13
|
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,IAAI,GAAE,YAAqB,EAC3B,cAAc,GAAE,MAAM,EAAO,EAC7B,cAAc,GAAE,MAAM,EAAO,EAC7B,UAAU,GAAE,MAAW,GACtB,KAAK,CAmKP"}
|
package/dist/hooks.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { validateCommand } from "./security/validator.js";
|
|
2
|
+
import { getEffectiveCustomAllowlist } from "./security/policy.js";
|
|
2
3
|
/**
|
|
3
4
|
* Create the SSH plugin hooks.
|
|
4
5
|
*
|
|
@@ -8,7 +9,7 @@ import { validateCommand } from "./security/validator.js";
|
|
|
8
9
|
* - tool.execute.before: Pre-execution validation (additional safety net)
|
|
9
10
|
* - tool.execute.after: Post-execution audit metadata
|
|
10
11
|
*/
|
|
11
|
-
export function createSshHooks(mode = "full", extraBlocklist = []) {
|
|
12
|
+
export function createSshHooks(mode = "full", extraBlocklist = [], extraAllowlist = [], projectDir = "") {
|
|
12
13
|
let systemInjected = false;
|
|
13
14
|
return {
|
|
14
15
|
// ═══════════════════════════════════════════════════════════════
|
|
@@ -57,7 +58,7 @@ export function createSshHooks(mode = "full", extraBlocklist = []) {
|
|
|
57
58
|
mode === "restricted"
|
|
58
59
|
? "**RESTRICTED MODE:** Only commands in the allowlist are permitted."
|
|
59
60
|
: mode === "read_only"
|
|
60
|
-
? "**READ-ONLY MODE:** Only read-only commands are permitted."
|
|
61
|
+
? "**READ-ONLY MODE:** Only read-only commands + custom allowlist are permitted."
|
|
61
62
|
: "**FULL MODE:** All non-blocked commands are permitted.",
|
|
62
63
|
].join("\n"));
|
|
63
64
|
systemInjected = true;
|
|
@@ -106,7 +107,9 @@ export function createSshHooks(mode = "full", extraBlocklist = []) {
|
|
|
106
107
|
if (!command)
|
|
107
108
|
return;
|
|
108
109
|
// Final safety check: validate the command one more time
|
|
109
|
-
|
|
110
|
+
// Merge the config `allowlist` with the per-project policy allowlist.
|
|
111
|
+
const customAllowlist = getEffectiveCustomAllowlist(projectDir, extraAllowlist);
|
|
112
|
+
const validation = validateCommand(command, mode, extraBlocklist, customAllowlist);
|
|
110
113
|
if (validation.level === "destructive") {
|
|
111
114
|
throw new Error([
|
|
112
115
|
`🚫 DESTRUCTIVE COMMAND BLOCKED: ${command}`,
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAGlE;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAqB,MAAM,EAC3B,iBAA2B,EAAE,EAC7B,iBAA2B,EAAE,EAC7B,aAAqB,EAAE;IAEvB,IAAI,cAAc,GAAG,KAAK,CAAA;IAE1B,OAAO;QACL,kEAAkE;QAClE,0BAA0B;QAC1B,kEAAkE;QAClE,oCAAoC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,cAAc;gBAAE,OAAM;YAE1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB;gBACE,qCAAqC;gBACrC,EAAE;gBACF,oEAAoE;gBACpE,EAAE;gBACF,qBAAqB;gBACrB,+DAA+D;gBAC/D,2CAA2C;gBAC3C,kDAAkD;gBAClD,qDAAqD;gBACrD,4DAA4D;gBAC5D,6CAA6C;gBAC7C,iDAAiD;gBACjD,gEAAgE;gBAChE,uDAAuD;gBACvD,wDAAwD;gBACxD,EAAE;gBACF,oBAAoB;gBACpB,aAAa,IAAI,EAAE;gBACnB,EAAE;gBACF,6DAA6D;gBAC7D,mEAAmE;gBACnE,sDAAsD;gBACtD,EAAE;gBACF,yDAAyD;gBACzD,wEAAwE;gBACxE,8DAA8D;gBAC9D,EAAE;gBACF,kDAAkD;gBAClD,qEAAqE;gBACrE,EAAE;gBACF,mEAAmE;gBACnE,qDAAqD;gBACrD,EAAE;gBACF,oDAAoD;gBACpD,uDAAuD;gBACvD,EAAE;gBACF,IAAI,KAAK,YAAY;oBACnB,CAAC,CAAC,oEAAoE;oBACtE,CAAC,CAAC,IAAI,KAAK,WAAW;wBACpB,CAAC,CAAC,+EAA+E;wBACjF,CAAC,CAAC,wDAAwD;aAC/D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;YAED,cAAc,GAAG,IAAI,CAAA;QACvB,CAAC;QAED,kEAAkE;QAClE,sBAAsB;QACtB,kEAAkE;QAClE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;YAEtE,oCAAoC;YACpC,IACE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EACjC,CAAC;gBACD,MAAM,CAAC,MAAM,GAAG,OAAO,CAAA;gBACvB,OAAM;YACR,CAAC;YAED,wDAAwD;YACxD,oEAAoE;YACpE,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACnF,MAAM,CAAC,MAAM,GAAG,KAAK,CAAA;gBACrB,OAAM;YACR,CAAC;YAED,wDAAwD;YACxD,0CAA0C;YAC1C,IACE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAChC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACvC,CAAC;gBACD,4CAA4C;gBAC5C,MAAM,CAAC,MAAM,GAAG,KAAK,CAAA;gBACrB,OAAM;YACR,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,mDAAmD;QACnD,kEAAkE;QAClE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC7C,gCAAgC;YAChC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;gBAAE,OAAM;YAExE,MAAM,IAAI,GAAG,MAAM,CAAC,IAA+B,CAAA;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAA;YAElD,IAAI,CAAC,OAAO;gBAAE,OAAM;YAEpB,yDAAyD;YACzD,sEAAsE;YACtE,MAAM,eAAe,GAAG,2BAA2B,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;YAC/E,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,CAAC,CAAA;YAElF,IAAI,UAAU,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACb;oBACE,mCAAmC,OAAO,EAAE;oBAC5C,EAAE;oBACF,WAAW,UAAU,CAAC,MAAM,EAAE;oBAC9B,SAAS,UAAU,CAAC,YAAY,EAAE;oBAClC,EAAE;oBACF,6DAA6D;iBAC9D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;YACH,CAAC;YAED,IAAI,UAAU,CAAC,KAAK,KAAK,kBAAkB,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb;oBACE,2BAA2B,OAAO,EAAE;oBACpC,EAAE;oBACF,WAAW,UAAU,CAAC,MAAM,EAAE;oBAC9B,EAAE;oBACF,6DAA6D;iBAC9D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;YACH,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,0BAA0B;QAC1B,kEAAkE;QAClE,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAM;YAE1C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC1C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAA;gBACjC,MAAM,CAAC,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;YAC3C,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,qBAAqB;QACrB,kEAAkE;QAClE,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,cAAc,GAAG,KAAK,CAAA;YACtB,4CAA4C;QAC9C,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;;;;;AA2CjD,wBAGC"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { createSshTools } from "./tools.js";
|
|
2
2
|
import { createSshHooks } from "./hooks.js";
|
|
3
3
|
import { resolveConfig } from "./config/defaults.js";
|
|
4
|
-
const SshPlugin = async (
|
|
4
|
+
const SshPlugin = async (input, options) => {
|
|
5
5
|
// ── Resolve configuration ──
|
|
6
6
|
const config = resolveConfig(options);
|
|
7
|
+
// Project directory is used to resolve the per-project policy allowlist
|
|
8
|
+
// (customAllowlist) that is merged with the config `allowlist`.
|
|
9
|
+
const projectDir = input.directory;
|
|
7
10
|
// ── Create tools and hooks with resolved config ──
|
|
8
|
-
const tools = createSshTools(config.mode, config.max_sessions, config.default_timeout, config.blocklist_extra, config.ssh_config_path, config.auto_connect, {
|
|
11
|
+
const tools = createSshTools(config.mode, config.max_sessions, config.default_timeout, config.blocklist_extra, config.allowlist, config.ssh_config_path, config.auto_connect, {
|
|
9
12
|
strictHostKey: config.strict_host_key,
|
|
10
13
|
rateLimitPerMinute: config.rate_limit_per_minute,
|
|
11
14
|
cooldownSeconds: config.cooldown_seconds,
|
|
12
15
|
autoReconnect: config.auto_reconnect,
|
|
13
16
|
});
|
|
14
|
-
const hooks = createSshHooks(config.mode, config.blocklist_extra);
|
|
17
|
+
const hooks = createSshHooks(config.mode, config.blocklist_extra, config.allowlist, projectDir);
|
|
15
18
|
return {
|
|
16
19
|
tool: tools,
|
|
17
20
|
...hooks,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpD,MAAM,SAAS,GAAW,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpD,MAAM,SAAS,GAAW,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACjD,8BAA8B;IAC9B,MAAM,MAAM,GAAwB,aAAa,CAAC,OAAkC,CAAC,CAAA;IAErF,wEAAwE;IACxE,gEAAgE;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAA;IAElC,oDAAoD;IACpD,MAAM,KAAK,GAAG,cAAc,CAC1B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,YAAY,EACnB;QACE,aAAa,EAAE,MAAM,CAAC,eAAe;QACrC,kBAAkB,EAAE,MAAM,CAAC,qBAAqB;QAChD,eAAe,EAAE,MAAM,CAAC,gBAAgB;QACxC,aAAa,EAAE,MAAM,CAAC,cAAc;KACrC,CACF,CAAA;IACD,MAAM,KAAK,GAAG,cAAc,CAC1B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,SAAS,EAChB,UAAU,CACX,CAAA;IAED,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG,KAAK;KACT,CAAA;AACH,CAAC,CAAA;AAED,eAAe;IACb,EAAE,EAAE,cAAc;IAClB,MAAM,EAAE,SAAS;CAClB,CAAA"}
|
|
@@ -20,4 +20,9 @@ export declare function getSafeWriteCommands(): AllowlistEntry[];
|
|
|
20
20
|
* Get all allowed commands for a given mode.
|
|
21
21
|
*/
|
|
22
22
|
export declare function getAllowedCommands(mode: "full" | "restricted" | "read_only"): AllowlistEntry[];
|
|
23
|
+
/**
|
|
24
|
+
* Compile user-supplied regex patterns into allowlist entries.
|
|
25
|
+
* Invalid patterns are skipped so one bad entry never breaks validation.
|
|
26
|
+
*/
|
|
27
|
+
export declare function createAllowlistEntries(patterns: string[], description?: string): AllowlistEntry[];
|
|
23
28
|
//# sourceMappingURL=allowlist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../src/security/allowlist.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAA;CACpB;AA+ED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,EAAE,CAEvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,EAAE,CAS9F"}
|
|
1
|
+
{"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../src/security/allowlist.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAA;CACpB;AA+ED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,EAAE,CAEvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,EAAE,CAS9F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,GAAE,MAAmC,GAC/C,cAAc,EAAE,CAUlB"}
|
|
@@ -102,4 +102,20 @@ export function getAllowedCommands(mode) {
|
|
|
102
102
|
return []; // Only blocklist applies in full mode
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Compile user-supplied regex patterns into allowlist entries.
|
|
107
|
+
* Invalid patterns are skipped so one bad entry never breaks validation.
|
|
108
|
+
*/
|
|
109
|
+
export function createAllowlistEntries(patterns, description = "Custom allowlist pattern") {
|
|
110
|
+
const entries = [];
|
|
111
|
+
for (const pattern of patterns) {
|
|
112
|
+
try {
|
|
113
|
+
entries.push({ pattern: new RegExp(pattern, "i"), description });
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// Skip invalid regex patterns
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return entries;
|
|
120
|
+
}
|
|
105
121
|
//# sourceMappingURL=allowlist.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../../src/security/allowlist.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../../src/security/allowlist.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,11 @@ export declare function addAllowlistPattern(projectDir: string, pattern: string)
|
|
|
33
33
|
* Remove a pattern from the allowlist.
|
|
34
34
|
*/
|
|
35
35
|
export declare function removeAllowlistPattern(projectDir: string, pattern: string): SecurityPolicy;
|
|
36
|
+
/**
|
|
37
|
+
* Merge the plugin config `allowlist` with the per-project custom allowlist
|
|
38
|
+
* (managed via ssh.security_policy add_allowlist). Returns a deduped list.
|
|
39
|
+
*/
|
|
40
|
+
export declare function getEffectiveCustomAllowlist(projectDir: string, configAllowlist?: string[]): string[];
|
|
36
41
|
/**
|
|
37
42
|
* Format the current policy for display.
|
|
38
43
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/security/policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAA;IAClB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB;AAID;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAYpE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAQ3E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,YAAqB,GAAG,cAAc,CAazF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAUvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAM1F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAUvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAM1F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAuC3D"}
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/security/policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAA;IAClB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB;AAID;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAYpE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAQ3E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,YAAqB,GAAG,cAAc,CAazF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAUvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAM1F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAUvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CAM1F;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,eAAe,GAAE,MAAM,EAAO,GAC7B,MAAM,EAAE,CAIV;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAuC3D"}
|
package/dist/security/policy.js
CHANGED
|
@@ -91,6 +91,15 @@ export function removeAllowlistPattern(projectDir, pattern) {
|
|
|
91
91
|
savePolicy(projectDir, policy);
|
|
92
92
|
return policy;
|
|
93
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Merge the plugin config `allowlist` with the per-project custom allowlist
|
|
96
|
+
* (managed via ssh.security_policy add_allowlist). Returns a deduped list.
|
|
97
|
+
*/
|
|
98
|
+
export function getEffectiveCustomAllowlist(projectDir, configAllowlist = []) {
|
|
99
|
+
const policy = loadPolicy(projectDir);
|
|
100
|
+
const policyAllowlist = policy?.customAllowlist ?? [];
|
|
101
|
+
return [...new Set([...configAllowlist, ...policyAllowlist])];
|
|
102
|
+
}
|
|
94
103
|
/**
|
|
95
104
|
* Format the current policy for display.
|
|
96
105
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/security/policy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/security/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export type ValidationResult = {
|
|
|
20
20
|
* 2. Check against risky blocklist → requires permission prompt
|
|
21
21
|
* 3. In restricted/read_only mode, check against allowlist
|
|
22
22
|
*/
|
|
23
|
-
export declare function validateCommand(command: string, mode: SecurityMode, extraBlocklist?: string[]): ValidationResult;
|
|
23
|
+
export declare function validateCommand(command: string, mode: SecurityMode, extraBlocklist?: string[], customAllowlist?: string[]): ValidationResult;
|
|
24
24
|
/**
|
|
25
25
|
* Check if a command is purely read-only (no side effects).
|
|
26
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/security/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,YAAY,EAAuB,MAAM,gBAAgB,CAAA;AAEjH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6CAA6C;IAC7C,IAAI,EAAE,OAAO,CAAA;IACb,kCAAkC;IAClC,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAAA;IACxC,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,cAAc,GAAE,MAAM,EAAO,
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/security/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,YAAY,EAAuB,MAAM,gBAAgB,CAAA;AAEjH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6CAA6C;IAC7C,IAAI,EAAE,OAAO,CAAA;IACb,kCAAkC;IAClC,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAAA;IACxC,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,cAAc,GAAE,MAAM,EAAO,EAC7B,eAAe,GAAE,MAAM,EAAO,GAC7B,gBAAgB,CA8DlB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAuD1D;AAeD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAmBvE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getBuiltinBlocklist, createCustomEntries } from "./blocklist.js";
|
|
2
|
-
import { getAllowedCommands } from "./allowlist.js";
|
|
2
|
+
import { getAllowedCommands, createAllowlistEntries } from "./allowlist.js";
|
|
3
3
|
/**
|
|
4
4
|
* Validate a command against the security policy.
|
|
5
5
|
*
|
|
@@ -8,7 +8,7 @@ import { getAllowedCommands } from "./allowlist.js";
|
|
|
8
8
|
* 2. Check against risky blocklist → requires permission prompt
|
|
9
9
|
* 3. In restricted/read_only mode, check against allowlist
|
|
10
10
|
*/
|
|
11
|
-
export function validateCommand(command, mode, extraBlocklist = []) {
|
|
11
|
+
export function validateCommand(command, mode, extraBlocklist = [], customAllowlist = []) {
|
|
12
12
|
const trimmed = command.trim();
|
|
13
13
|
if (!trimmed) {
|
|
14
14
|
return { safe: true, level: "safe" };
|
|
@@ -44,8 +44,11 @@ export function validateCommand(command, mode, extraBlocklist = []) {
|
|
|
44
44
|
}
|
|
45
45
|
// ── Step 2: In restricted/read_only mode, check allowlist ──
|
|
46
46
|
if (mode === "restricted" || mode === "read_only") {
|
|
47
|
-
const
|
|
48
|
-
|
|
47
|
+
const builtinEntries = getAllowedCommands(mode);
|
|
48
|
+
// Custom patterns come from BOTH the plugin config `allowlist` option and
|
|
49
|
+
// the per-project custom allowlist managed via ssh.security_policy.
|
|
50
|
+
const customEntries = createAllowlistEntries(customAllowlist);
|
|
51
|
+
const isAllowed = [...builtinEntries, ...customEntries].some((entry) => entry.pattern.test(trimmed));
|
|
49
52
|
if (!isAllowed) {
|
|
50
53
|
return {
|
|
51
54
|
safe: false,
|
|
@@ -53,7 +56,8 @@ export function validateCommand(command, mode, extraBlocklist = []) {
|
|
|
53
56
|
reason: `🔒 NOT ALLOWED in "${mode}" mode. Command not in the allowlist.`,
|
|
54
57
|
suggestions: [
|
|
55
58
|
`Switch to "full" mode to allow all non-blocked commands`,
|
|
56
|
-
`Add this command pattern to the allowlist via ssh.security_policy`,
|
|
59
|
+
`Add this command pattern to the allowlist via ssh.security_policy (add_allowlist)`,
|
|
60
|
+
`Add this command pattern to the "allowlist" option in your plugin config`,
|
|
57
61
|
],
|
|
58
62
|
};
|
|
59
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/security/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAA0C,MAAM,gBAAgB,CAAA;AACjH,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/security/validator.ts"],"names":[],"mappings":"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"}
|
package/dist/ssh/executor.d.ts
CHANGED
|
@@ -40,10 +40,10 @@ export interface ExecStreamCallbacks {
|
|
|
40
40
|
* 4. Logs the result to audit
|
|
41
41
|
* 5. Returns structured output
|
|
42
42
|
*/
|
|
43
|
-
export declare function executeCommand(connection: SshConnection, command: string, mode: SecurityMode, extraBlocklist: string[], sessionId: string, options?: ExecOptions, projectDir?: string): Promise<ExecResult>;
|
|
43
|
+
export declare function executeCommand(connection: SshConnection, command: string, mode: SecurityMode, extraBlocklist: string[], sessionId: string, options?: ExecOptions, projectDir?: string, customAllowlist?: string[]): Promise<ExecResult>;
|
|
44
44
|
/**
|
|
45
45
|
* Execute a command with real-time streaming output.
|
|
46
46
|
* Calls the callbacks as data arrives.
|
|
47
47
|
*/
|
|
48
|
-
export declare function executeCommandStream(connection: SshConnection, command: string, mode: SecurityMode, extraBlocklist: string[], sessionId: string, options?: ExecOptions, projectDir?: string, callbacks?: ExecStreamCallbacks): Promise<ExecResult>;
|
|
48
|
+
export declare function executeCommandStream(connection: SshConnection, command: string, mode: SecurityMode, extraBlocklist: string[], sessionId: string, options?: ExecOptions, projectDir?: string, customAllowlist?: string[], callbacks?: ExecStreamCallbacks): Promise<ExecResult>;
|
|
49
49
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/ssh/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,wBAAwB;IACxB,UAAU,EAAE,gBAAgB,CAAA;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,cAAc,EAAE,MAAM,EAAE,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,WAAgB,EACzB,UAAU,GAAE,MAAW,
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/ssh/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,wBAAwB;IACxB,UAAU,EAAE,gBAAgB,CAAA;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACtC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,cAAc,EAAE,MAAM,EAAE,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,WAAgB,EACzB,UAAU,GAAE,MAAW,EACvB,eAAe,GAAE,MAAM,EAAO,GAC7B,OAAO,CAAC,UAAU,CAAC,CAgKrB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,cAAc,EAAE,MAAM,EAAE,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,WAAgB,EACzB,UAAU,GAAE,MAAW,EACvB,eAAe,GAAE,MAAM,EAAO,EAC9B,SAAS,GAAE,mBAAwB,GAClC,OAAO,CAAC,UAAU,CAAC,CA4HrB"}
|
package/dist/ssh/executor.js
CHANGED
|
@@ -11,7 +11,7 @@ import { logCommand } from "./audit.js";
|
|
|
11
11
|
* 4. Logs the result to audit
|
|
12
12
|
* 5. Returns structured output
|
|
13
13
|
*/
|
|
14
|
-
export async function executeCommand(connection, command, mode, extraBlocklist, sessionId, options = {}, projectDir = "") {
|
|
14
|
+
export async function executeCommand(connection, command, mode, extraBlocklist, sessionId, options = {}, projectDir = "", customAllowlist = []) {
|
|
15
15
|
const startTime = Date.now();
|
|
16
16
|
// ── Step 1: Input sanitization ──
|
|
17
17
|
const sanitization = sanitizeCommand(command);
|
|
@@ -43,7 +43,7 @@ export async function executeCommand(connection, command, mode, extraBlocklist,
|
|
|
43
43
|
return result;
|
|
44
44
|
}
|
|
45
45
|
// ── Step 2: Security validation ──
|
|
46
|
-
const validation = validateCommand(command, mode, extraBlocklist);
|
|
46
|
+
const validation = validateCommand(command, mode, extraBlocklist, customAllowlist);
|
|
47
47
|
// Destructive: ALWAYS blocked, no exception
|
|
48
48
|
if (validation.level === "destructive") {
|
|
49
49
|
const result = {
|
|
@@ -158,7 +158,7 @@ export async function executeCommand(connection, command, mode, extraBlocklist,
|
|
|
158
158
|
* Execute a command with real-time streaming output.
|
|
159
159
|
* Calls the callbacks as data arrives.
|
|
160
160
|
*/
|
|
161
|
-
export async function executeCommandStream(connection, command, mode, extraBlocklist, sessionId, options = {}, projectDir = "", callbacks = {}) {
|
|
161
|
+
export async function executeCommandStream(connection, command, mode, extraBlocklist, sessionId, options = {}, projectDir = "", customAllowlist = [], callbacks = {}) {
|
|
162
162
|
const startTime = Date.now();
|
|
163
163
|
// ── Step 1 & 2: Validate and sanitize (same as non-streaming) ──
|
|
164
164
|
const sanitization = sanitizeCommand(command);
|
|
@@ -178,7 +178,7 @@ export async function executeCommandStream(connection, command, mode, extraBlock
|
|
|
178
178
|
},
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
|
-
const validation = validateCommand(command, mode, extraBlocklist);
|
|
181
|
+
const validation = validateCommand(command, mode, extraBlocklist, customAllowlist);
|
|
182
182
|
if (validation.level === "destructive") {
|
|
183
183
|
callbacks.onError?.(new Error(validation.reason));
|
|
184
184
|
return {
|
package/dist/ssh/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/ssh/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAyB,MAAM,0BAA0B,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAmB,MAAM,YAAY,CAAA;AAmCxD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAyB,EACzB,OAAe,EACf,IAAkB,EAClB,cAAwB,EACxB,SAAiB,EACjB,UAAuB,EAAE,EACzB,aAAqB,EAAE;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/ssh/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { SecurityMode } from "./config/schema.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Create all SSH tools for the plugin.
|
|
5
5
|
*/
|
|
6
|
-
export declare function createSshTools(mode?: SecurityMode, maxSessions?: number, defaultTimeout?: number, extraBlocklist?: string[], sshConfigPath?: string, autoConnect?: boolean, opts?: {
|
|
6
|
+
export declare function createSshTools(mode?: SecurityMode, maxSessions?: number, defaultTimeout?: number, extraBlocklist?: string[], extraAllowlist?: string[], sshConfigPath?: string, autoConnect?: boolean, opts?: {
|
|
7
7
|
strictHostKey?: boolean;
|
|
8
8
|
knownHostsPath?: string;
|
|
9
9
|
rateLimitPerMinute?: number;
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAgC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA4GtD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,GAAE,YAAqB,EAC3B,WAAW,GAAE,MAAU,EACvB,cAAc,GAAE,MAAW,EAC3B,cAAc,GAAE,MAAM,EAAO,EAC7B,cAAc,GAAE,MAAM,EAAO,EAC7B,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,GAAE,OAAe,EAC5B,IAAI,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9I,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA6rBhC"}
|
package/dist/tools.js
CHANGED
|
@@ -2,7 +2,7 @@ import { tool } from "@opencode-ai/plugin";
|
|
|
2
2
|
import { SshSessionManager } from "./ssh/manager.js";
|
|
3
3
|
import { executeCommand } from "./ssh/executor.js";
|
|
4
4
|
import { validateCommand } from "./security/validator.js";
|
|
5
|
-
import { getPolicy, addBlocklistPattern, removeBlocklistPattern, addAllowlistPattern, removeAllowlistPattern } from "./security/policy.js";
|
|
5
|
+
import { getPolicy, getEffectiveCustomAllowlist, addBlocklistPattern, removeBlocklistPattern, addAllowlistPattern, removeAllowlistPattern, } from "./security/policy.js";
|
|
6
6
|
import { readAuditLog, formatAuditLog, getAuditStats } from "./ssh/audit.js";
|
|
7
7
|
import { sanitizeHost, sanitizeUsername, sanitizePath } from "./ssh/sanitizer.js";
|
|
8
8
|
import { loadSshConfig, findHostConfig, getAutoConnectHosts, expandHomePath, parseProxyJump, } from "./ssh/config.js";
|
|
@@ -95,7 +95,7 @@ async function startAutoConnect(manager, sshConfigPath) {
|
|
|
95
95
|
/**
|
|
96
96
|
* Create all SSH tools for the plugin.
|
|
97
97
|
*/
|
|
98
|
-
export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout = 30, extraBlocklist = [], sshConfigPath, autoConnect = false, opts = {}) {
|
|
98
|
+
export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout = 30, extraBlocklist = [], extraAllowlist = [], sshConfigPath, autoConnect = false, opts = {}) {
|
|
99
99
|
const sessionManager = new SshSessionManager({ maxSessions });
|
|
100
100
|
const rateLimiter = new RateLimiter({
|
|
101
101
|
maxPerMinute: opts.rateLimitPerMinute ?? 120,
|
|
@@ -272,7 +272,9 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
272
272
|
.join("\n");
|
|
273
273
|
}
|
|
274
274
|
// ── Validate command against blocklist BEFORE asking for permission ──
|
|
275
|
-
|
|
275
|
+
// Custom allowlist = plugin config `allowlist` + per-project policy patterns.
|
|
276
|
+
const customAllowlist = getEffectiveCustomAllowlist(ctx.directory, extraAllowlist);
|
|
277
|
+
const validation = validateCommand(args.command, mode, extraBlocklist, customAllowlist);
|
|
276
278
|
// DESTRUCTIVE: 100% blocked, no permission prompt, no override
|
|
277
279
|
if (validation.level === "destructive") {
|
|
278
280
|
return [
|
|
@@ -335,7 +337,7 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
335
337
|
cwd: args.cwd,
|
|
336
338
|
timeout: args.timeout || defaultTimeout,
|
|
337
339
|
sudo: args.sudo,
|
|
338
|
-
}, ctx.directory);
|
|
340
|
+
}, ctx.directory, customAllowlist);
|
|
339
341
|
}
|
|
340
342
|
finally {
|
|
341
343
|
rateLimiter.record(hostKey, true);
|
|
@@ -382,9 +384,10 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
382
384
|
return "No commands to execute.";
|
|
383
385
|
}
|
|
384
386
|
// ── Validate all commands first ──
|
|
387
|
+
const customAllowlist = getEffectiveCustomAllowlist(ctx.directory, extraAllowlist);
|
|
385
388
|
const validations = [];
|
|
386
389
|
for (const cmd of commands) {
|
|
387
|
-
const v = validateCommand(cmd.trim(), mode, extraBlocklist);
|
|
390
|
+
const v = validateCommand(cmd.trim(), mode, extraBlocklist, customAllowlist);
|
|
388
391
|
validations.push({ command: cmd.trim(), validation: v });
|
|
389
392
|
}
|
|
390
393
|
// Check for destructive commands
|
|
@@ -438,7 +441,7 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
438
441
|
result = await executeCommand(connection, cmd.trim(), mode, extraBlocklist, args.session_id, {
|
|
439
442
|
cwd: args.cwd,
|
|
440
443
|
timeout: args.timeout || defaultTimeout,
|
|
441
|
-
}, ctx.directory);
|
|
444
|
+
}, ctx.directory, customAllowlist);
|
|
442
445
|
}
|
|
443
446
|
finally {
|
|
444
447
|
rateLimiter.record(batchHostKey, true);
|
|
@@ -590,8 +593,9 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
590
593
|
args: {
|
|
591
594
|
command: tool.schema.string().describe("Command to validate"),
|
|
592
595
|
},
|
|
593
|
-
async execute(args,
|
|
594
|
-
const
|
|
596
|
+
async execute(args, ctx) {
|
|
597
|
+
const customAllowlist = getEffectiveCustomAllowlist(ctx.directory, extraAllowlist);
|
|
598
|
+
const validation = validateCommand(args.command, mode, extraBlocklist, customAllowlist);
|
|
595
599
|
return formatCheckResult(args.command, validation);
|
|
596
600
|
},
|
|
597
601
|
}),
|
|
@@ -633,7 +637,7 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
633
637
|
switch (args.action) {
|
|
634
638
|
case "view": {
|
|
635
639
|
const policy = getPolicy(ctx.directory, mode);
|
|
636
|
-
return formatSecurityPolicy(policy);
|
|
640
|
+
return formatSecurityPolicy(policy, extraAllowlist);
|
|
637
641
|
}
|
|
638
642
|
case "add_blocklist": {
|
|
639
643
|
const policy = addBlocklistPattern(ctx.directory, args.pattern);
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|