feat(task): replace built-in task adaptors with a sandboxed JS plugin system (#7076)

This commit is contained in:
Calcium-Ion
2026-08-29 18:51:57 +08:00
committed by GitHub
parent 7037ac15bd
commit eb48396d5f
336 changed files with 52333 additions and 6369 deletions
+5
View File
@@ -23,6 +23,7 @@ import (
"github.com/QuantumNous/new-api/middleware"
"github.com/QuantumNous/new-api/model"
"github.com/QuantumNous/new-api/oauth"
"github.com/QuantumNous/new-api/pkg/jsplugin"
perfmetrics "github.com/QuantumNous/new-api/pkg/perf_metrics"
"github.com/QuantumNous/new-api/relay"
kitutil "github.com/QuantumNous/new-api/relaykit/relayconvert/kitutil"
@@ -46,6 +47,9 @@ var buildFS embed.FS
var indexPage []byte
func main() {
if len(os.Args) > 1 && os.Args[1] == "plugin" {
os.Exit(jsplugin.RunCLI(os.Args[2:], os.Stdout, os.Stderr))
}
startTime := time.Now()
kitutil.SetLogging(common.SysLog, func(message string) {
logger.LogError(nil, message)
@@ -107,6 +111,7 @@ func main() {
// 热更新配置
go model.SyncOptions(common.SyncFrequency)
go controller.SyncTaskPlugins()
// 周期性重载授权策略,保证多节点/多 master 部署下权限变更能传播到每个实例
go authz.StartPolicySync(common.SyncFrequency)