Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IInputResolver ¶ added in v1.11.2
type IInputResolver interface {
// BindingSatisfied 在纯内存中判定资源是否满足绑定的入口过滤条件(零数据库 IO,毫秒级响应)
BindingSatisfied(ctx context.Context, primary domain.Resource, binding domain.PluginBinding) (bool, error)
// Resolve 递归执行绑定图的拓扑解析,装配插件动作触发所需的全部输入数据(包括凭证与上下游资产属性)
Resolve(ctx context.Context, primary domain.Resource, bg *pluginx.BindingGraph) (map[string]pluginx.ResolvedInput, error)
// LoadResource 查询指定资源并仅按需加载插件声明所需的字段,避免加载不必要的大字段
LoadResource(ctx context.Context, resourceID int64, fields []string) (domain.Resource, error)
// ListResourcesByIDs 批量查询多个关联资产,用于列表动作的批量预加载与按需裁剪
ListResourcesByIDs(ctx context.Context, fields []string, ids []int64) ([]domain.Resource, error)
}
IInputResolver 定义插件输入解析能力接口,负责资源动作匹配与关联拓扑图参数装配
func NewInputResolver ¶ added in v1.11.2
func NewInputResolver( resources resource.Service, relations relation.RelationResourceService, ) IInputResolver
type ISchemaImporter ¶ added in v1.11.2
type ISchemaImporter interface {
// ImportSchema 幂等编排并导入完整的插件自描述元数据(模型分组、模型、属性分组、字段定义、关系类型与模型间关联)
ImportSchema(ctx context.Context, schema pluginx.Schema) error
}
ISchemaImporter 负责将插件自描述中的动态 Schema(模型、属性、关系)幂等导入并同步到 CMDB 底层元数据库中
func NewSchemaImporter ¶ added in v1.11.2
func NewSchemaImporter( models model.Service, modelGroups model.MGService, attributes attribute.Service, relationTypes relation.RelationTypeService, modelRelations relation.RelationModelService, ) ISchemaImporter
type Service ¶
type Service interface {
// ImportDefinition 导入外部插件定义。
ImportDefinition(ctx context.Context, def coreplugin.Definition) error
// GetDefaultDefinition 返回插件默认定义草稿,供前端创建内置默认绑定时使用。
GetDefaultDefinition(ctx context.Context, pluginID string) (coreplugin.Definition, error)
// SaveBindings 保存某个插件的绑定图;若绑定模型命中内置默认定义,则自动导入对应 Schema。
SaveBindings(ctx context.Context, req domain.SavePluginBindings) error
// ToggleBindingStatus 切换单个绑定的启停状态,并返回切换后的状态。
ToggleBindingStatus(ctx context.Context, uid string) (bool, error)
// DeleteBinding 删除单个插件绑定。
DeleteBinding(ctx context.Context, uid string) error
// ListPlugins 获取插件管理列表。
ListPlugins(ctx context.Context) ([]domain.PluginListItem, error)
// GetPluginDetail 获取插件详情与绑定列表。
GetPluginDetail(ctx context.Context, uid string) (domain.PluginDetail, error)
// ListEnums 获取插件管理所需的下拉字典选项。
ListEnums(ctx context.Context) (domain.PluginManagementEnums, error)
// ListResourceActionsBatch 批量获取多个资源当前可触发的插件动作。
ListResourceActionsBatch(ctx context.Context, resourceIDs []int64) ([]pluginx.ResourceActions, error)
// ResolveAction 根据资源与插件动作,解析动作运行所需上下文。
ResolveAction(ctx context.Context, req pluginx.ResolveRequest) (pluginx.ResolveResult, error)
// ResolveActionContext 根据资源与插件动作,解析完整的动作运行上下文。
ResolveActionContext(ctx context.Context, req pluginx.ResolveRequest) (pluginx.ActionContext, error)
// GetActionRuntime 获取插件动作运行时定义。
GetActionRuntime(ctx context.Context, pluginID, action string) (domain.Plugin, pluginx.ActionSpec, error)
}
func NewService ¶
func NewService( repo repository.PluginRepository, resolver IInputResolver, importer ISchemaImporter, modelSvc model.Service, modelGroupSvc model.MGService, ) Service
Click to show internal directories.
Click to hide internal directories.