用途:在 Next.js 应用的代理设置中添加 LTI 标签页,使代理能加入学习管理系统(Canvas、Brightspace、Blackboard、Moodle),供学生在课程内直接使用。
主要能力:页面有一个“LTI launches”总开关,控制代理的 is_lti_accessible 设置;开启后显示四个子标签页。Links 子标签页管理启动该代理的 LTI 链接,显示名称、目标链接 URI(含复制)、状态;链接创建为异步,POST 带 async_create: true,后端返回 202 与 { id, status: "pending" },之后需轮询或刷新直到 Ready/Failed,失败行提供 Retry(删除并重新异步创建),且仅 Ready 状态可编辑重命名。Keys 子标签页管理平台级 RSA 签名密钥,可创建(名称、服务端生成密钥对)、重命名、查看/复制公钥 PEM 与 JWK、删除(仅当未被任何 LTI 工具关联时)。Tools 子标签页管理平台级外部 LTI 集成,字段含名称、Issuer、Client ID、Auth Login URL、Auth Token URL、Auth Audience(可选)、JWKS、Signing Key(先在 Keys 创建)、Deployment IDs。Tool Endpoints 子标签页为只读固定端点,由 lmsDomain 构建:Redirect URI {lmsDomain}/lti/1p3/launch/、Login Initiations {lmsDomain}/lti/1p3/login/、Deep Linking {lmsDomain}/lti/1p3/deep-linking/launch/、JWKS {lmsDomain}/lti/1p3/pub/orgs/{orgShortName}/jwks/。
用法:需先完成 /iblai-vibe-auth 认证、在 .mcp.json 配置 @iblai/mcp,并用 AgentSettingsProvider 包裹路由(见 /iblai-vibe-agent-setting 第 2 步)。然后创建 app/(app)/agents/[mentorId]/lti/page.tsx,从 @iblai/iblai-js/web-containers/next 导入 AgentLtiTab 并传入 lmsDomain。组件从 AgentSettingsProvider 读取 tenantKey、mentorId、username、enableRBAC;lmsDomain 必须由宿主提供,需向用户索取真实 mentorId(代理 UUID)与 LMS 域名,不可编造。可选 labels 覆盖文案,可用 MCP 工具 get_component_info 查询组件。验证:运行 /iblai-vibe-ops-test,确保 pnpm build 零错误、pnpm test(vitest)通过,并可启动 pnpm dev 截图测试。
限制:Keys 与 Tools 为组织平台级共享,非按代理隔离,仅 Links 子标签页与代理相关。删除密钥前需先移除或重新关联使用它的 LTI 工具。异步链接创建不应直接 await POST,需轮询 useGetLtiMentorDetailQuery 或重新拉取列表。需安装 sonner 与 @iblai/iblai-web-mentor,并配置 mentorReducer、mentorMiddleware 与 initializeDataLayer()。项目根目录需有 iblai.env(含 PLATFORM、DOMAIN、TOKEN)。价格、平台支持范围等资料暂未提供。