
# 签名插件

Acahti 有一个标准插件：**Phaevo**。它的源码仓库是 [phaevo](https://github.com/benchyard/phaevo)。插件仓库自行维护业务代码、前端包、文档和 GitHub 发布工作流。

工单、待办、文档、Chat 和 [Argos](testing.md) 都内置在 Acahti 中。它们的 API、MCP 工具、CLI 命令、附件、看板摘要和业务权限随网关一起发布，无需插件注册或插件访问授权。Chat 的会话、消息、文件和搜索只对会话成员可见。所有已登录成员都能读取 Argos。

## 清单与导航

「系统管理」→「插件」列出已验证的签名版本及其持久的生命周期状态。每个插件都支持同样的安装、启用、停用、卸载和访问授权控制。卸载会保留应用数据。顶栏把插件标签页列在内置栏目之后、「追踪」之前；已授权的插件元数据随会话一起下发，因此导航无需等待插件前端代码加载。导航项可以指定一个 [lucide](https://lucide.dev/icons/) `icon`。Web 应用会绘制 `activity`、`book-open`、`bot`、`bug`、`calendar`、`chart-line`、`clipboard-list`、`cloud`、`database`、`flask-conical`、`gauge`、`network`、`radar`、`rocket`、`server`、`shield-check`、`terminal` 和 `test-tube`；其他名称或未指定时显示默认的拼图图标。一个版本可以声明一个 UI 插槽 `sidebar`；目录会拒绝其他插槽。

只有当插件的签名版本受信任、注册处于启用状态且当前账号有访问权限时，插件才会出现。清单为空表示尚未配置任何已验证的版本。

## 独立交付

插件使用带服务运行时的 contract v3。源码流水线发布不可变的 OCI 镜像和前端制品。[acahti-plugins](https://github.com/acahti-ai/acahti-plugins) 中的运维配置限定发布者、源码仓库、来源、权限和制品摘要。发布者密钥和安装密钥保留在部署主机上。

替换服务之前，源码发布流水线会预留其生命周期操作、关闭准入，并等待已准入的请求完成。然后部署经过验证的制品，发布其签名目录条目，检查该版本并恢复准入。签名无效、缺少回执或摘要不匹配时一律失败关闭。插件发布不需要新的网关版本。

用户和团队授权会按实时成员关系检查。网关签发的断言有效期很短，并绑定到其受众、请求方法、路径和请求体。浏览器 Cookie 和共享的管理员凭据永远不会转发给插件服务。

## Phaevo 权限

Phaevo 挂载在标准 Acahti 界面内的 `/phaevo`，沿用其登录、顶栏、侧边栏、语言和主题。组织管理员管理环境、授权、封禁、设备和会话，并查看网关和审计事件。成员可以看到自己有权访问的环境和自己的会话，并可以断开自己的会话。两个服务都会执行授权检查。

管理请求使用一次性挑战和有效期 15 秒的签名请求断言。网络设备断言使用另一套协议。Phaevo 的公开根路径会重定向到它在 Acahti 中的标签页；它的控制 API 和 CLI 分发仍位于独立部署的服务源站。
