mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-15 19:24:23 +08:00
- 新增无头运行时及连接、查询、导出、批处理、审计和 MCP 命令 - 复用活动数据根、密文存储与跨进程锁,落实写入安全和取消语义 - 增加六平台 CLI 归档、独立校验和、Docker、npm 与 WinGet 分发 - 隔离 GUI/CLI 更新资产并强化 macOS 签名与公证门禁 - 补充并发、审计、事务及发布契约回归测试 Refs #902
37 lines
954 B
Go
37 lines
954 B
Go
package app
|
|
|
|
import (
|
|
"context"
|
|
|
|
"GoNavi-Wails/internal/connection"
|
|
)
|
|
|
|
// CLIQueryExecutor is the dedicated headless query entry point. Its audit
|
|
// source is backend-owned so command-line arguments cannot impersonate it.
|
|
type CLIQueryExecutor struct {
|
|
app *App
|
|
}
|
|
|
|
func NewCLIQueryExecutor(app *App) *CLIQueryExecutor {
|
|
return &CLIQueryExecutor{app: app}
|
|
}
|
|
|
|
func (executor *CLIQueryExecutor) DBQueryMulti(
|
|
ctx context.Context,
|
|
config connection.ConnectionConfig,
|
|
dbName string,
|
|
query string,
|
|
queryID string,
|
|
) connection.QueryResult {
|
|
if executor == nil || executor.app == nil {
|
|
return connection.QueryResult{Success: false, Message: "CLI query executor is unavailable"}
|
|
}
|
|
return executor.app.dbQueryMulti(config, dbName, query, queryID, dbQueryMultiAuditOptions{
|
|
auditAll: true,
|
|
auditWrites: true,
|
|
source: "cli",
|
|
executionContext: ctx,
|
|
classifyConnectionErrors: true,
|
|
})
|
|
}
|