@chamvi/ ui (英语)
查姆维仪表板.
看看每个特工做什么,开始运行,看他们现场直播,回答同意,
调查特工状态和时间表,
由你自己服务 @chamvi/http 同一来源的应用程序.
目录
安装
npm install @chamvi/ui @chamvi/http @chamvi/core --save
仅限无害环境管理,节点.js >=26.0.0。 。 。 . @chamvi/core 财务报告和审定财务报表 @chamvi/http 是同伴的依赖关系。 包装了预建的Vue 3应用程序(dist/app); 服务器上除了静态文件路由之外,没有运行任何东西.
使用量
uiRoutes() 返回额外的路径 createHttpApp({ routes })数字 :
import { Engine, createMemoryStore } from '@chamvi/core';
import { createHttpApp, staticTokens } from '@chamvi/http';
import { uiRoutes } from '@chamvi/ui';
const engine = new Engine({
store: createMemoryStore(),
agents: [],
});
const admin = {
value: process.env.ADMIN_TOKEN ?? 'admin-token-0123456789',
id: 'admin',
permissions: ['*'],
};
export const app = createHttpApp({
engine,
auth: [staticTokens({ tokens: [admin] })],
// the dashboard at /ui: runs, approvals, agent state and schedules
routes: uiRoutes(),
});
打开 http://<host>/ui/ 并用应用程序的无记名标志签字.
视图
| 视图 | 显示 | 需求 |
|---|---|---|
| 探员 | 每张卡片:频道芯片(订阅),运行和等待运行,下个克龙起火,24 h活动,最后运行,预算,状态收藏;登陆页面 | run:read |
| 探员 | 预算、状态收藏、频道芯片、启动运行(带有 http.on() ),和标签概览、运行、状态、时间表 | run:read· ; agent:<name>:run 开始; state:read 代表国家 |
| 运行 | 每跑一跑,最新一跑,通过代理和状态过滤,有状态和标志;每5秒刷新一次 | run:read |
| 运行 | 有预算、信封(频道、订阅、地址、有效载荷)和步骤时间表(illm、工具、等)的头条,用流出文本在SSE上直播;取消 | run:read 或者说 agent:<name>:run· ; run:cancel 要取消的语句 |
| 核准 | 等待与请求的标题和正文、工具和它穿过的通道一起运行; 批准或拒绝有原因 | run:read 到列表中, agent:<name>:approve 回复 |
| 时间表 | 下个点火时间为每个经纪人订票 | run:read |
24小时的数字来自最新的100个运行(API没有时间过滤),并读取 100+ 超过.
一个频道的审批信息通过运行链接一个审批: /ui/approvals?run=<runId>&approval=<approvalId> (单位:千美元)approval 可选的,然后运行当前的一个). 链接没有符号 。 签名后,它通过登录(token form或authup)返回到同一个URL;签名后,仪表盘滚动到该运行的核准卡,突出并突出重点,答案通过 POST /runs/:id/approve 作为注册的校长。 不再等待批准(回答、过期、转到另一个)的运行显示通知连接运行;链接需要读取运行(run:read 或者说 agent:<name>:run) 此外 agent:<name>:approve:没有批准许可,卡片在403个通知下只显示读取,没有读取只显示403个通知. 运行页面和代理页面链接等待运行的方式相同.
签名
- 脚本 (默认):粘贴一个静态无记名符号(
staticTokens()联 合 国@chamvi/http) (中文(简体) ).GET /me检查它之前保存,在sessionStorage选项卡;在API无法到达的情况下重新加载. - 认证数字 :
uiRoutes({ auth: { authup: { url, clientId, realmId? } } })添加“ 继续认证”( 与 PKCE 的 OIDC 代码流); 其符号在标签中存在sessionStorage也不要在饼干里 认证客户端需要<origin><uiBase>/login/callback例如,作为重定向URI.https://chamvi.example.com/ui/login/callback和应用程序对等authup()验出者.auth: { tokens: false }隐藏符号形式.
一个已过期或被吊销的证书回答 401: 仪表盘刷新一次认证会话, 否则返回登录并返回它所打开的页面 .
选项
| 选项 | 默认 | 目的 |
|---|---|---|
basePath | '/ui' | 仪表板的路径在应用程序下 basePath小写/api + 键 /console 服务 /api/console/(中文(简体) ) |
auth.tokens | true | 提供符号表 |
auth.authup | 无 | { url, clientId, realmId? } 认证服务器 |
root | 软件包 dist/app | 另一个构建文件夹 |
丢弃无效的选项 InvalidAgentDefinitionError 联 合 国 @chamvi/core. 第一项请求报告缺失的建筑物(500个, onError),不在施工阶段,因此施工可能晚点才到.
服务
- 每个
GET下级basePath: 建筑的文件, 否则index.html对于没有扩展路径(客户路线),否则为404.index.html获得<base href="<uiBase>/">和配置为JSON块. - 隐藏在下面的文件
assets/为:cache-control: public, max-age=31536000, immutable其它东西no-cache。 。 。 . - 路径解码一次并拒绝使用
.., (中文(简体) ),.,空片段,回鞭,NUL和双码:建筑外再无读取. - 每个答案都包含着
Content-Security-Policy(单位:千美元)default-src 'self'只有应用程序的脚本,connect-src财务报告和审定财务报表form-action添加认证来源,frame-ancestors 'none', (中文(简体) ),referrer-policy: no-referrer(一个批准链接的ids 从不离开作为裁判员),x-content-type-options: nosniff财务报告和审定财务报表x-frame-options: DENY。 。 。 . - 该路由未经校正(应用程序没有秘密;每一次API呼叫都携带被签名的无记名符號)并跳过速率限制器.
在前缀下挂载应用程序的代理软件后面设置应用程序 basePath仪表板跟着它.
使用@ chamvi/ app
uiModule() 从 @chamvi/ui/module 提供仪表板路由( u)/ui 下级 CHAMVI_BASE_PATH并读 CHAMVI_UI_AUTHUP_CLIENT_ID, (中文(简体) ), CHAMVI_UI_AUTHUP_REALM_ID 财务报告和审定财务报表 AUTHUP_URL 当它叫,除非 auth 给出. @chamvi/app 是可选的对等点;主条目从不导入.
import { createApp } from '@chamvi/app';
import { uiModule } from '@chamvi/ui/module';
export default createApp({ agents, modules: [uiModule()] });
API 密码
| 导出 | 仁爱 | 目的 |
|---|---|---|
uiRoutes | 函数 | 仪表板路线 createHttpApp({ routes }) |
DEFAULT_UI_BASE_PATH | 常数 | '/ui' |
ASSET_CACHE_CONTROL | 常数 | 'public, max-age=31536000, immutable' |
DOCUMENT_CACHE_CONTROL | 常数 | 'no-cache' |
CONFIG_ELEMENT_ID | 常数 | 'chamvi-config',插入的配置块的id |
类型 : UiRoutesOptions, (中文(简体) ), UiConfig, (中文(简体) ), UiAuthupConfig。 。 。 .
@chamvi/ui/module数字 : uiModule, (中文(简体) ), UiModule, (中文(简体) ), UI_MODULE_NAME类型 UiModuleOptions。 。 。 .
许可证
原载 Apache 许可证 2.0。 。 。 .