Files
LinkPort/docs/project-environments.md

5.4 KiB

项目与环境筛选

顶部统一筛选区在所有页面保持同一位置。目标服务、网关与运行概览、拖拽连线、代理管理、连接审计和命令审计会把各自的搜索、协议、分组、状态或时间条件与「项目」「环境」放在同一区域,页面内容中不再保留第二套筛选栏;监控、配置、同步和解密等没有页面级列表条件的页面仍显示项目与环境范围。文件资产与连接资产统一在资产管理,不按项目分类,仅保留环境筛选;资源搜索和跳转也不要求切换资产项目。项目与环境可独立或组合筛选;环境支持「正式」「测试」及自定义名称。清除筛选恢复全部数据,浏览器刷新后保留筛选。窄屏下统一筛选区换行并让输入控件占满可用宽度,不产生横向滚动。

目标、网关编辑器提供「所属项目」和「环境」,两类资产编辑器仅提供环境。顶部「维护项目与环境」可添加选项,保存到后端,即使暂未分配资源也会保留。可删除闲置选项;默认选项和正在使用的名称不可删除。文件资产不会占用项目名称,旧连接资产的历史项目元数据为兼容暂保留,仍可能计入目录使用数。名称最长 100 个 UTF-8 字节,并发修改时需重新打开维护窗口。

新建目标、网关优先使用当前筛选,未筛选时默认「默认项目 / 测试」;新文件资产、连接资产只继承环境。账号凭据随所属目标或网关显示。连接资产和文件资产选择器均全局列出可用选项,不要求展开其他范围。更改归属不会自动改动其他资源的归属。

资源编辑器的项目、环境输入会直接更新当前草稿;输入 test 后可直接点保存,不必先按 Enter 或点击下拉选项。test 保存后显示为「测试」,production 显示为「正式」,中文名称沿用相同映射;自定义名称原样保存。继续选择已有选项会覆盖手输值,清空表示未设置。手输内容也参与未保存提示,取消并放弃不会修改后端。这个行为统一适用于目标、网关、代理和资产编辑器,不改变顶部筛选和独立目录管理的提交方式,无配置迁移。

保存成功后,列表、资源树和再次打开的编辑窗口立即采用保存接口返回的新归属。其他接口刷新失败时仍保留这次已保存的值,并单独提示失败请求;保存之前启动的旧刷新不会覆盖新值。仅修改环境不会改变资产文件的上传更新时间。

手输与保存刷新修复不改变资产全局可见规则;资产仅维护环境,文件和连接资产选择器不按项目过滤。

旧目标、网关和旧连接资产缺少归属字段时仍兼容「默认项目 / 测试」。文件资产不再默认分配项目,旧项目字段读取时忽略,保存/导入/同步时归一化为空;原文件和引用不变,不做全库重写。连接资产已有项目元数据保留,新建时不继承项目;两类资产都不按项目过滤。旧环境缺失时仍默认为测试。明确清空的项目、环境可用「未分配项目」「未设置环境」筛选(资产不参与项目筛选)。

旧代理项目接口兼容

独立代理页面及连接资产的「所属项目」操作已取消,SSH/SOCKS5 统一在资产管理维护;StatefulSet 等 Kubernetes 资源直接配置在目标。旧 PATCH /api/v1/outbounds/{id}/project 为已有调用方兼容保留,请求仅允许 { "project": "项目名" },不会修改环境、连接参数或凭据。旧项目元数据不再影响资产页可见性;无需迁移或删除既有记录。

目标和网关自身的连接配置允许在运行中保存;项目字段与其他配置一起进入新的运行快照,新连接使用新值,已有连接保持接受时的旧快照。共享文件资产和连接资产的运行中引用保护、删除保护,以及 WebDAV 完整配置替换的停服要求不变。项目更新继续验证登录、CSRF 和项目名称,保存配置历史及审计事件,不回显凭据。存储先按主键读取当前加密配置,只替换项目字段并按同一 ID 更新;短事务保证历史记录和加密配置原子写入,避免并发同步覆盖凭据,不在事务中进行外部网络调用。

审计在分页前按资源归属过滤,CSV 导出使用相同筛选。历史审计按资源当前归属显示;已删除资源使用最后一份配置历史中的归属。没有资源关联的系统事件归入未分配范围。项目和环境筛选用于组织个人工作台中的数据。

加密备份和多端同步包含项目、环境字段及独立维护的选项列表,完整备份仍导出所有项目与环境。导入备份合并选项;旧备份不清空已有选项。WebDAV 下载按完整配置替换选项。个人登录凭据、访问令牌、同步设置及监控策略属于设备级设置;筛选不改变这些设置。

部署前应停止本机服务并备份完整 data 目录;开发验证使用独立数据库,不直接迁移正在使用的数据。

2026-09-21 本轮统一资产架构验证由主 agent 汇总:model/store/api 测试与 Vue 类型检查通过;Vite 生产构建遇到 spawn EPERM,未完成基于本轮新构建程序的浏览器验收。全量 Go 测试唯一已报告的失败为间歇性 cluster fixture 失败,不是真实集群验证。未部署到真实 data,详细边界见 统一资产与目标连接。