Files
MyGoNavi/internal/jvm/types.go
Syngnat 15b1ad24d1 feat(jvm): 落地 JVM 连接契约与配置归一化
- 新增 JVM 连接配置与共享 DTO,补齐 JMX 和 Endpoint 契约
- 实现后端归一化规则,支持默认只读、模式回退和 JMX 端口兜底
- 新增前端 JVM 默认值与配置构建工具,统一模式环境和端口收敛
- 补充 Go 与 Vitest 用例并更新需求追踪,记录 Task 1 验证证据
2026-04-22 17:20:00 +08:00

75 lines
2.4 KiB
Go

package jvm
const (
ModeJMX = "jmx"
ModeEndpoint = "endpoint"
ModeAgent = "agent"
EnvPROD = "prod"
)
type Capability struct {
Mode string `json:"mode"`
CanBrowse bool `json:"canBrowse"`
CanWrite bool `json:"canWrite"`
CanPreview bool `json:"canPreview"`
Reason string `json:"reason,omitempty"`
DisplayLabel string `json:"displayLabel"`
}
type ResourceSummary struct {
ID string `json:"id"`
ParentID string `json:"parentId,omitempty"`
Kind string `json:"kind"`
Name string `json:"name"`
Path string `json:"path"`
ProviderMode string `json:"providerMode"`
CanRead bool `json:"canRead"`
CanWrite bool `json:"canWrite"`
HasChildren bool `json:"hasChildren"`
Sensitive bool `json:"sensitive,omitempty"`
}
type ValueSnapshot struct {
ResourceID string `json:"resourceId"`
Kind string `json:"kind"`
Format string `json:"format"`
Version string `json:"version,omitempty"`
Value interface{} `json:"value"`
Metadata map[string]any `json:"metadata,omitempty"`
}
type ChangeRequest struct {
ProviderMode string `json:"providerMode"`
ResourceID string `json:"resourceId"`
Action string `json:"action"`
Reason string `json:"reason"`
ExpectedVersion string `json:"expectedVersion,omitempty"`
Payload map[string]any `json:"payload,omitempty"`
}
type ChangePreview struct {
Allowed bool `json:"allowed"`
RequiresConfirmation bool `json:"requiresConfirmation,omitempty"`
Summary string `json:"summary"`
RiskLevel string `json:"riskLevel"`
BlockingReason string `json:"blockingReason,omitempty"`
Before ValueSnapshot `json:"before"`
After ValueSnapshot `json:"after"`
}
type ApplyResult struct {
Status string `json:"status"`
Message string `json:"message,omitempty"`
UpdatedValue ValueSnapshot `json:"updatedValue"`
}
type AuditRecord struct {
Timestamp int64 `json:"timestamp"`
ConnectionID string `json:"connectionId"`
ProviderMode string `json:"providerMode"`
ResourceID string `json:"resourceId"`
Action string `json:"action"`
Reason string `json:"reason"`
Result string `json:"result"`
}