feat(webcrt): add CRT-style browser terminal for managed and UME NEs

Ship an ops WebCRT module with xterm.js UI, WebSocket session bridge reusing hop/bastion login, searchable paged targets, and session audit limits.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-07-29 17:23:45 +08:00
parent 88479245bb
commit 873f2bfe34
21 changed files with 1868 additions and 45 deletions

View file

@ -26,6 +26,8 @@ const zh = {
managedNeDesc: "多厂商 SSH/Telnet 网元与连通性测试",
collect: "批量采集",
collectDesc: "对已连通网元执行定制 CLI 命令并保存日志",
webcrt: "WebCRT",
webcrtDesc: "浏览器内交互登录已连通网元(SSH/Telnet)",
},
},
layout: {
@ -33,6 +35,7 @@ const zh = {
titleUme: "UME同步",
titleManagedNe: "网元管理",
titleCollect: "批量采集",
titleWebcrt: "WebCRT",
navUme: "UME 对接",
netxApi: "netx api",
oclawBridge: "oclaw WSS",
@ -134,6 +137,7 @@ const zh = {
importing: "导入中…",
edit: "编辑",
delete: "删除",
openTerminal: "终端",
confirmDelete: "确定删除该网元?",
batchDelete: "批量删除",
batchDeleting: "删除中…",
@ -533,6 +537,42 @@ const zh = {
noHostName: "无 host_name(需先同步网元)",
},
},
webcrt: {
title: "WebCRT",
sessionManager: "会话管理",
connect: "连接",
hint: "选择已连通网元,在浏览器中打开交互式终端。凭据由服务端解密,不会下发到前端。",
hintCrt: "在左侧选择网元后双击或点 ⚡ 连接;支持托管网元与 UME 网元,可用搜索与分页浏览上万台设备。",
filterKeyword: "筛选",
filterKeywordPh: "按名称 / IP / 标签筛选",
empty: "没有匹配的网元。可切换来源或调整搜索关键字。",
open: "打开终端",
opening: "连接中…",
opened: "已打开 {{name}}",
disconnect: "断开",
closed: "会话已断开",
termPlaceholder: "尚未打开终端会话",
sessionMeta: "{{name}} · {{ip}}",
source: {
all: "全部",
managed: "托管",
ume: "UME",
},
status: {
idle: "空闲",
connecting: "连接中",
connected: "已连接",
error: "错误",
closed: "已关闭",
},
err: {
sessionLimit: "并发会话已达上限,请先关闭其他终端",
neNotFound: "网元不存在",
credsIncomplete: "网元账号或密码不完整",
cliProfile: "UME 网元需要先配置 CLI 连接模板(默认账号/跳板)",
connectFailed: "登录设备失败:{{detail}}",
},
},
};
export default zh;