feat(plugin): 建立可信来源准入与安装恢复 (#6462)

This commit is contained in:
InfinityPacer
2026-08-26 07:52:00 +08:00
committed by GitHub
parent 3272f72823
commit 71db425c07
58 changed files with 11471 additions and 1493 deletions
+84 -14
View File
@@ -13,8 +13,8 @@
"runtime_to_db": [],
"workflow_to_db": []
},
"edge_count": 6706,
"edge_sha256": "dc1249bc5f0ae05ec11c680236cf4dd389258cf883fbed66ed57b53875f9ef0e",
"edge_count": 6767,
"edge_sha256": "659804b4d1c0f3ff4d96e8c9a059df0afb74c91f368a73188c740558114efa61",
"edges": [
"app -> app.runtime",
"app -> app.runtime.compat",
@@ -157,6 +157,8 @@
"app.adapters.system.plugin.package -> app.adapters",
"app.adapters.system.plugin.package -> app.adapters.external",
"app.adapters.system.plugin.package -> app.adapters.external.market",
"app.adapters.system.plugin.package -> app.adapters.system",
"app.adapters.system.plugin.package -> app.adapters.system.host",
"app.adapters.system.plugin.package -> app.runtime",
"app.adapters.system.plugin.package -> app.runtime.execution",
"app.adapters.system.plugin.package -> app.runtime.log",
@@ -590,10 +592,6 @@
"app.agent.tools.impl._plugin_tool_utils -> app.adapters",
"app.agent.tools.impl._plugin_tool_utils -> app.adapters.external",
"app.agent.tools.impl._plugin_tool_utils -> app.adapters.external.market",
"app.agent.tools.impl._plugin_tool_utils -> app.adapters.external.server",
"app.agent.tools.impl._plugin_tool_utils -> app.adapters.system",
"app.agent.tools.impl._plugin_tool_utils -> app.adapters.system.plugin",
"app.agent.tools.impl._plugin_tool_utils -> app.adapters.system.plugin.package",
"app.agent.tools.impl._plugin_tool_utils -> app.agent",
"app.agent.tools.impl._plugin_tool_utils -> app.agent.tools",
"app.agent.tools.impl._plugin_tool_utils -> app.agent.tools.base",
@@ -602,7 +600,7 @@
"app.agent.tools.impl._plugin_tool_utils -> app.application.configuration",
"app.agent.tools.impl._plugin_tool_utils -> app.application.plugin",
"app.agent.tools.impl._plugin_tool_utils -> app.application.plugin.folders",
"app.agent.tools.impl._plugin_tool_utils -> app.application.plugin.install",
"app.agent.tools.impl._plugin_tool_utils -> app.application.plugin.gateway",
"app.agent.tools.impl._plugin_tool_utils -> app.application.plugin.routes",
"app.agent.tools.impl._plugin_tool_utils -> app.application.plugin.runtime",
"app.agent.tools.impl._plugin_tool_utils -> app.application.scheduling",
@@ -2100,9 +2098,6 @@
"app.api.endpoints.plugin -> app.adapters.external",
"app.api.endpoints.plugin -> app.adapters.external.market",
"app.api.endpoints.plugin -> app.adapters.external.server",
"app.api.endpoints.plugin -> app.adapters.system",
"app.api.endpoints.plugin -> app.adapters.system.plugin",
"app.api.endpoints.plugin -> app.adapters.system.plugin.package",
"app.api.endpoints.plugin -> app.adapters.web",
"app.api.endpoints.plugin -> app.adapters.web.security",
"app.api.endpoints.plugin -> app.adapters.web.security.access",
@@ -2119,13 +2114,13 @@
"app.api.endpoints.plugin -> app.application.plugin",
"app.api.endpoints.plugin -> app.application.plugin.config",
"app.api.endpoints.plugin -> app.application.plugin.folders",
"app.api.endpoints.plugin -> app.application.plugin.install",
"app.api.endpoints.plugin -> app.application.plugin.gateway",
"app.api.endpoints.plugin -> app.application.plugin.routes",
"app.api.endpoints.plugin -> app.application.plugin.runtime",
"app.api.endpoints.plugin -> app.application.plugin.transaction",
"app.api.endpoints.plugin -> app.application.scheduling",
"app.api.endpoints.plugin -> app.runtime",
"app.api.endpoints.plugin -> app.runtime.cache",
"app.api.endpoints.plugin -> app.runtime.execution",
"app.api.endpoints.plugin -> app.runtime.extensions",
"app.api.endpoints.plugin -> app.runtime.extensions.plugin",
"app.api.endpoints.plugin -> app.runtime.extensions.plugin.contracts",
@@ -2747,6 +2742,11 @@
"app.application.notification -> app.schemas.types",
"app.application.outbox -> app.schemas",
"app.application.outbox -> app.schemas.types",
"app.application.plugin.admission -> app.application",
"app.application.plugin.admission -> app.application.plugin",
"app.application.plugin.admission -> app.application.plugin.identity",
"app.application.plugin.admission -> app.application.plugin.inventory",
"app.application.plugin.admission -> app.application.plugin.source",
"app.application.plugin.config -> app.schemas",
"app.application.plugin.config -> app.schemas.exception",
"app.application.plugin.folders -> app.application",
@@ -2755,16 +2755,52 @@
"app.application.plugin.folders -> app.runtime.log",
"app.application.plugin.folders -> app.schemas",
"app.application.plugin.folders -> app.schemas.types",
"app.application.plugin.gateway -> app.application",
"app.application.plugin.gateway -> app.application.plugin",
"app.application.plugin.gateway -> app.application.plugin.admission",
"app.application.plugin.gateway -> app.application.plugin.identity",
"app.application.plugin.gateway -> app.application.plugin.install",
"app.application.plugin.gateway -> app.application.plugin.inventory",
"app.application.plugin.gateway -> app.application.plugin.lifecycle",
"app.application.plugin.gateway -> app.application.plugin.source",
"app.application.plugin.identity_migration -> app.application",
"app.application.plugin.identity_migration -> app.application.plugin",
"app.application.plugin.identity_migration -> app.application.plugin.identity",
"app.application.plugin.identity_migration -> app.application.plugin.source",
"app.application.plugin.identity_migration -> app.runtime",
"app.application.plugin.identity_migration -> app.runtime.log",
"app.application.plugin.install -> app.application",
"app.application.plugin.install -> app.application.plugin",
"app.application.plugin.install -> app.application.plugin.lifecycle",
"app.application.plugin.install -> app.application.plugin.admission",
"app.application.plugin.install -> app.application.plugin.identity",
"app.application.plugin.install -> app.application.plugin.source",
"app.application.plugin.install -> app.application.plugin.transaction",
"app.application.plugin.install -> app.runtime",
"app.application.plugin.install -> app.runtime.execution",
"app.application.plugin.install -> app.runtime.log",
"app.application.plugin.install -> app.schemas",
"app.application.plugin.install -> app.schemas.exception",
"app.application.plugin.inventory -> app.application",
"app.application.plugin.inventory -> app.application.plugin",
"app.application.plugin.inventory -> app.application.plugin.identity",
"app.application.plugin.inventory -> app.application.plugin.source",
"app.application.plugin.recovery -> app.application",
"app.application.plugin.recovery -> app.application.plugin",
"app.application.plugin.recovery -> app.application.plugin.install",
"app.application.plugin.recovery -> app.application.plugin.transaction",
"app.application.plugin.recovery -> app.runtime",
"app.application.plugin.recovery -> app.runtime.log",
"app.application.plugin.runtime -> app.schemas",
"app.application.plugin.runtime -> app.schemas.types",
"app.application.plugin.source -> app.application",
"app.application.plugin.source -> app.application.plugin",
"app.application.plugin.source -> app.application.plugin.identity",
"app.application.plugin.source -> app.foundation",
"app.application.plugin.source -> app.foundation.version",
"app.application.plugin.transaction -> app.application",
"app.application.plugin.transaction -> app.application.database",
"app.application.plugin.transaction -> app.application.plugin",
"app.application.plugin.transaction -> app.application.plugin.identity",
"app.application.recognition -> app.application",
"app.application.recognition -> app.application.configuration",
"app.application.recognition -> app.schemas",
@@ -3637,6 +3673,14 @@
"app.db.adapters.pluginidentity -> app.db.oper",
"app.db.adapters.pluginidentity -> app.db.oper.pluginidentity",
"app.db.adapters.pluginidentity -> app.db.uow",
"app.db.adapters.plugininstallation -> app.application",
"app.db.adapters.plugininstallation -> app.application.plugin",
"app.db.adapters.plugininstallation -> app.application.plugin.identity",
"app.db.adapters.plugininstallation -> app.application.plugin.transaction",
"app.db.adapters.plugininstallation -> app.db",
"app.db.adapters.plugininstallation -> app.db.models",
"app.db.adapters.plugininstallation -> app.db.models.pluginidentity",
"app.db.adapters.plugininstallation -> app.db.models.plugininstallation",
"app.db.adapters.site -> app.db",
"app.db.adapters.site -> app.db.oper",
"app.db.adapters.site -> app.db.oper.site",
@@ -3727,6 +3771,8 @@
"app.db.models.plugindata -> app.db.base",
"app.db.models.pluginidentity -> app.db",
"app.db.models.pluginidentity -> app.db.base",
"app.db.models.plugininstallation -> app.db",
"app.db.models.plugininstallation -> app.db.base",
"app.db.models.site -> app.db",
"app.db.models.site -> app.db.base",
"app.db.models.siteicon -> app.db",
@@ -6344,6 +6390,7 @@
"app.startup.initializers.modules -> app.application.outbox",
"app.startup.initializers.modules -> app.application.plugin",
"app.startup.initializers.modules -> app.application.plugin.runtime",
"app.startup.initializers.modules -> app.application.plugin.transaction",
"app.startup.initializers.modules -> app.application.security",
"app.startup.initializers.modules -> app.application.security.auth",
"app.startup.initializers.modules -> app.application.security.passkeys",
@@ -6375,6 +6422,8 @@
"app.startup.initializers.modules -> app.db.adapters.chain",
"app.startup.initializers.modules -> app.db.adapters.download",
"app.startup.initializers.modules -> app.db.adapters.outbox",
"app.startup.initializers.modules -> app.db.adapters.pluginidentity",
"app.startup.initializers.modules -> app.db.adapters.plugininstallation",
"app.startup.initializers.modules -> app.db.adapters.site",
"app.startup.initializers.modules -> app.db.adapters.subscription",
"app.startup.initializers.modules -> app.db.adapters.transaction",
@@ -6446,11 +6495,22 @@
"app.startup.initializers.plugins -> app.adapters.system.plugin.manifest",
"app.startup.initializers.plugins -> app.adapters.system.plugin.package",
"app.startup.initializers.plugins -> app.application",
"app.startup.initializers.plugins -> app.application.commands",
"app.startup.initializers.plugins -> app.application.configuration",
"app.startup.initializers.plugins -> app.application.plugin",
"app.startup.initializers.plugins -> app.application.plugin.catalog",
"app.startup.initializers.plugins -> app.application.plugin.data",
"app.startup.initializers.plugins -> app.application.plugin.gateway",
"app.startup.initializers.plugins -> app.application.plugin.identity",
"app.startup.initializers.plugins -> app.application.plugin.identity_migration",
"app.startup.initializers.plugins -> app.application.plugin.install",
"app.startup.initializers.plugins -> app.application.plugin.inventory",
"app.startup.initializers.plugins -> app.application.plugin.lifecycle",
"app.startup.initializers.plugins -> app.application.plugin.recovery",
"app.startup.initializers.plugins -> app.application.plugin.routes",
"app.startup.initializers.plugins -> app.application.plugin.runtime",
"app.startup.initializers.plugins -> app.application.plugin.transaction",
"app.startup.initializers.plugins -> app.application.scheduling",
"app.startup.initializers.plugins -> app.application.site",
"app.startup.initializers.plugins -> app.db",
"app.startup.initializers.plugins -> app.db.oper",
@@ -6498,6 +6558,7 @@
"app.startup.lifecycle -> app.application",
"app.startup.lifecycle -> app.application.plugin",
"app.startup.lifecycle -> app.application.plugin.lifecycle",
"app.startup.lifecycle -> app.application.plugin.recovery",
"app.startup.lifecycle -> app.application.plugin.runtime",
"app.startup.lifecycle -> app.chain",
"app.startup.lifecycle -> app.chain.system",
@@ -6723,7 +6784,7 @@
"app.workflow.actions.transfer_file -> app.workflow",
"app.workflow.actions.transfer_file -> app.workflow.actions"
],
"module_count": 824,
"module_count": 833,
"modules": [
"app",
"app.adapters",
@@ -7014,15 +7075,22 @@
"app.application.notification",
"app.application.outbox",
"app.application.plugin",
"app.application.plugin.admission",
"app.application.plugin.catalog",
"app.application.plugin.config",
"app.application.plugin.data",
"app.application.plugin.folders",
"app.application.plugin.gateway",
"app.application.plugin.identity",
"app.application.plugin.identity_migration",
"app.application.plugin.install",
"app.application.plugin.inventory",
"app.application.plugin.lifecycle",
"app.application.plugin.recovery",
"app.application.plugin.routes",
"app.application.plugin.runtime",
"app.application.plugin.source",
"app.application.plugin.transaction",
"app.application.recognition",
"app.application.rss",
"app.application.rules",
@@ -7109,6 +7177,7 @@
"app.db.adapters.download",
"app.db.adapters.outbox",
"app.db.adapters.pluginidentity",
"app.db.adapters.plugininstallation",
"app.db.adapters.site",
"app.db.adapters.subscription",
"app.db.adapters.transaction",
@@ -7133,6 +7202,7 @@
"app.db.models.passkey",
"app.db.models.plugindata",
"app.db.models.pluginidentity",
"app.db.models.plugininstallation",
"app.db.models.site",
"app.db.models.siteicon",
"app.db.models.sitestatistic",
+131 -131
View File
@@ -1,41 +1,41 @@
{
"schema_version": 2,
"generated_at": "2026-08-24T23:06:26.288074+00:00",
"platform": "macOS-26.5.2-arm64-arm-64bit-Mach-O",
"python": "3.14.3",
"generated_at": "2026-08-25T23:30:44.529042+00:00",
"platform": "macOS-26.4.1-arm64-arm-64bit-Mach-O",
"python": "3.14.7",
"repeat": 3,
"targets": {
"app.startup.lifecycle": {
"loaded_app_module_count": 364,
"max_ms": 904.069,
"median_ms": 898.164,
"min_ms": 896.39,
"loaded_app_module_count": 378,
"max_ms": 909.62,
"median_ms": 908.975,
"min_ms": 904.929,
"samples_ms": [
904.069,
896.39,
898.164
909.62,
904.929,
908.975
]
},
"app.factory": {
"loaded_app_module_count": 376,
"max_ms": 923.165,
"median_ms": 921.768,
"min_ms": 921.249,
"loaded_app_module_count": 390,
"max_ms": 952.709,
"median_ms": 934.785,
"min_ms": 916.888,
"samples_ms": [
921.768,
923.165,
921.249
952.709,
934.785,
916.888
]
},
"app.main": {
"loaded_app_module_count": 378,
"max_ms": 1069.392,
"median_ms": 1037.036,
"min_ms": 1027.603,
"loaded_app_module_count": 392,
"max_ms": 947.928,
"median_ms": 938.251,
"min_ms": 932.597,
"samples_ms": [
1069.392,
1037.036,
1027.603
938.251,
932.597,
947.928
]
}
},
@@ -47,56 +47,25 @@
{
"mode": "normal",
"enabled_component_count": 25,
"startup_ms": 0.645,
"full_lifespan_ms": 1.493,
"startup_ms": 0.581,
"full_lifespan_ms": 1.397,
"stage_ms": {
"后台任务登记器": 0.071,
"数据库准备": 0.043,
"HTTP 基础能力": 0.029,
"领域依赖装配": 0.029,
"数据库引擎预热": 0.024,
"数据库连接预算": 0.023,
"路由": 0.022,
"模块服务": 0.024,
"插件备份恢复": 0.025,
"插件": 0.021,
"定时器": 0.025,
"监控器": 0.021,
"待处理整理回放": 0.027,
"命令服务": 0.024,
"工作流": 0.021,
"插件同步与启动收尾": 0.021
},
"threads_before": 2,
"threads_started": 2,
"threads_after": 2,
"tasks_before": 1,
"tasks_started": 1,
"tasks_after": 1,
"database_connections_started": 0
},
{
"mode": "normal",
"enabled_component_count": 25,
"startup_ms": 0.644,
"full_lifespan_ms": 1.462,
"stage_ms": {
"后台任务登记器": 0.076,
"数据库准备": 0.04,
"HTTP 基础能力": 0.03,
"领域依赖装配": 0.028,
"数据库引擎预热": 0.025,
"数据库连接预算": 0.023,
"路由": 0.024,
"后台任务登记器": 0.062,
"数据库准备": 0.036,
"HTTP 基础能力": 0.032,
"领域依赖装配": 0.032,
"数据库引擎预热": 0.028,
"数据库连接预算": 0.026,
"路由": 0.028,
"模块服务": 0.023,
"插件备份恢复": 0.024,
"插件": 0.02,
"定时器": 0.022,
"插件": 0.024,
"定时器": 0.025,
"监控器": 0.024,
"待处理整理回放": 0.02,
"待处理整理回放": 0.025,
"命令服务": 0.024,
"工作流": 0.024,
"插件同步与启动收尾": 0.023
"工作流": 0.025,
"插件同步与启动收尾": 0.025
},
"threads_before": 2,
"threads_started": 2,
@@ -109,25 +78,56 @@
{
"mode": "normal",
"enabled_component_count": 25,
"startup_ms": 0.637,
"full_lifespan_ms": 1.493,
"startup_ms": 0.596,
"full_lifespan_ms": 1.431,
"stage_ms": {
"后台任务登记器": 0.077,
"数据库准备": 0.038,
"HTTP 基础能力": 0.03,
"领域依赖装配": 0.028,
"数据库引擎预热": 0.024,
"数据库连接预算": 0.025,
"路由": 0.025,
"后台任务登记器": 0.062,
"数据库准备": 0.036,
"HTTP 基础能力": 0.033,
"领域依赖装配": 0.036,
"数据库引擎预热": 0.03,
"数据库连接预算": 0.027,
"路由": 0.029,
"模块服务": 0.025,
"插件备份恢复": 0.023,
"插件": 0.02,
"定时器": 0.024,
"监控器": 0.022,
"待处理整理回放": 0.022,
"插件": 0.024,
"定时器": 0.029,
"监控器": 0.024,
"待处理整理回放": 0.024,
"命令服务": 0.024,
"工作流": 0.02,
"插件同步与启动收尾": 0.023
"插件同步与启动收尾": 0.025
},
"threads_before": 2,
"threads_started": 2,
"threads_after": 2,
"tasks_before": 1,
"tasks_started": 1,
"tasks_after": 1,
"database_connections_started": 0
},
{
"mode": "normal",
"enabled_component_count": 25,
"startup_ms": 0.6,
"full_lifespan_ms": 1.435,
"stage_ms": {
"后台任务登记器": 0.067,
"数据库准备": 0.04,
"HTTP 基础能力": 0.033,
"领域依赖装配": 0.031,
"数据库引擎预热": 0.031,
"数据库连接预算": 0.028,
"路由": 0.03,
"模块服务": 0.024,
"插件备份恢复": 0.026,
"插件": 0.025,
"定时器": 0.025,
"监控器": 0.025,
"待处理整理回放": 0.02,
"命令服务": 0.025,
"工作流": 0.023,
"插件同步与启动收尾": 0.024
},
"threads_before": 2,
"threads_started": 2,
@@ -138,8 +138,8 @@
"database_connections_started": 0
}
],
"median_startup_ms": 0.644,
"median_full_lifespan_ms": 1.493,
"median_startup_ms": 0.596,
"median_full_lifespan_ms": 1.431,
"enabled_component_count": 25,
"enabled_components": [
"后台任务登记器",
@@ -174,42 +174,18 @@
{
"mode": "safe",
"enabled_component_count": 13,
"startup_ms": 0.478,
"full_lifespan_ms": 0.888,
"startup_ms": 0.427,
"full_lifespan_ms": 0.896,
"stage_ms": {
"后台任务登记器": 0.072,
"数据库准备": 0.042,
"HTTP 基础能力": 0.031,
"领域依赖装配": 0.033,
"数据库引擎预热": 0.027,
"数据库连接预算": 0.024,
"路由": 0.023,
"模块服务": 0.025,
"插件同步与启动收尾": 0.025
},
"threads_before": 2,
"threads_started": 2,
"threads_after": 2,
"tasks_before": 1,
"tasks_started": 1,
"tasks_after": 1,
"database_connections_started": 0
},
{
"mode": "safe",
"enabled_component_count": 13,
"startup_ms": 0.497,
"full_lifespan_ms": 0.913,
"stage_ms": {
"后台任务登记器": 0.078,
"后台任务登记器": 0.067,
"数据库准备": 0.038,
"HTTP 基础能力": 0.03,
"领域依赖装配": 0.032,
"数据库引擎预热": 0.027,
"HTTP 基础能力": 0.032,
"领域依赖装配": 0.033,
"数据库引擎预热": 0.029,
"数据库连接预算": 0.026,
"路由": 0.026,
"模块服务": 0.025,
"插件同步与启动收尾": 0.022
"路由": 0.03,
"模块服务": 0.03,
"插件同步与启动收尾": 0.027
},
"threads_before": 2,
"threads_started": 2,
@@ -222,18 +198,42 @@
{
"mode": "safe",
"enabled_component_count": 13,
"startup_ms": 0.537,
"full_lifespan_ms": 0.962,
"startup_ms": 0.417,
"full_lifespan_ms": 0.832,
"stage_ms": {
"后台任务登记器": 0.084,
"数据库准备": 0.039,
"HTTP 基础能力": 0.031,
"领域依赖装配": 0.028,
"数据库引擎预热": 0.025,
"数据库连接预算": 0.024,
"路由": 0.025,
"模块服务": 0.026,
"插件同步与启动收尾": 0.024
"后台任务登记器": 0.067,
"数据库准备": 0.035,
"HTTP 基础能力": 0.032,
"领域依赖装配": 0.031,
"数据库引擎预热": 0.032,
"数据库连接预算": 0.027,
"路由": 0.027,
"模块服务": 0.027,
"插件同步与启动收尾": 0.026
},
"threads_before": 2,
"threads_started": 2,
"threads_after": 2,
"tasks_before": 1,
"tasks_started": 1,
"tasks_after": 1,
"database_connections_started": 0
},
{
"mode": "safe",
"enabled_component_count": 13,
"startup_ms": 0.409,
"full_lifespan_ms": 0.822,
"stage_ms": {
"后台任务登记器": 0.067,
"数据库准备": 0.034,
"HTTP 基础能力": 0.03,
"领域依赖装配": 0.029,
"数据库引擎预热": 0.028,
"数据库连接预算": 0.026,
"路由": 0.03,
"模块服务": 0.027,
"插件同步与启动收尾": 0.022
},
"threads_before": 2,
"threads_started": 2,
@@ -244,8 +244,8 @@
"database_connections_started": 0
}
],
"median_startup_ms": 0.497,
"median_full_lifespan_ms": 0.913,
"median_startup_ms": 0.417,
"median_full_lifespan_ms": 0.832,
"enabled_component_count": 13,
"enabled_components": [
"后台任务登记器",