Files
RuoYi-Vue3-FastAPI/ruoyi-fastapi-backend/plugins/core/runtime/service/responses.py
T
insistence 2a055ba648 feat: 新增插件系统 (#112)
* feat: 初始化插件系统

* refactor: 收口插件系统运行时重构

* perf: 优化插件系统类型提示

* fix&perf: 修复和优化插件系统

* fix: 修复gitignore规则误忽略插件文件的问题

* fix: 修复运行时插件根路径算错的问题

* fix: 加强插件发现和路由注册的防护措施

* revert: 回滚定时任务白名单

* fix: 移除未使用的应用路由注册探测

* revert: 恢复部分代码

* perf: 优化插件系统

* docs: 新增插件开发文档

* perf: 优化插件管理模块

* perf: 提升插件系统核心能力

* refactor: 重构生命周期 step runner

* fix: 修复lint错误

* test: 清理测试用例

* test: 调整测试目录名称

* fix: 修复前后端目录硬编码的问题

* fix: 修复插件系统安全性缺口

* refactor: 重新设计插件生命周期 Migration 事务与回滚

* perf: 优化插件系统边界问题

* refactor: 重构当前插件系统的依赖体系设计

* perf: 优化代码

* perf: 优化代码

* fix: 修复代码合并问题

* fix: 修复bug

* perf: 优化代码

* perf&fix: 优化代码和修复bug

* docs: 优化文档格式

* feat: 适配Vue2版本

* docs: 更新README文档

* fix: 修复ruff lint错误

* chore: 更新后端依赖文件
2026-07-28 20:35:18 +08:00

153 lines
5.5 KiB
Python

from __future__ import annotations
from typing import TypeAlias
from pydantic import Field
from plugins.core.runtime.support import (
BatchOperationResultPayload,
PluginAuditSnapshotFailurePayloadDict,
PluginAuditSnapshotPayloadDict,
PluginCheckPayloadDict,
PluginConfigExportFailurePayloadDict,
PluginConfigExportPayloadDict,
PluginConfigImportPayloadDict,
PluginConfigStatePayloadDict,
PluginDependencyCheckPayloadDict,
PluginDependencyInstallPayloadDict,
PluginDocumentationPayloadDict,
PluginEnableStatePayloadDict,
PluginEnableUpdateFailurePayloadDict,
PluginLifecyclePayloadDict,
PluginNotFoundPayloadDict,
PluginPlanResponsePayload,
PluginPurgeStatePayloadDict,
PluginRuntimeBatchItemUnsupportedPayloadDict,
PluginRuntimeDiagnoseFailurePayloadDict,
PluginRuntimeDiagnosePayloadDict,
PluginRuntimeExceptionPayloadDict,
PluginRuntimeHealthResponsePayloadDict,
PluginRuntimeInvalidOperationPayloadDict,
PluginRuntimePrecheckPayloadDict,
PluginRuntimeUpgradeBlockerPayloadDict,
PluginSafeUninstallPayloadDict,
)
from plugins.core.runtime.support.payload.base import PluginPayloadModel
class PluginCatalogListResponsePayload(PluginPayloadModel):
"""
插件列表响应 payload。
"""
ok: bool
count: int
plugins: list[dict[str, object]]
database_available: bool | None = Field(default=None, alias='databaseAvailable')
database_error: str | None = Field(default=None, alias='databaseError')
class PluginCatalogInfoResponsePayload(PluginPayloadModel):
"""
插件详情响应 payload。
"""
ok: bool
plugin: dict[str, object]
class PluginBatchRunResponsePayload(PluginPayloadModel):
"""
插件批量执行响应 payload。
"""
ok: bool | None = None
message: str | None = None
dry_run: bool | None = Field(default=None, alias='dryRun')
continue_on_error: bool | None = Field(default=None, alias='continueOnError')
executed: list[dict[str, object]] | None = None
failed: dict[str, object] | None = None
summary: dict[str, object] | None = None
exit_code: int | None = None
class PluginRuntimeBlockedPayload(PluginPayloadModel):
"""
插件运行模式阻断响应 payload。
"""
ok: bool
status: str
operation: str
plugin_id: str = Field(alias='pluginId')
message: str
suggestion: str
capability: dict[str, object]
dry_run: bool | None = Field(default=None, alias='dryRun')
exit_code: int
PluginCatalogListResponseDict: TypeAlias = dict[str, object]
PluginCatalogInfoResponseDict: TypeAlias = dict[str, object]
PluginBatchRunResponseDict: TypeAlias = dict[str, object]
PluginRuntimeBlockedPayloadDict: TypeAlias = dict[str, object]
PluginRuntimeBlockedResponse: TypeAlias = PluginRuntimeBlockedPayloadDict
PluginRuntimeFailureResponse: TypeAlias = (
PluginNotFoundPayloadDict
| PluginRuntimeExceptionPayloadDict
| PluginRuntimeInvalidOperationPayloadDict
| PluginRuntimeBlockedResponse
)
PluginCatalogListResponse: TypeAlias = PluginCatalogListResponseDict | PluginRuntimeExceptionPayloadDict
PluginCatalogInfoResponse: TypeAlias = PluginCatalogInfoResponseDict | PluginRuntimeFailureResponse
PluginCheckResponse: TypeAlias = PluginCheckPayloadDict | PluginRuntimeFailureResponse
PluginDependencyCheckResponse: TypeAlias = PluginDependencyCheckPayloadDict | PluginRuntimeFailureResponse
PluginHealthResponse: TypeAlias = PluginRuntimeHealthResponsePayloadDict | PluginRuntimeFailureResponse
PluginConfigStateResponse: TypeAlias = PluginConfigStatePayloadDict | PluginRuntimeFailureResponse
PluginConfigExportResponse: TypeAlias = PluginConfigExportPayloadDict | PluginConfigExportFailurePayloadDict
PluginConfigImportResponse: TypeAlias = PluginConfigImportPayloadDict
PluginPrecheckResponse: TypeAlias = PluginRuntimePrecheckPayloadDict | PluginRuntimeFailureResponse
PluginPlanResponse: TypeAlias = PluginPlanResponsePayload | PluginRuntimeInvalidOperationPayloadDict
PluginBatchResponse: TypeAlias = PluginPlanResponse | PluginBatchRunResponseDict | PluginRuntimeExceptionPayloadDict
PluginBatchItemExecutionResponse: TypeAlias = (
BatchOperationResultPayload
| PluginLifecyclePayloadDict
| PluginEnableStatePayloadDict
| PluginRuntimeBatchItemUnsupportedPayloadDict
| PluginRuntimeExceptionPayloadDict
)
PluginDependencyInstallResponse: TypeAlias = PluginDependencyInstallPayloadDict | PluginRuntimeFailureResponse
PluginLifecycleResponse: TypeAlias = (
PluginLifecyclePayloadDict
| PluginEnableStatePayloadDict
| PluginEnableUpdateFailurePayloadDict
| PluginSafeUninstallPayloadDict
| PluginPurgeStatePayloadDict
| PluginRuntimeUpgradeBlockerPayloadDict
| PluginRuntimeFailureResponse
)
PluginDocumentationResponse: TypeAlias = (
PluginDocumentationPayloadDict | PluginNotFoundPayloadDict | PluginRuntimeExceptionPayloadDict
)
PluginAuditSnapshotResponse: TypeAlias = PluginAuditSnapshotPayloadDict | PluginAuditSnapshotFailurePayloadDict
PluginDiagnoseResponse: TypeAlias = (
PluginRuntimeDiagnosePayloadDict | PluginRuntimeDiagnoseFailurePayloadDict | PluginRuntimeExceptionPayloadDict
)
PluginManagementOperationResponse: TypeAlias = (
PluginCheckResponse
| PluginPrecheckResponse
| PluginHealthResponse
| PluginDiagnoseResponse
| PluginDocumentationResponse
| PluginLifecycleResponse
| PluginConfigStateResponse
| PluginConfigExportResponse
| PluginConfigImportResponse
| PluginDependencyCheckResponse
| PluginPlanResponse
| PluginBatchResponse
| PluginDependencyInstallResponse
)