mirror of
https://github.com/hansjone/netx.git
synced 2026-10-10 03:30:49 +08:00
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:
parent
88479245bb
commit
873f2bfe34
21 changed files with 1868 additions and 45 deletions
|
|
@ -26,6 +26,8 @@ const en = {
|
|||
managedNeDesc: "Multi-vendor SSH/Telnet NEs & connectivity test",
|
||||
collect: "Batch Collect",
|
||||
collectDesc: "Run custom CLI commands on connected NEs and save logs",
|
||||
webcrt: "WebCRT",
|
||||
webcrtDesc: "Interactive browser login to connected NEs (SSH/Telnet)",
|
||||
},
|
||||
},
|
||||
layout: {
|
||||
|
|
@ -33,6 +35,7 @@ const en = {
|
|||
titleUme: "UME Sync",
|
||||
titleManagedNe: "NE Management",
|
||||
titleCollect: "Batch Collect",
|
||||
titleWebcrt: "WebCRT",
|
||||
navUme: "UME",
|
||||
netxApi: "netx api",
|
||||
oclawBridge: "oclaw WSS",
|
||||
|
|
@ -135,6 +138,7 @@ const en = {
|
|||
importing: "Importing…",
|
||||
edit: "Edit",
|
||||
delete: "Delete",
|
||||
openTerminal: "Terminal",
|
||||
confirmDelete: "Delete this network element?",
|
||||
batchDelete: "Batch delete",
|
||||
batchDeleting: "Deleting…",
|
||||
|
|
@ -535,6 +539,42 @@ const en = {
|
|||
noHostName: "No host_name (sync inventory first)",
|
||||
},
|
||||
},
|
||||
webcrt: {
|
||||
title: "WebCRT",
|
||||
sessionManager: "Sessions",
|
||||
connect: "Connect",
|
||||
hint: "Pick a connected NE and open an interactive terminal in the browser. Credentials stay on the server.",
|
||||
hintCrt: "Select an NE on the left, then double-click or press ⚡. Includes managed and UME inventory; search + paging for large fleets.",
|
||||
filterKeyword: "Filter",
|
||||
filterKeywordPh: "Filter by name / IP / tag",
|
||||
empty: "No matching NEs. Switch source or refine the search.",
|
||||
open: "Open terminal",
|
||||
opening: "Connecting…",
|
||||
opened: "Opened {{name}}",
|
||||
disconnect: "Disconnect",
|
||||
closed: "Session closed",
|
||||
termPlaceholder: "No terminal session open",
|
||||
sessionMeta: "{{name}} · {{ip}}",
|
||||
source: {
|
||||
all: "All",
|
||||
managed: "Managed",
|
||||
ume: "UME",
|
||||
},
|
||||
status: {
|
||||
idle: "Idle",
|
||||
connecting: "Connecting",
|
||||
connected: "Connected",
|
||||
error: "Error",
|
||||
closed: "Closed",
|
||||
},
|
||||
err: {
|
||||
sessionLimit: "Session limit reached; close other terminals first",
|
||||
neNotFound: "Network element not found",
|
||||
credsIncomplete: "Incomplete username/password on this NE",
|
||||
cliProfile: "UME NEs require a CLI connect profile (default account / hop)",
|
||||
connectFailed: "Device login failed: {{detail}}",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export default en;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue