mirror of
https://github.com/insistence/RuoYi-Vue3-FastAPI.git
synced 2026-09-24 05:26:59 +00:00
* 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: 更新后端依赖文件
89 lines
2.5 KiB
Python
89 lines
2.5 KiB
Python
from dataclasses import dataclass
|
|
from typing import Literal
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class PluginCreateCommandOptions:
|
|
"""
|
|
插件创建命令选项。
|
|
|
|
:param backend_only: 是否只创建后端插件模板
|
|
:param frontend_only: 是否只创建前端插件模板
|
|
:param template: 插件模板名称
|
|
:param frontend_version: 前端 Vue 版本,支持 auto、vue2、vue3
|
|
:param no_migration: 是否不创建 migration 示例
|
|
:param no_seed: 是否不创建 seed 示例
|
|
:param no_job: 是否不创建定时任务示例
|
|
:param no_config: 是否不创建配置项示例
|
|
:param no_test: 是否不创建测试样例
|
|
:param dry_run: 是否仅预演
|
|
"""
|
|
|
|
backend_only: bool = False
|
|
frontend_only: bool = False
|
|
template: str = 'full-stack'
|
|
frontend_version: Literal['auto', 'vue2', 'vue3'] = 'auto'
|
|
no_migration: bool = False
|
|
no_seed: bool = False
|
|
no_job: bool = False
|
|
no_config: bool = False
|
|
no_test: bool = False
|
|
dry_run: bool = False
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class PluginDependencyInstallCommandOptions:
|
|
"""
|
|
插件依赖安装命令选项。
|
|
|
|
:param allow_prod: 是否允许生产环境危险命令
|
|
:param yes: 是否跳过确认
|
|
:param dry_run: 是否仅预演
|
|
:param policy_mode: 临时覆盖策略模式
|
|
:param allow_unlisted: dev 环境是否允许未命中 allowlist 的依赖仅告警
|
|
:param lockfile: 锁文件路径
|
|
:param offline_dir: 离线制品目录
|
|
:param require_lockfile: 是否要求锁文件
|
|
"""
|
|
|
|
allow_prod: bool = False
|
|
yes: bool = False
|
|
dry_run: bool = False
|
|
policy_mode: str | None = None
|
|
allow_unlisted: bool = False
|
|
lockfile: str = ''
|
|
offline_dir: str = ''
|
|
require_lockfile: bool | None = None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class PluginDependencyLockCommandOptions:
|
|
"""
|
|
插件依赖锁文件模板命令选项。
|
|
|
|
:param output_path: 输出锁文件路径
|
|
:param offline_dir: 离线制品目录
|
|
:param dry_run: 是否仅预演
|
|
:param overwrite: 是否覆盖已有锁文件
|
|
"""
|
|
|
|
output_path: str = ''
|
|
offline_dir: str = ''
|
|
dry_run: bool = False
|
|
overwrite: bool = False
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class PluginDependencyAllowlistExampleCommandOptions:
|
|
"""
|
|
插件依赖允许列表示例命令选项。
|
|
|
|
:param output_path: 输出允许列表路径
|
|
:param dry_run: 是否仅预演
|
|
:param overwrite: 是否覆盖已有文件
|
|
"""
|
|
|
|
output_path: str = ''
|
|
dry_run: bool = False
|
|
overwrite: bool = False
|