- system_settings 单行 CRUD:GET/PUT(AdminUser)+ GET /public(无鉴权, SettingPublicOut 白名单仅 company_name/logo_url 两字段,短缓存 300s) - logo 上传:后缀+magic bytes+2MB 三重校验,固定名覆盖落盘 uploads/logo/ (不使用上传方文件名,杜绝路径拼接);旧扩展名文件清理;文件流端点 no-cache,URL 带 update_time 版本参数破缓存 - logo 存目录不存库:图片入 DB 让每次读取与 mysqldump 放大传输且无法 独立替换;DB 只持一行相对路径 - 新增依赖 python-multipart(FastAPI UploadFile 必备传输层);.gitignore 增 backend/uploads/ 与 db/backups/ - 集成 11 例:单行语义/白名单字段/三重校验/越权 403/匿名 401/审计留痕 Co-Authored-By: Claude Code <noreply@anthropic.com>
67 lines
977 B
Plaintext
67 lines
977 B
Plaintext
# AI辅助目录(整个目录忽略)
|
||
ai-aux/
|
||
|
||
# 依赖
|
||
node_modules/
|
||
.venv/
|
||
venv/
|
||
env/
|
||
__pycache__/
|
||
*.py[cod]
|
||
vendor/
|
||
target/
|
||
bin/
|
||
obj/
|
||
*.egg-info/
|
||
|
||
# 构建产物
|
||
dist/
|
||
build/
|
||
out/
|
||
|
||
# 环境变量
|
||
.env
|
||
.env.local
|
||
.env.*.local
|
||
|
||
# 日志
|
||
*.log
|
||
# 后端运行日志目录(core/logging.py 创建)。
|
||
# 不要写成裸 `logs/` —— 那会匹配任意层级的同名目录,曾把
|
||
# frontend/src/views/system/logs 整个吞掉(文件进不了版本库)
|
||
/backend/logs/
|
||
|
||
# IDE
|
||
.idea/
|
||
.vscode/
|
||
.vs/
|
||
*.swp
|
||
|
||
# 测试与覆盖率
|
||
coverage/
|
||
.coverage
|
||
htmlcov/
|
||
.pytest_cache/
|
||
.mypy_cache/
|
||
.ruff_cache/
|
||
.tox/
|
||
# 端到端测试产出的截图
|
||
frontend/e2e/*.png
|
||
|
||
# 临时文件
|
||
*.tmp
|
||
*.bak
|
||
*.cache
|
||
# Office/WPS 打开文档时生成的锁文件(如 ~$xxx.docx)
|
||
~$*
|
||
|
||
# 备份
|
||
backup/
|
||
.claude
|
||
CLAUDE.md
|
||
|
||
# 运行期上传物(公司 logo 等):与构建产物隔离,不入版本库
|
||
backend/uploads/
|
||
# 数据库备份导出目录(⑨ 备份脚本产物)
|
||
db/backups/
|