plugin

package
v1.11.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2026 License: MIT Imports: 18 Imported by: 0

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

Directories

Path Synopsis
Package pluginmocks is a generated GoMock package.
Package pluginmocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL