Files
MyGoNavi/internal/app/cli_query_executor.go
Syngnat 4d5c0e6bb9 feat(cli): 新增独立命令行与发布链
- 新增无头运行时及连接、查询、导出、批处理、审计和 MCP 命令
- 复用活动数据根、密文存储与跨进程锁,落实写入安全和取消语义
- 增加六平台 CLI 归档、独立校验和、Docker、npm 与 WinGet 分发
- 隔离 GUI/CLI 更新资产并强化 macOS 签名与公证门禁
- 补充并发、审计、事务及发布契约回归测试

Refs #902
2026-08-11 10:34:58 +08:00

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,
})
}