feat(exec): 本地执行 Provider + 放权终端沙箱(白名单/工作目录/超时/输出截断/默认关)+ 文件沙箱;config 增 ExecSandbox(默认关)
This commit is contained in:
1 parent
88dc12466d
commit
430fc4666b
11 files changed
+1199
-20
No files matched your search
@@ -0,0 +1,51 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestExecSandbox_DefaultDisabled(t *testing.T) {
|
||||
t.Setenv("JWT_SECRET", strings.Repeat("s", 40))
|
||||
t.Setenv("EXEC_SANDBOX_ENABLED", "false")
|
||||
t.Setenv("EXEC_SANDBOX_COMMANDS", "")
|
||||
t.Setenv("EXEC_SANDBOX_ROOTS", "")
|
||||
t.Setenv("EXEC_SANDBOX_ENV", "")
|
||||
|
||||
cfg, err := Load("")
|
||||
if err != nil {
|
||||
t.Fatalf("Load() error: %v", err)
|
||||
}
|
||||
if cfg.ExecSandbox.Enabled {
|
||||
t.Errorf("ExecSandbox.Enabled = true, want default false (sandbox closed)")
|
||||
}
|
||||
if len(cfg.ExecSandbox.CommandList) != 0 {
|
||||
t.Errorf("CommandList = %v, want empty", cfg.ExecSandbox.CommandList)
|
||||
}
|
||||
}
|
||||
|
||||
func TestExecSandbox_EnvOverrides(t *testing.T) {
|
||||
t.Setenv("JWT_SECRET", strings.Repeat("s", 40))
|
||||
t.Setenv("EXEC_SANDBOX_ENABLED", "true")
|
||||
t.Setenv("EXEC_SANDBOX_COMMANDS", "echo,pwd")
|
||||
t.Setenv("EXEC_SANDBOX_ROOTS", "/tmp/sandbox,/home/me/workspace")
|
||||
t.Setenv("EXEC_SANDBOX_ENV", "PATH,HOME")
|
||||
|
||||
cfg, err := Load("")
|
||||
if err != nil {
|
||||
t.Fatalf("Load() error: %v", err)
|
||||
}
|
||||
if !cfg.ExecSandbox.Enabled {
|
||||
t.Errorf("ExecSandbox.Enabled = false, want true")
|
||||
}
|
||||
if want := []string{"echo", "pwd"}; !reflect.DeepEqual(cfg.ExecSandbox.CommandList, want) {
|
||||
t.Errorf("CommandList = %v, want %v", cfg.ExecSandbox.CommandList, want)
|
||||
}
|
||||
if want := []string{"/tmp/sandbox", "/home/me/workspace"}; !reflect.DeepEqual(cfg.ExecSandbox.AllowedRoots, want) {
|
||||
t.Errorf("AllowedRoots = %v, want %v", cfg.ExecSandbox.AllowedRoots, want)
|
||||
}
|
||||
if want := []string{"PATH", "HOME"}; !reflect.DeepEqual(cfg.ExecSandbox.AllowedEnv, want) {
|
||||
t.Errorf("AllowedEnv = %v, want %v", cfg.ExecSandbox.AllowedEnv, want)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user