界面(去 AI 味): - 大屏页清除 114 处生成器残留属性 data-page-node-id - 视觉系统改回工程控制台风格:去 radial/linear-gradient、去辉光、 去标题前彩色装饰条,改为中性灰阶 + 单一蓝色强调色;KPI 色条改状态点 - 精简各页说教式长提示;修掉 profile.html 泄漏到页面上的 Markdown 星号 - 删除登录页过时的「默认账号 admin / admin123」提示(1.4.0 起已无默认口令) 安全与隐私(按「将会被公网访问」收口): - 内部异常只回 8 位事件号,完整堆栈进服务端日志(web/api.py::_internal) - 导出文件名收敛:防响应头注入与路径穿越;manage.py passwd 补用户名校验 - 登录对不存在的账号也走一次哑哈希,抹平用户名枚举的时序差异 - /api/* 读接口限速 240 次 / 60 秒 / 账号(挡住循环调 /api/bundle) - 进程 umask 0077 + 目录 0700 / 文件 0600:对话正文与主密钥的落盘权限 - 表名与库文件路径只对管理员下发;大屏页所有数据插值转义 - --debug 只允许绑定回环地址;新增 Permissions-Policy 与 413 处理器 文档: - DEPLOYMENT 新增第十三节「安全与隐私基线」;迁移表补 1.4.0 → 1.5.0 行 - SECURITY 更新支持范围、新增「信息泄漏收敛」小节与上线检查项 - .codebuddy/ 加入 .gitignore(助手工作记忆不进仓库) 版本:1.4.0 → 1.5.0(无库结构变更,user_version 仍为 4) 验证:python tools/smoke.py → ok=264 fail=0;python tools/check_docs.py → 0 处问题
80 行
2.4 KiB
Plaintext
80 行
2.4 KiB
Plaintext
# =============================================================================
|
||
# 注意:Git 的 .gitignore **不支持行尾注释**——规则后面跟 # 注释会让整行变成
|
||
# 一个永远匹配不上的模式(曾经因此把 data/instance.json 误入库)。
|
||
# 注释一律单独占一行。
|
||
# =============================================================================
|
||
|
||
# ---- 数据与运行产物:正本不进版本库(体积大、含凭证衍生物)----
|
||
# 同时写 data/* 与 data/**/* 两种:只写前者会漏掉子目录
|
||
# (曾因此让 data/demo/usage.sqlite 逃过忽略规则)
|
||
data/*.sqlite
|
||
data/*.sqlite-wal
|
||
data/*.sqlite-shm
|
||
data/**/*.sqlite
|
||
data/**/*.sqlite-wal
|
||
data/**/*.sqlite-shm
|
||
|
||
# 含 secret_key,泄露等于会话签名密钥外泄,绝不可提交
|
||
data/instance.json
|
||
data/**/instance.json
|
||
|
||
data/exports/*.csv
|
||
|
||
# 兜底:手工 cp 出来的快照(如 usage.sqlite.bak-pre-v13)绝不能入库,
|
||
# 它含 settings 的凭证密文与 users 的密码哈希
|
||
data/*.bak*
|
||
data/*.sqlite-bak*
|
||
|
||
# 界面截图(tools/shots.py 生成的临时产物;手册配图在 docs/images/)
|
||
data/shots/
|
||
|
||
# 示例数据(tools/demo_data.py 生成,随时可重建,不必入库)
|
||
data/demo/
|
||
|
||
# ---- 日志 ----
|
||
logs/*
|
||
|
||
# ---- 数据库备份 ----
|
||
# 全目录忽略,只放行说明文件。备份含凭证密文与密码哈希,永不入库。
|
||
# 刻意不放在 data/:data/ 是 Docker 卷,down -v 会把备份和正本一起删掉。
|
||
backups/*
|
||
!backups/README.md
|
||
!backups/.gitkeep
|
||
|
||
# ---- v1.0 旧版归档 ----
|
||
# 若仓库被整体移到工作区根,legacy-v1/(含真实 CSV)必须继续被忽略
|
||
legacy-v1/
|
||
|
||
# ---- 保留目录本身 ----
|
||
# docker-compose 是绑定挂载,宿主机目录必须先存在,
|
||
# 否则 Docker 会以 root 自动创建,Linux 上会引发「unable to open database file」
|
||
!data/.gitkeep
|
||
!data/exports/.gitkeep
|
||
!logs/.gitkeep
|
||
|
||
# ---- Python ----
|
||
__pycache__/
|
||
*.py[cod]
|
||
*.egg-info/
|
||
.venv/
|
||
venv/
|
||
|
||
# ---- 编辑器 / 系统 ----
|
||
.idea/
|
||
.vscode/
|
||
*.swp
|
||
.DS_Store
|
||
Thumbs.db
|
||
|
||
# ---- AI 助手的工作记忆 ----
|
||
# .codebuddy/ 里是会话记忆与技能缓存,属于「开发过程产物」而不是项目资产,
|
||
# 与代码版本无关。对外开源后也不该混进仓库(README 里不需要它,
|
||
# 而 tools/check_docs.py 会把其中的 .md 当成项目文档一起扫)。
|
||
.codebuddy/
|
||
|
||
# ---- 部署本地配置(含明文密码,只提交 .env.example)----
|
||
.env
|
||
.env.local
|
||
.env.*.local
|
||
compose.override.yml
|