TermiNexus
|
31f341d1f4
|
fix(migrations): 0028 回填改用迁移状态字段名(小写)并补 Menu.TenantUUID,migrate 全部应用
- 0028 回填 Company/关联表历史字段名(tenant_uuid/company_uuid)匹配既有迁移状态
- gerp Menu 补 TenantUUID 字段(与已执行 DB 列对齐)
- migrate 完成:0028 回填 54 行(fake 标记,AddField 已由 MySQL DDL 提交)、0029 FK→UUIDField、token_blacklist 建表
|
2026-08-13 18:19:27 +08:00 |
|
TermiNexus
|
156d9f1125
|
docs(governance): 记录架构债治理各阶段执行状态与待办(含待执行 migrate 提醒)
|
2026-08-13 18:15:48 +08:00 |
|
TermiNexus
|
a208dbb02a
|
chore(tools): 根目录散落工具脚本归位 tools/ 目录
- find/listdir/r/sound/SendWX 及 WARN.mp3 移入 tools/(sound.py 相对路径同目录保持可用)
- Version 死代码(import 自增 VER)归档 tools/Version
- Main.py(生产入口候选)与 TODO 保留根目录待确认
|
2026-08-13 18:15:30 +08:00 |
|
TermiNexus
|
727fbba272
|
fix(tasks): stats 任务套重试 + PurgeOld 全周期清理;攻击日志写库限频去重
- 四个 stats 任务加 RetryOnFailure(2 次重试)
- PurgeOldStats 清理 daily/monthly/hourly 全周期
- AttackDetectMiddleware 同 IP+类型 60s 窗口去重,防 401 刷屏反向写库放大
|
2026-08-13 17:55:56 +08:00 |
|
TermiNexus
|
221c5d9e9d
|
fix(security): 移除 core.User 默认密码哈希后门,异常堆栈改 logging 落盘
- UserPassword 默认值改为空串(防默认口令,须经注册/重置流程设置)
- exception_handler print→logging(日志可审计)
- ip_filter 默认 disabled 语义注释(生产需显式配置并挂载)
|
2026-08-13 17:55:55 +08:00 |
|
TermiNexus
|
e76a5b359e
|
security(jwt): 收敛 token 生命周期(168h→24h)并启用 refresh 轮换黑名单
- ACCESS_TOKEN_LIFETIME 默认 24h(缩小泄露窗口)
- BLACKLIST_AFTER_ROTATION 默认开启,注册 token_blacklist app
- LOGGING 增加 RotatingFileHandler 落盘(django.log)
- USE_TZ=False 决策文档化(存量 naive UTC 时间戳无法安全切换)
|
2026-08-13 17:55:54 +08:00 |
|
TermiNexus
|
67c4d03597
|
docs(settings): 文档化 AUTH_USER_MODEL 不可行决策(core.User 非 AbstractBaseUser,改设需重建 auth 框架)
|
2026-08-13 17:52:34 +08:00 |
|
TermiNexus
|
e2944e13d2
|
fix(form_service): 适配 UUIDField 收敛——消除 ForeignKey attname(_id) 硬编码依赖
- 工单创建人/指派人读取与注入改用字段名(兼容 _id 遗留键)
- CompanyInfo 租户查重、部门成员计数过滤改字段名
- AttackDetectMiddleware 异常日志写入改字段名,测试断言同步
|
2026-08-13 17:52:17 +08:00 |
|
TermiNexus
|
5127ca4166
|
refactor(models): 模型双轨收敛——gerp 侧 31 处 ForeignKey 改 UUIDField,与 SDK 映射对齐
- models.py: Tenant/Company/Dept/WorkOrder/Message/Menu 等 31 处 FK→UUIDField(db_column 不变)
- 8 张有 CompanyUUID 的表补齐 TenantUUID(Dept/Workgroup/FileAsset/Menu/WorkgroupRole/UserRoleWorkgroup/UserRoleDepartment/CompanyApp)
- 迁移 0028 扩展回填全 8 表;迁移 0029 AlterField 对齐字段类型(DB 列无实际变化)
- 消除 select_related/_id 行为差异,SDK 与主库模型字段类型统一
|
2026-08-13 17:52:08 +08:00 |
|
TermiNexus
|
77e676e55f
|
feat(tenant): Dept/Workgroup 补 TenantUUID 列 + 回填迁移,消除跨表隔离反射补偿
- gerp 模型 Department/Workgroup 新增 TenantUUID(nullable)
- 迁移 0028:AddField + RunPython 从 Company.TenantUUID 回填(待 migrate 执行)
- 配合 SDK 映射同步加字段,组织表结构对齐
|
2026-08-13 17:42:58 +08:00 |
|
TermiNexus
|
88c657660d
|
refactor(role_scope): 数据权限表级特判改策略注册表
- 新增 TableScopeFilter 策略基类 + User/UserRole/Order 三个注册实例
- ApplyScopeToQueryset 改为注册表分发,新增 RegisterScopeFilter 扩展入口(开闭原则)
- 行为与原有 User/UserRole/Order 特判完全一致
|
2026-08-13 17:40:24 +08:00 |
|
TermiNexus
|
e0af444c31
|
refactor(auth): JWT 认证链路复用 SDK ResolveRoleContext,消除角色解析双实现
|
2026-08-13 17:40:23 +08:00 |
|
TermiNexus
|
9f1b222bfe
|
chore(repo): 取消跟踪 TempLate/GERP 部署产物(deploy.ps1 每次构建后同步,不纳入版本控制)
|
2026-08-13 17:36:36 +08:00 |
|
TermiNexus
|
88ecdde7c7
|
chore(repo): 治理仓库卫生——忽略子服务器/上传目录/运行时文件并清理已入库敏感数据
- .gitignore: 新增 /ATestCServer/ /media/ /GVSite/ /frp/ /.idea/ 及 service.log/ips.txt 等运行时文件
- 取消跟踪: ATestCServer(含 HTTPS 私钥与 db.sqlite3)、media 用户上传、GVSite gitlink、根目录日志与状态文件
- 新增 docs/architecture_debt_governance.md 架构债治理清单
|
2026-08-13 17:36:21 +08:00 |
|
TermiNexus
|
6b82f9c2d7
|
chore(site): GVSite 指针更新——超级菜单社区独立子菜单
|
2026-08-13 11:12:42 +08:00 |
|
TermiNexus
|
a7213bac0a
|
chore(site): GVSite 指针更新——社区按钮图标与 Tailwind v4 语法修复
|
2026-08-13 11:02:16 +08:00 |
|
TermiNexus
|
19ee1e7e2d
|
chore(site): GVSite 指针更新——社区顶部间距真正生效
|
2026-08-13 10:58:34 +08:00 |
|
TermiNexus
|
dfc8ca58a8
|
chore(site): GVSite 指针更新——社区详情/发帖页顶部间距调整
|
2026-08-13 10:55:46 +08:00 |
|
TermiNexus
|
e3c6f7d21d
|
chore(site): GVSite 指针更新——nav 透明仅限 www 首页
|
2026-08-13 10:40:47 +08:00 |
|
TermiNexus
|
0a21d0bb30
|
feat(community): 头像 API——ugm 按 UserUUID 头像接口改公开(AllowAny),社区接口返回 AuthorAvatar 字段;GVSite 指针更新
|
2026-08-13 10:30:58 +08:00 |
|
TermiNexus
|
569344030e
|
chore(community): GVSite 指针更新——社区页面阿里云开发者社区风格重构
|
2026-08-13 10:26:52 +08:00 |
|
TermiNexus
|
71c8ea8ae5
|
fix(community): SUBDOMAIN_CONFIG 注册 discuss/community/comm 子域(dir='' root_is_index)——discuss.gvsds.com 等根路径直达 GVSite SPA 社区
|
2026-08-13 10:22:14 +08:00 |
|
TermiNexus
|
3fd22c24eb
|
feat(community): 官网社区后端——CommunityBoard/Category/Post/Reply/Like 五表 + /API/Community/* 接口(板块/帖子/详情/发帖/回复/点赞),注册 app 与路由;GVSite 指针更新(社区前端)
|
2026-08-13 10:18:01 +08:00 |
|
TermiNexus
|
06b91a10a4
|
chore: 部署产物更新(禁止选中样式)
|
2026-08-13 09:44:20 +08:00 |
|
TermiNexus
|
b41d90c998
|
feat(app): 应用配置公司化——AppConfig 增加 CompanyUUID(空=租户默认),读取回退链(公司→租户默认→模板默认),新增批量复制接口 Config/Copy,权限按管理范围校验
|
2026-08-13 08:48:05 +08:00 |
|
TermiNexus
|
3fa8811a03
|
chore: 部署产物更新(AppMarket 配置按钮恢复)
|
2026-08-13 08:36:53 +08:00 |
|
TermiNexus
|
c122f80261
|
feat(app): ListMarket 支持可管理公司安装分布(InstalledCompanies),市场接口对管理员附带管理范围内已装公司名
|
2026-08-13 08:34:58 +08:00 |
|
TermiNexus
|
d6c72b5ef9
|
fix(app): Install/Uninstall 公司权限校验 c.hex 改 c.hex()——UUIDObj 无 hex 属性导致权限误判(403/500)
|
2026-08-13 08:22:21 +08:00 |
|
TermiNexus
|
06d43b5a6e
|
feat(gerp): 真应用注册协议 Manifest + 严格可用收紧 + 应用配置
- 新增 app_manifests.py:应用清单协议(元数据/菜单/前端入口/配置模板),内置6应用
- 菜单由 Manifest 全权管理:安装注入(挂已知父菜单)/卸载删除,删除手工 menu 项
- App 表新增 FrontendRoute/FrontendType/LegacySrc(0025);新增 AppConfig 键值表(0026)
- app_manager 配置服务(模板/读取/保存)+ AppConfigView(/API/App/Config)
- 严格收紧:AppAccessPermission 移除管理员豁免、menu 过滤全员执行按 Manifest 全菜单
- mail/gitea 管理视图补挂应用权限;Uninstall 支持 TenantOnly
- ManageCompanies 支持按应用查公司安装状态;修复 UUIDObj 无 .hex(转 bytes)
- 新增 sync_apps 管理命令(按安装状态收敛菜单)
|
2026-08-13 07:47:07 +08:00 |
|
TermiNexus
|
4de301aa78
|
feat(app): 公司级+租户级双粒度应用安装——CompanyApp 表、Install/Uninstall 支持指定公司、可管理公司范围校验(super/tenant/company)、CheckAccess 公司维度
|
2026-08-13 06:28:28 +08:00 |
|
TermiNexus
|
904e225b90
|
feat(app): 应用级访问控制——AppAccessPermission 权限工厂挂载邮箱/Gitea/商店/储值/钱包/企业 API(未安装租户拒绝,管理员豁免)
|
2026-08-13 05:34:42 +08:00 |
|
TermiNexus
|
1066d82c75
|
docs: 更新 GVSite 子模块指针、TODO 待办清单,新增 GVSDSDK 问题与 SAGA 报告文档
|
2026-08-13 04:39:57 +08:00 |
|
TermiNexus
|
63eda7437f
|
fix(menu): MenuListCompatView 字典迭代中修改报错——子孙收集与移除逻辑移出 for 循环(GERP系统/应用中心父级菜单过滤)
|
2026-08-13 04:33:04 +08:00 |
|
TermiNexus
|
621cdf3f02
|
chore(gerp): 部署产物更新(GERP系统父级菜单拆分子页面构建)
|
2026-08-13 04:23:47 +08:00 |
|
TermiNexus
|
b55dd2b966
|
feat(gerp/system): GERP系统一级菜单(admin:super 专属)——状态/时序/secrets.ini/运行时 API + 菜单过滤支持 admin:super 专属
|
2026-08-13 04:20:30 +08:00 |
|
TermiNexus
|
83036be079
|
chore(gerp): 部署产物更新(应用中心构建)
|
2026-08-13 04:06:22 +08:00 |
|
TermiNexus
|
a6fb0ca7cf
|
feat(gerp/app): 功能/应用体系——App/TenantApp/UserApp 三表 + 应用中心服务层/API + 菜单按安装状态过滤
|
2026-08-13 04:06:15 +08:00 |
|
TermiNexus
|
68c3ac8d9c
|
chore(gerp): 部署产物更新(企业创建成功页返回详情构建)
|
2026-08-13 03:06:09 +08:00 |
|
TermiNexus
|
f1867a9e80
|
chore(gerp): 部署产物更新(租户详情菜单直达构建)
|
2026-08-13 02:57:01 +08:00 |
|
TermiNexus
|
c610d57157
|
chore(gerp): 部署产物更新(租户详情企业信息构建)
|
2026-08-13 02:39:48 +08:00 |
|
TermiNexus
|
0d019c1c8e
|
feat(gerp/form): CompanyInfo 同一租户仅一条,防重复提交(epcreate 打通)
|
2026-08-13 02:39:42 +08:00 |
|
TermiNexus
|
1504c86bce
|
chore(gerp): 部署产物更新(debug/epcreate 路由构建)
|
2026-08-13 02:34:03 +08:00 |
|
TermiNexus
|
0302081b47
|
chore(gerp): 部署产物更新(原文 blob 回退修复构建)
|
2026-08-13 01:24:45 +08:00 |
|
TermiNexus
|
137170bac7
|
chore(gerp): 部署产物更新(原文 blob 回退+安全浏览文案构建)
|
2026-08-13 01:22:01 +08:00 |
|
TermiNexus
|
139c2514c3
|
feat(oidc): 泛化 OIDC Provider 为多客户端并支持 user 身份策略
- secrets 新增 sections() 枚举配置段,客户端按 [oidc_client_<id>] 自动注册
- 身份策略 IDENTITY 支持 gitea(绑定 Gitea,sub=用户名)/ user(sub=UserUUID,全用户开放)
- authorize/token/userinfo 按 client_id 校验凭据与回调,code 绑定客户端防串用
- [gitea_oidc] 默认客户端行为零差异,兼容现有 Gitea 免密登录
|
2026-08-13 01:18:00 +08:00 |
|
TermiNexus
|
45290a6e71
|
chore(gerp): 部署产物更新(HTML 邮件 iframe 预览构建)
|
2026-08-13 01:16:52 +08:00 |
|
TermiNexus
|
0567b469e9
|
chore(gerp): 部署产物更新(邮箱小写化构建)
|
2026-08-13 01:06:41 +08:00 |
|
TermiNexus
|
bae47dae8c
|
fix(gerp/mail): 邮箱名统一小写化,与 Stalwart 规范化存储保持一致
|
2026-08-13 01:06:36 +08:00 |
|
TermiNexus
|
9d9102617f
|
chore(gerp): 部署产物更新(多邮箱选择修复构建)
|
2026-08-13 01:02:54 +08:00 |
|
TermiNexus
|
4455bfe7e9
|
chore(gerp): 部署产物更新(多邮箱功能构建)
|
2026-08-13 01:00:42 +08:00 |
|