Skip to content

Releases: jiewenhuang/plugin-software

Release list

v1.0.0

Choose a tag to compare

@jiewenhuang jiewenhuang released this 29 Jul 08:07

软件中心 v1.0.0

这是 Software Manager for Halo 的首个稳定版本,为 Halo 提供独立、主题中立的软件内容管理、公开查询和安全下载能力。主题可以通过 Finder、Theme Router 或版本化 REST API 接入,插件本身不依赖任何特定主题。

版本亮点

  • 完整的软件领域模型:支持软件、版本、下载源、分类、标签和专题的创建与管理,并覆盖发布状态、排序、统计、SEO 及关联内容。
  • Console 管理界面:提供软件编辑器,以及分类、标签、专题、版本和下载源管理;下载源支持类型、优先级、健康状态和门禁配置。
  • 主题中立的公开集成:提供 softwareFinder、公共主题路由和 v1alpha1 REST API,公开 VO 与 Console/原始 Extension 分离,方便不同主题或客户端消费。
  • 安全下载授权:下载详情不直接暴露最终 URL、storageKey、提取码或密码等敏感字段;通过短期 download-grants 授权获取下载信息,并支持 Cloudflare Turnstile 验证。
  • 权限与安全边界:新增软件查看、软件管理和敏感下载配置等角色模板;下载目标执行 HTTP(S)/站内路径校验,验证码异常、Secret 缺失或目标不安全时按 fail-closed 处理,敏感响应使用 no-store
  • 评论与可选 AI:将 SoftwareApp 注册为 Halo 评论资源;可选接入 AI Foundation,为软件摘要、详情和 SEO 提供 Console 编辑建议,不影响核心软件管理功能。
  • 开发者契约与工程化:提供主题 API、REST API 和 OpenAPI 文档,并配套 Java、Vue、公共 VO、Router、RBAC、下载安全和 AI 能力契约测试。

兼容性

  • Halo >= 2.25.0
  • Java 21(仅从源码构建插件时需要)
  • AI Foundation >= 1.0.0-SNAPSHOT< 2.0.0(可选,仅用于 AI 编辑辅助)

安装

  1. GitHub Releases 下载 software 插件 JAR。
  2. 在 Halo Console 的“插件”页面上传并启用。
  3. 在“软件”菜单中配置选项、分类、标签、专题、软件、版本和下载源。
  4. 如使用验证码下载,在 Halo 中创建保存 Turnstile Secret Key 的 Secret,再完成插件“下载安全”设置。
  5. 使用主题或其他客户端时,仅调用公开 Finder/Router/REST API,不要读取原始 Extension 或 Console API 中的敏感字段。

升级注意

  • 主题接入应使用 GET /download-optionsPOST /download-grants 获取下载授权,不应继续依赖详情接口中的最终下载 URL。
  • 公开详情中的下载源 URL 为空是预期行为;提取码、密码和存储键只在完成授权后返回,并且只应保存在当前下载流程的内存中。
  • v1alpha1 公共契约、getHome()/SoftwareHomeVo 和主题 Router 均属于跨项目接口,升级主题或自定义客户端时请同步查看 主题 API 文档REST API 文档
  • AI Foundation 缺失、禁用或未配置模型时,软件管理、公开 API、Finder 和主题路由仍应正常工作。

已知边界

  • 插件只负责软件数据、查询、授权和权限;网格/列表布局、颜色、动画等展示逻辑由主题负责。
  • 应用市场发布当前未启用,本版本通过 GitHub Release 分发。

许可证

GPL-3.0