v6ole
|
ec1d9860ff
|
refactor: 移除本地前端容器,仅保留远程部署
本地前端因 Casdoor OAuth 回调固定指向 onu.dhdx.fun,无法完成
登录流程,没有实际用途。转为仅远程服务器部署。
本地服务器现仅需 2 容器:backend + celery-worker(含beat)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-12 14:36:03 +08:00 |
|
v6ole
|
4488e0ef42
|
fix: 路由顺序导致 422 + 彻底消除 Header(...) 隐患
1. devices.py: /tags 和 /export/csv 移到 /{device_id}(int) 之前,
避免 FastAPI 将 'tags'/'export' 当作 device_id 解析失败返回 422
2. audit.py: /logs/export/csv 移到 /logs/{log_id}(int) 之前,同上
3. auth.py: Header(...) → Header(None),统一为手动 401 返回,
消除全局最后一个 Header(...) 导致的 422 隐患
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-12 11:49:53 +08:00 |
|
v6ole
|
e87e3ebe4b
|
refactor: 合并 celery-beat 到 celery-worker (4→3容器)
celery-worker 加 -B 参数启动嵌入式 Beat,省去独立 celery-beat 容器。
定时任务由代码中 beat_schedule 驱动,schedule 文件保持持久化。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-12 11:41:58 +08:00 |
|
v6ole
|
8dc66d7f88
|
fix: el-pagination 弃用属性 small → size="small"
消除 Element Plus 3.0 deprecated 控制台警告。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-12 11:33:17 +08:00 |
|
v6ole
|
a9551d87f5
|
fix: 快速扫描前端超时 30s→180s
快速扫描需要 SSH 连接 30+ 台 OLT 并解析入库,后端实测 61 秒,
Axios 默认 30 秒超时导致请求在前端被中断。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-12 11:24:23 +08:00 |
|
v6ole
|
0d3fa8dd51
|
fix: 修复 /api/health 404 和扫描/发现 500 错误
1. /api/health 404: 前端 fetchVersion 调用 /api/health,但后端只有 /health。
OpenResty 保留完整路径,需要在后端添加 /api/health 端点。
2. 扫描/发现 500: check_service.py 的连接池 _get_cached_ssh 缓存了
SSH 连接,但调用方在 finally 中 ssh.close() 关闭连接。第二次调用
从缓存拿到已关闭的连接导致执行失败。改为异常时清除缓存、正常时
保留连接(5分钟TTL自动管理生命周期)。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-12 11:15:01 +08:00 |
|
v6ole
|
e5d6d843c3
|
fix: 修复环路检测失败 + 多项UX增强
修复:
- 环路检测正则 \s+(Onu\S+)\s+ → \s+(Onu\S+) (splitlines移除换行后尾随\s无法匹配)
- 权限中间件 Header(...) → Header(None) 避免缺失Auth头返回422而非401
- 环路检测请求超时30s→120s (SSH连接30+台OLT实测需58秒)
重构 (ssh_service.py):
- 提取 _send_and_wait 为私有方法,消除3处重复内部函数
- 添加 __enter__/__exit__ 上下文管理器支持
- 加固 execute_command prompt检测 (按行匹配<DEVICE_NAME>)
- 移除未使用的settings import
- olt.py/devices.py 调用方改用 with 语法
新功能:
- 侧边栏退出登录上方显示当前用户名和角色
- 版本号从VERSION文件自动读取 (后端/health返回,前端动态显示)
- 基于广西南宁经纬度计算日落时间,自动切换深色/浅色主题
- /api/olt/loopback-detection 响应增加raw字段便于排查
基础设施:
- CLAUDE.md 加入 .gitignore
- 新增 .claude/rules/07-remote-operations.md (远程部署操作)
- 新增 .claude/rules/08-frp-notes.md (frp隧道注意事项)
- 新增 VERSION 文件 (版本号 0.10.0)
- 新增环路检测解析测试用例 (5个)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-12 11:07:29 +08:00 |
|
v6ole
|
fcfa5af614
|
feat: v0.10.0 生产环境优化 — HTTPS、前端生产构建、安全加固
- feat(deploy): 前端多阶段构建 (vite build + nginx:alpine),移除 Vite 开发模式
- feat(deploy): OpenResty HTTPS 配置 (SSL + HSTS + 安全头)
- fix(ws): WebSocket 路由添加 /api 前缀,修正前后端路径不匹配
- security: SSH AutoAddPolicy → WarningPolicy
- security: CORS 来源环境变量化 (CORS_ORIGINS)
- security: 限流器使用 X-Forwarded-For 真实客户端 IP
- perf(db): 数据库连接池配置 (pool_size=20, max_overflow=40)
- refactor: 移除硬编码 URL/IP (NTP、域名、微信代理),改为环境变量
- chore: 更新 .env.example 模板,补充新增配置项
- chore: 清理 .reasonix/、scripts/、guide.md 无用文件
- docs: 更新 CLAUDE.md 至 v0.10.0,补充生产架构文档
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-11 19:00:08 +08:00 |
|
v6ole
|
b2c20ec43d
|
feat(alerts): 添加微信告警、WebSocket实时推送和地图功能
- 新增微信告警服务(wechat_service)和告警任务(alert_tasks)
- 新增 WebSocket 实时推送端点
- 新增监控管理模块(monitor)
- 增强统计仪表板:趋势图、区域分布、光功率历史
- 设备管理:添加坐标信息、标签系统、复合索引优化
- 前端:重构Dashboard/Charts页面,新增业务组件
- 新增5个数据库迁移(坐标、复合索引、标签、光功率历史、显示名)
- 更新部署配置和脚本
- 新增测试框架基础结构
|
2026-06-11 15:16:29 +08:00 |
|
v6ole
|
3453441754
|
chore: 清理无用文件并更新 CLAUDE.md 至 v0.9.0
清理:
- 删除含硬编码敏感信息的脚本(run_celery.py, start-celery.sh)
- 删除冗余开发脚本(setup.sh, start-backend.sh, start-frontend.sh)
- 删除冗余文档(about.md, PROJECT_STRUCTURE.md, QUICKSTART.md, OLT时间同步.md)
- 删除调试文件(backend/test_parser.py)
- 删除 JWT 密钥文件(backend/token_jwt_key.pem)
- .gitignore 添加 *.pem 忽略规则
CLAUDE.md 更新:
- 版本号 v0.8.0 → v0.9.0
- 新增 v0.9.0 功能:操作记录日志、OLT时间同步、IMC集成
- 补全 API 端点文档(从5个分类扩展到13个分类、50+端点)
- 添加 More 分页标记清理经验教训
- 添加提交前清理文件规则
- 更新项目结构和快速启动指南
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-22 08:57:38 +08:00 |
|
v6ole
|
b5d542a725
|
fix(ssh): 修复 More 分页标记清除导致同行设备数据丢失
_clean_output 中 `---- More ----[^\n]*` 会将整行删除,当 OLT
输出的 More 分页标记与设备数据出现在同一行时,该设备会被错误丢弃。
改为仅移除标记文本本身,保留同行后续的设备数据。
Olt 172.16.0.18 的 display onu slot 1 输出 93 台设备,修复前仅
解析出 90 台(丢失 3 台),修复后正确解析全部 93 台。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-21 18:10:47 +08:00 |
|
v6ole
|
bd341df9de
|
chore: 清理无用文件和旧 skill 配置
- 删除 test_write.txt(空测试文件)
- 删除 skills/ 目录和 skills-lock.json(旧 Claude skill 系统残留)
- 删除 .agents/ 目录(旧 agents 配置)
- 从 git 移除 .claude/skills/(已加入 .gitignore)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-12 10:38:14 +08:00 |
|
v6ole
|
5aadbc78c6
|
feat: v0.9.0 新增记录日志、设备更换记录及IMC服务集成
- 新增 RecordsLog.vue 操作记录日志页面
- 新增 ReplacementRecords.vue 设备更换记录页面
- 新增 imc_service.py IMC网管系统集成服务
- 新增 datetime.js 前端日期时间工具函数
- 新增 OLT时间同步.md 文档
- 扩展 devices.py API:设备更换记录、批量操作等
- 扩展 ssh_service.py:OLT时间同步功能
- 扩展 olt.py:新增时间同步相关接口
- 更新 DeviceList.vue:增强设备列表功能
- 更新路由和导航菜单
- 将 .claude/ 和 .mcp.json 加入 .gitignore
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-12 10:36:06 +08:00 |
|
v6ole
|
eaabebbceb
|
feat: v0.8.x 功能更新与数据维护优化
- MAC地址格式统一为小写 xxxx-xxxx-xxxx,支持三种格式输入
- 更换设备MAC时自动清理OLT新发现列表中的冲突ONU记录
- 设备编辑新增场所类型字段(手动输入),区域改为下拉快速填充
- 编辑/更换设备时自动移除new_devices中同MAC的待入库记录
- 新增登录过期自动跳转(401拦截 + 过期提示)
- 新增关于页面(/about),支持Markdown渲染,管理员可在设置中编辑内容
- 新增device_status_history每日自动清理任务(保留30天)
- 更新README.md和about.md
|
2026-04-24 08:53:28 +08:00 |
|
v6ole
|
d222978ae4
|
```
feat(import): 添加区域字段支持和改进模板路径处理
- 在OLT设备导入功能中添加region字段支持,从Excel模板读取区域信息
- 修复模板文件路径问题,使用相对路径动态构建模板文件路径
- 更新导入服务中的验证错误格式,包含行号和MAC地址信息
feat(check): 增强设备检测服务的端口信息同步
- 在CheckService中添加端口和OLT归属信息的同步逻辑
- 改进设备状态检查时的端口信息更新策略,避免用None覆盖现有值
- 扩展返回数据结构,包含端口ID、槽位号、端口号和OLT位置信息
feat(frontend): 添加设备列表刷新冷却机制和端口验证
- 实现设备状态刷新的60秒冷却时间限制,防止频繁操作
- 改进业务下发按钮的启用条件,同时支持port_id或slot_number+port_number组合
- 优化导入结果显示,显示具体的MAC地址信息
feat(olt): 添加重复MAC记录批量清除功能
- 新增批量清除重复MAC记录的功能,支持按OLT分组处理
- 实现SSH端口清除和自动忽略的批量操作流程
- 添加批量操作的进度提示和错误处理机制
```
|
2026-04-09 11:33:04 +08:00 |
|
v6ole
|
dcb2435514
|
```
feat: 升级到v0.8.0版本并新增审计日志等功能
- 升级版本号从v0.7.0到v0.8.0
- 新增审计日志功能,支持全量操作记录、筛选查询和CSV导出
- 新增设备更换记录功能,支持MAC地址更换历史与库存序列号联动
- 新增iOS PWA主屏幕支持,实现standalone模式safe area适配
- 删除过时的技术流程文档
- 补充开发规范说明,包括Alembic迁移、Celery worker重建、区域管理员过滤等重要规则
```
|
2026-04-08 16:59:24 +08:00 |
|
v6ole
|
f1f8518985
|
```
feat(auth): 添加用户权限获取接口并完善JWT令牌角色信息
- 在JWT令牌中添加用户角色信息
- 新增get_my_permissions接口用于获取当前用户权限码列表
- 重构认证回调逻辑,增加错误日志记录
- 更新用户信息获取接口使用Authorization头验证
```
|
2026-04-06 00:40:08 +08:00 |
|
v6ole
|
dfa8fa62a8
|
```
feat(api): 添加OLT端口管理和设备发现功能
- 在check.py中更新discover_olt方法,使用scan_and_discover替代check_olt_devices
- 在olt.py中添加get_olt_ports和toggle_olt_port接口,支持获取和控制OLT端口状态
- 添加TogglePortRequest模型用于端口操作请求验证
- 更新SSHService类,新增get_olt_ports和toggle_olt_port方法
- 优化CheckService中的MAC地址索引逻辑,支持模型信息更新
```
|
2026-04-04 22:13:22 +08:00 |
|
v6ole
|
381ea7085d
|
初始化
|
2026-04-02 23:40:04 +08:00 |
|