Files
flvx/.entire/metadata/ses_34d7fcdb8ffekb7lvyJwVvoS8T/context.md
T
sagit a43653f252 fix: permission checks for speedId and inPort + multi-node IP constraints (#261)
* feat: restrict user permissions and multi-node IP constraints

- Non-admin users cannot set speedId or inPort on forward create/update
- Multi-entrance tunnels disable custom listen IP for forwards
- Multi-exit tunnels disable custom connect IP
- Multi-node hop chains disable custom connect IP per hop
- Remove tunnel-first-IP fallback in forward ingress resolution
- Add contract tests for non-admin permission restrictions

Entire-Checkpoint: 133693290660

* fix: allow non-admin users to submit null speedId and zero inPort

- Backend: Check speedId is not nil before rejecting non-admin requests
- Backend: Only reject inPort if value > 0 for non-admin users
- Frontend: Only include speedId and inPort in payload for admin users
- Tests: Add contract tests for null speedId and zero inPort cases
2026-03-04 14:50:36 +08:00

1.7 KiB

Session Context

Session ID: ses_34d7fcdb8ffekb7lvyJwVvoS8T Commit Message: 增加功能:转发规则批量导入格式,兼容ny的导入格式 ny格式如下: {"dest":["151.241.129.52:23609"],"list

Prompts

Prompt 1

增加功能:转发规则批量导入格式,兼容ny的导入格式 ny格式如下: {"dest":["151.241.129.52:23609"],"listen_port":20224,"name":"灵玥-JP-Lpt【三网通用】"}{"dest":["64.81.33.2:24577"],"listen_port":41034,"name":"Yolo-US-Lpt【三网通用】"}

ny导入的时候是选择入口的,flvx转发导入是选择隧道的,需要兼容一下,请设计计划

Summary

计划文档已设计完成。以下是计划摘要:

计划摘要

格式对比

特性 flvx格式 ny格式
格式 管道分隔文本 紧凑JSON对象
示例 ip:port|name|port {"dest":["ip:port"],"listen_port":port,"name":"name"}
多目标 逗号分隔 dest数组
选择器 选择隧道 选择入口节点→匹配隧道

核心设计

  1. 格式选择器:手动选择"flvx格式"或"ny格式"
  2. ny格式流程:选择入口节点 → 匹配端口转发隧道 → 匹配0个报错、1个直接用、多个弹窗选
  3. 不自动创建隧道:无匹配时提示用户先创建

任务清单

  1. 新增importFormat、selectedEntryNode、matchedTunnels等状态
  2. 重构导入模态框UI,添加格式选择器
  3. 实现ny格式紧凑JSON解析函数
  4. 实现入口节点选择与隧道匹配逻辑
  5. 多隧道匹配时的选择器弹窗
  6. 整合ny格式到executeImport函数
  7. 更新提示文案

改动范围

  • vite-frontend/src/pages/forward.tsx - 主要改动文件

是否需要我调整计划内容?