chaos-zhu
|
2fc685cd73
|
feat: 实例列表页优化
|
2026-05-16 20:28:03 +08:00 |
|
chaos-zhu
|
7b6870b8e1
|
feat: 移除list的服务器状态展示
|
2026-05-16 20:24:05 +08:00 |
|
chaos-zhu
|
772f5d6447
|
feat: 修复&优化&调整布局
|
2026-05-16 20:15:22 +08:00 |
|
chaos-zhu
|
07c67d5e6d
|
docs(mobile): 第一轮迭代设计文档
|
2026-05-16 18:37:47 +08:00 |
|
chaos-zhu
|
1131cd9355
|
feat(mobile): 补充密钥类型
|
2026-05-16 17:36:44 +08:00 |
|
chaos-zhu
|
4bb57bd6ba
|
feat(mobile): 端到端串联登录、列表与终端
* 把 LoginController 提升到 _EasyNodeAppState 字段,避免 build 期间
反复创建并丢失回调;
* 登录成功时把服务端返回的 deviceId 写入安全存储,登出时清理,
为未来调用 revoke-login 接口预留持久化;
* 服务端 mobile 控制器把 socket/terminal 的依赖改为惰性 require,
让纯单元测试不再触发 terminal-session 中的 global.logger 引用错误。
|
2026-05-16 17:30:39 +08:00 |
|
chaos-zhu
|
b3a2a53a1e
|
feat(mobile): 实现原生 SSH 终端
SshTerminalController 把 dartssh2 shell 会话和 xterm 终端绑定,
支持密码与私钥认证、stdout/stderr 转发、resize 与单独的 writeInput
通道;TerminalToolbar 提供 Esc/Tab/方向键/Ctrl-C/Ctrl-D/Enter/断开
按钮,所有按键直接写入 SSH 会话;TerminalPage 在 initState 中
连接、dispose 中断开,并展示连接错误。
|
2026-05-16 17:22:10 +08:00 |
|
chaos-zhu
|
8d89cd2d73
|
feat(mobile): 服务器列表页与可注入仓库
将 ServerRepository 重构为接口,由 ApiServerRepository 提供
实际网络与解密实现,使列表页 widget 测试可以注入伪仓库覆盖
空列表、错误重试、连接失败 SnackBar 与登出按钮路径。
|
2026-05-16 17:18:51 +08:00 |
|
chaos-zhu
|
53d9807daf
|
feat(mobile): 添加登录页与应用骨架路由
登录页提供服务端地址、用户名、密码、MFA、有效期与保存密码开关,
并在 HTTP 协议时弹出风险确认对话框;应用骨架根据 session 在
LoginPage 与 ServerListPage 间切换,并先放置一个 TerminalPage
占位组件以保持分析器干净,真正的终端实现将在 Task 12 落地。
|
2026-05-16 17:15:47 +08:00 |
|
chaos-zhu
|
1d779a082e
|
feat(mobile): 添加服务器模型与凭据仓库
- features/servers/server_model.dart: 仅保留移动端列表所需字段,
fromJson 兼容 _id / 字符串 port / 缺失 tag;canConnect 处理
isConfig 与 expired。
- features/terminal/ssh_connection_config.dart: mobile/ssh-connection
解密后明文模型,与 toMobileSshPayload 对齐。
- features/servers/server_repository.dart: fetchHosts 拉取 host-list;
fetchSshConfig 随机 32B key -> RSA 加密 -> POST mobile/ssh-connection
-> AES-GCM 解密 -> 构造 SshConnectionConfig;临时 key 与明文仅在
方法内存留。
- server_model 单测覆盖正常 / fallback / 不可连接场景。
|
2026-05-16 17:09:19 +08:00 |
|
chaos-zhu
|
5577fa91f6
|
feat(mobile): 添加 API 客户端与登录控制器
- core/api/api_result.dart: ApiFailure 包装非 2xx 响应,附带 statusCode
与 401/403 判定,便于跳登录。
- core/api/api_client.dart: dio 封装,固定 ${serverAddress}/api/v1 base,
token header + Set-Cookie 双向桥接,统一抛 ApiFailure。
- features/auth/auth_session.dart: 持有 token/deviceId/server/user。
- features/auth/login_controller.dart: 规范化地址 -> HTTP 风险确认 ->
获取公钥 -> RSA 加密密码 -> 调 /login -> 解析 token/deviceId;
通过 ApiClientFactory 注入便于测试,并提供 onLoginSuccess 钩子。
- 4 个 fake 模式单测覆盖 HTTP 风险、空用户名/密码、无效地址。
- 同步修订规范与计划: 不再生成自有 mobile deviceId,登录字段沿用
web 端 (loginName/ciphertext/jwtExpires/jwtExpireAt[/mfa2Token]),
使用服务端返回的 deviceId 以兼容 revoke-login API。
|
2026-05-16 17:07:02 +08:00 |
|
chaos-zhu
|
264e21e813
|
feat(mobile): 添加存储与 session cookie 持久化
- core/storage/app_storage.dart: shared_preferences 包装;保存
服务端地址、用户名与保存密码偏好。
- core/storage/secure_storage.dart: flutter_secure_storage 包装;
仅保存可选密码、token、session cookie 等高敏感数据。
- core/api/cookie_store.dart: 从 Set-Cookie 中提取 session=...
并写入 secure storage,请求时再回填到 Cookie header。
|
2026-05-16 17:02:09 +08:00 |
|
chaos-zhu
|
bb78062f75
|
feat(mobile): 添加 AES-GCM 与 RSA 加密模块
- core/crypto/aes_gcm_crypto.dart: 解密服务端
encryptJsonForMobile 产出的 envelope,处理 PointyCastle GCM 需要
ciphertext+tag 拼接的差异;并校验 key 长度。
- core/crypto/rsa_crypto.dart: encryptPassword 兼容 web 登录流程;
encryptTemporaryKey 在 RSA 加密前先 base64 编码 keyBytes,对应
服务端 RSADecryptAsync 返回 utf8 字符串后 Buffer.from(text, 'base64')
的回环约定。
- 单测覆盖正常解密、key 长度校验与 tag 篡改场景。
|
2026-05-16 17:00:39 +08:00 |
|
chaos-zhu
|
e17250dfcd
|
feat(mobile): 添加核心工具与 device id 模块
- core/utils/validators.dart: normalizeServerAddress 与 isHttpAddress;
HTTP 风险检测仅用于登录页风险提示。
- core/utils/jwt_expiry.dart: 与 web 端兼容的 LoginExpiry 映射,输出
字符串与时间戳,匹配 server/app/controller/user.js 中
jwt.sign({ expiresIn }) 支持的形式。
- core/storage/device_id.dart: DeviceIdStore 抽象 + SecureDeviceIdStore,
loadOrCreateDeviceId 首次生成 UUID v4 并持久化到 secure storage。
- 配套单测全部通过 (flutter test test/core)。
|
2026-05-16 16:58:39 +08:00 |
|
chaos-zhu
|
1f118b289e
|
chore(mobile): 添加移动端依赖与平台网络策略
- pubspec.yaml: 引入 dio/cookie_jar/dio_cookie_manager/flutter_secure_storage/
shared_preferences/pointycastle/basic_utils/dartssh2/xterm/uuid。
- AndroidManifest.xml: 添加 INTERNET 权限,开启 cleartextTraffic 并指向
network_security_config,允许用户自托管 HTTP EasyNode 服务端连接。
- network_security_config.xml: base-config 允许明文传输,信任系统与用户证书。
- iOS Info.plist: 添加 NSAppTransportSecurity NSAllowsArbitraryLoads,
让 iOS 端可访问用户自托管的 HTTP 实例(与 README 说明的局域网/历史
部署兼容场景一致)。
|
2026-05-16 16:55:50 +08:00 |
|
chaos-zhu
|
01d9e7e208
|
docs: 修订移动端原生终端方案,移除指纹绑定并明确加密回环
- 规范:login flow 去掉公钥指纹本地存储与变更对比;强提示限定在
HTTP 协议,RSA 公钥仍需用于加密登录密码与一次性 AES key。
- 规范:scope/测试列表加入移动端 deviceId(UUID v4,secure storage,
随登录上送),并在 SSH credential API 规则里点明 base64-then-RSA 回环
与错误信息脱敏要求。
- 实施计划:替换 fingerprint 子任务为 device_id;明确 jwtExpires 与
server/app/controller/user.js 中 beforeLoginHandler 兼容;rsa_crypto
在加密临时 key 前先 base64 编码 keyBytes;terminal 控制器新增
writeInput 将工具栏输入直发 SSH session;SSHKeyPair.fromPem 直接
使用其返回的 List;登录流程加入 deviceId 取出/生成与上送。
- server/app/controller/mobile.js:require terminal 提至顶端,端口
解析容错并保留 22 默认值,res.fail 仅返回通用错误,详细信息只写日志。
|
2026-05-16 16:49:41 +08:00 |
|
chaos-zhu
|
605636fcab
|
feat: register mobile ssh connection API
|
2026-05-16 15:48:29 +08:00 |
|
chaos-zhu
|
72d2c8d0ce
|
test: add mobile ssh payload shaping
|
2026-05-16 15:47:38 +08:00 |
|
chaos-zhu
|
03d960a62c
|
test: add mobile crypto envelope
|
2026-05-16 15:46:13 +08:00 |
|
chaos-zhu
|
014353c71d
|
docs: add mobile native terminal implementation plan
|
2026-05-16 15:41:22 +08:00 |
|
chaos-zhu
|
52d2a682fa
|
docs: add mobile native terminal design
|
2026-05-16 15:36:32 +08:00 |
|
chaos-zhu
|
4f49e8a07e
|
feat: docker日志限制默认行数
|
2026-04-26 20:29:59 +08:00 |
|
chaos-zhu
|
e9fb5ecf6c
|
fix: 修复主机延迟timeout显示NaN
|
2026-04-26 20:20:18 +08:00 |
|
chaos-zhu
|
d90d1412c9
|
feat: ipv6私网补齐
|
2026-04-26 18:38:08 +08:00 |
|
chaos-zhu
|
d1ea1b142f
|
fix: 更正标准可信代理IP范围
|
2026-04-26 18:34:52 +08:00 |
|
chaos-zhu
|
f454f74295
|
fix: 修复sftp操作重连后多次tip
|
2026-04-26 18:17:06 +08:00 |
|
chaos-zhu
|
a81ac19f62
|
feat: 优化clientIp获取方式
|
2026-04-26 18:06:40 +08:00 |
|
chaos-zhu
|
3e2f60ea48
|
fix: 固定axios等稳定依赖的版本号
|
2026-03-31 13:04:50 +08:00 |
|
chaos-zhu
|
3f24af9a6d
|
feat: update version
|
2026-03-15 22:34:45 +08:00 |
|
chaos-zhu
|
846304f931
|
doc: 版本更新描述
v3.6.1
|
2026-03-15 22:19:33 +08:00 |
|
chaos-zhu
|
4111dbc3f0
|
feat: add sortable
|
2026-03-15 22:19:02 +08:00 |
|
chaos-zhu
|
c5ac94ca2f
|
fix: 空值过滤
|
2026-03-15 22:15:58 +08:00 |
|
chaos-zhu
|
fc38627b43
|
feat: 安全移除IP白名单环境变量
|
2026-03-15 21:30:59 +08:00 |
|
chaos-zhu
|
fd291a2250
|
feat: 调整内置脚本
|
2026-03-15 21:03:21 +08:00 |
|
chaos-zhu
|
9559fa184b
|
fix: update shell
|
2026-03-15 20:53:38 +08:00 |
|
chaos-zhu
|
a959f075dc
|
fix: update shell
|
2026-03-15 20:42:36 +08:00 |
|
chaos-zhu
|
66052b61ba
|
fix: update shell
|
2026-03-15 20:26:09 +08:00 |
|
chaos-zhu
|
7c0ae939ab
|
feat: 新增常用默认脚本
|
2026-03-15 20:11:15 +08:00 |
|
chaos-zhu
|
f826c29df5
|
fix: 统一换行为LF&修复交互式脚本stdin行为异常
|
2026-03-15 18:52:37 +08:00 |
|
chaos-zhu
|
91f7712b88
|
doc: 补充docker部署连接v6机器说明
|
2026-03-13 21:25:15 +08:00 |
|
chaos-zhu
|
92dbe3b184
|
feat: 补充常见单字符序列范围
|
2026-03-13 21:17:15 +08:00 |
|
chaos-zhu
|
feea702522
|
fix: 保守处理复杂控制序列
|
2026-03-13 21:04:24 +08:00 |
|
chaos-zhu
|
7e752c4671
|
feat: 新增终端内右键挂起&单窗口模式头部右键菜单
|
2026-03-13 20:04:49 +08:00 |
|
chaos-zhu
|
f7f03def12
|
Merge branch 'main' of github.com:chaos-zhu/easynode
|
2026-03-13 11:54:01 +08:00 |
|
chaos-zhu
|
507749f469
|
feat: 侧边栏UI优化
|
2026-03-13 11:53:54 +08:00 |
|
chaos-zhu
|
6c7c1a6717
|
Merge pull request #284 from chaos-zhu/dependabot/npm_and_yarn/axios-1.13.5
build(deps): bump axios from 1.12.0 to 1.13.5
|
2026-02-15 08:51:46 +08:00 |
|
dependabot[bot]
|
b231126ba8
|
build(deps): bump axios from 1.12.0 to 1.13.5
Bumps [axios](https://github.com/axios/axios) from 1.12.0 to 1.13.5.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.12.0...v1.13.5)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.13.5
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
|
2026-02-11 17:52:18 +00:00 |
|
chaos-zhu
|
edd36d340e
|
feat: recover
|
2026-02-08 22:51:33 +08:00 |
|
chaos-zhu
|
0fc2325959
|
feat: 支持一键恢复会话&优化设置项
|
2026-02-08 22:45:15 +08:00 |
|
chaos-zhu
|
8abe9bc28e
|
docs: update
|
2026-02-08 21:29:04 +08:00 |
|