- runtimeconfig/channels.go: channels.json 承载 map[platform][]ChannelAccount(token/baseURL/黑白名单/群聊限流), LoadChannels 优先文件/回退env, SaveChannels(0600+tmp原子写), Upsert/Delete/Masked脱敏
- channelbridge/reload.go: adapterManager 热替换——工厂重建新adapter先连接, 再原子断旧adapter(独立readCtx/进行中不中断); Bridge.Reload(platform) 逐账号增删
- 面板 PUT/DELETE /admin/channels/{platform}/config(owner+审计) 落盘channels.json+Reload热更新; GET /admin/channels 附账号掩码不泄裸token
- 前端 Channels.tsx 配置表单(id/token/baseURL/黑白名单/限流+config JSON)+保存热更新提示+掩码展示/删除
- .gitignore 加 channels.json; .env 退兜底(.env.example注明); token不打印/Config()脱敏
- channelbridge.go 拆 logic→reload.go(742→731); 全仓 go build/vet/test绿+前端build绿
- 未做真token端到端(需渠道凭据,不读.env)——如实标注待凭据
56 lines
598 B
Plaintext
56 lines
598 B
Plaintext
# 开发设计文档(本地参考,不入库)
|
||
DevDocs/
|
||
|
||
# 环境变量与密钥
|
||
.env
|
||
models.json
|
||
channels.json
|
||
*.local
|
||
*.pem
|
||
*.key
|
||
|
||
# 构建产物
|
||
*.exe
|
||
*.exe~
|
||
*.dll
|
||
*.so
|
||
*.dylib
|
||
|
||
# Go
|
||
# 前端
|
||
node_modules/
|
||
dist/
|
||
.vite/
|
||
|
||
# Python
|
||
__pycache__/
|
||
*.pyc
|
||
.venv/
|
||
venv/
|
||
*.egg-info/
|
||
|
||
# IDE
|
||
.idea/
|
||
.vscode/
|
||
*.swp
|
||
*.swo
|
||
|
||
# 系统
|
||
.DS_Store
|
||
Thumbs.db
|
||
desktop.ini
|
||
|
||
# 日志
|
||
*.log
|
||
|
||
# 临时文件
|
||
tmp/
|
||
temp/
|
||
node_modules/
|
||
dist/
|
||
|
||
# 开发/运行本地产出(不入库)
|
||
# data/ = SQLite 数据目录(DATA_DIR=./data);/cyrene = 根目录构建产物(锚定,不误伤 cmd/cyrene)
|
||
data/
|
||
/cyrene
|