变更记录
什么是新的。
平台的每一个改进,随着它的出货。
· kamo-marketing
添加/ 请求直接的导航链接、 主页部分和计划特征比较行
- 标题:请求作为最高一级直接连接定价和公司 - 页脚:在产品栏中添加直接可见度的请求 - 定价页面:捆绑和特征比较之间自定义的 dev callout 横幅 - 特性页面: CTA 之前的特性请求 - 主页:在Pricing和FAQ之间的新功能请求部分显示计划级访问 - 跳转到栏:在定价和FAQ之间添加请求跳转到链接 - DB:FEATURE REQESTS 以每计划文本值为种子的支助类别 (自由:社区投票,起步者:投票和请求,企业:优先请求,企业:包括自定义dev) - loader:用FEATURE REQESTS特征定义和规划特征图更新
· kamo-internal
圆通应用程序 Configs + 表面应用模型设置 + 私人- org 切换
- BrancesSetupManager:地图备份模型现在将持续应用软件水化 按后端返回( 可用性 + 允许的每个服务商业类型) )而不是重置到负载时的 NOT AVAILALUL。 保存有效载荷 对于儿童模型和主模型流都包括应用程序Configs (c) 每一应用程序的可得性和客户关系管理商业类型的限制。 师父 模型编辑器重复使用映射BackendModel,所以其行为相同. - 使用应用模型钩:扩大的响应类型现在带有应用 模型的 scalar 设置(allow Owners View OtherOrgs,允许 Owners PrivateOrgs, 允许子幼兽、年龄范围、身份 (原始内容存档于2017-03-26). Team MemberPayFeeesSetting, AppConfigs map, and org Is Private——如此一来, 未来的编辑器( 地物管理器、 OAuth 配置、 商业市场) 可以打开 统一而无取相. - 私人- org 切换: 新的代理路由QQ (PATCH)和一张能见度卡浮出树枝型标签,门由 允许Owners私人Orgs。 启用时, 其他 Org 拥有者不会看到这个 在列表中 org 。 优化 UI 与下一个应用模型对齐 刷新点.
· BillingService
Enforce team-member pay-fees setting at Stripe customer creation
Bumps kamo-shared-library dependency to 1.5.0 so BillingService can resolve the new AppliedModelEnforcementService, and wires team-member vs org pay-fees enforcement into **************** - teamMemberPayFeesSetting == NOT_AVAILABLE: creating a member-specific billing customer (self-pay) is rejected — the org must cover fees. - teamMemberPayFeesSetting == FORCE_ENABLE: creating an org-level customer that would cover team-member charges is rejected — team members must pay themselves. - OPTIONAL: either flow is permitted. Enforcement is best-effort when the org can't be resolved (tooling contexts, legacy data) — falls through to the legacy behavior instead of blocking.
· SecurityService
Wire applied-model enforcement across every controller
Every non-role setting on the applied security model is now enforced at the exact controller boundary it governs, and the scalar settings round-trip cleanly through the master/child model editors so the UI can gate on them. - **************** when branchTypeID is set, look up the branch type to derive the parent org; call assertSubChildOrgAllowed and assertAgeRangeAllowed for both member and team-member age slots before committing. New PATCH /{id}/visibility endpoint lets owners flip Organization.isPrivate, gated by assertCanSetPrivate. getAllOrganizations applies filterVisibleOrgsForViewer so results respect both allowOwnersViewOtherOrgs on the viewer's model and the isPrivate flag on candidates. - **************** call assertAppEnableAllowed / assertAppDisableAllowed so NOT_AVAILABLE apps can't be enabled and FORCE_ENABLED apps can't be disabled. - OAuthConfigController POST/PUT: assertCanManageIdentityProvider blocks provider CRUD when identityProviderSetting == NOT_AVAILABLE. - CommerceMarketController POST/PUT: assertCommerceTypeAllowed rejects a commerce type not listed in the model's appConfig for CRM. - SecurityModelController + MasterModelController: round-trip appConfigs through create/update payloads and the GET responses. New processAppConfigs helper accepts the list form used by the frontend editor. - AppliedModelController: response now includes the full scalar settings block (allowOwnersViewOtherOrgs, allowOwnersPrivateOrgs, allowSubChildOrgs, age ranges, identityProviderSetting, teamMemberPayFeesSetting) and the appConfigs map so frontend editors can gate uniformly. Also surfaces orgIsPrivate so the privacy toggle stays in sync.
· kamo-shared-library
执行每个非作用设置
在 Org 应用程序上添加剩余设置的端到端执行 安全模型。 以前只读(或掉入) )现在有一个持久路径,一个运行时执行助手和一个UI 钩去消耗. 数据层 : - 组织.是私人的(布尔一栏,默认虚假)——Org自己的 可见度旗帜,通过新的MasterModel 控制器组合的 PATCH 设置 终点 - 服役 类型( OPTIONAL DefAULT ENABLED /) 备注: - ChildOrg Security ModelAppConfig实体 + repo + 服务——坚持按应用程序 可用性( 和 CMM 允许的CommerceTypes ) , 先前已跳出保存 。 - **************** 绕行新实体. 运行时间执行 : - 应用模式执行服务合并了呼叫者使用的每一份检查: 支持子儿童组织 支持子儿童组织 **************** 须知者, CanSet Private, 过滤可视OrgsForViewer, 团队成员自动付费费, 是团队成员付费费 强制/被封锁, 承认一切,承认一切,承认一切,承认一切,承认一切 获得DefaultEnabled Apps For Child, 声明商业Type Allowed, 得到Allowed Commerce Types。 (英语). Null-safet:"没有应用模型"允许一切. - ChildOrgTemplate Sepedding Service 扩展至同样种子 OrgFeature 列从 父应用程序默认值(FORCE ENABLED和 (原始内容存档于2013-10-29). OPTIONAL DEFAULT ENABLED) 关于新生角,所以新生角 提出正确的默认表面.
· kamo-internal
锁定成员角色分配中的强制系统角色
- 公共服务员:在接收时接收分支TypeID/主模ID 组织有效载荷,使分支类型标签能够可靠地锁定 "Edit Master Model"按钮(之前依赖杰克逊系列化) 通过道具类型检查). - 角色列表 Tab:角色复选框网格现在标记了所需的系统 根据成员类型和所有者旗帜,检查和禁用的角色 : * 成员类型:需要“成员”。 * 团队成员类型成员:需要"团队成员". *团队-成员类型业主:"管理员(全通)"是附加的. 所需经费。 一个"需要"的芯片和解释性提示,使限制对 编辑。 试图切换一个强制角色是无操作;后端 无论如何,在会员安全主计长的核对中,将重新添加.
· SecurityService
Enforce system-role assignment and auto-admin for team-member owners
MemberSecurityController now enforces the three assignment invariants defined in the brainstorm spec: - saveMemberSecurity: before persisting the caller's requested roleIds, augments the set with the mandatory system role(s) based on member type: Member-typed members always get roleMemberID; Team-Member-typed members always get roleTeamMemberID; Team-Member owners additionally always get roleAdminID. LinkedHashSet preserves caller ordering while deduping. - updateMemberAccess: when the owner flag toggles, the Administrator role is added or removed on the team-member to keep role assignments in sync with ownership. Rights-applied recalculation runs in the same transaction so downstream reads see the updated effective permissions immediately.
· kamo-shared-library
应用模板强制规则和 DEFAULT 回溯成员权利解析
QQ 现在覆盖应用程序 模型的 4 个默认作用模板在已存在的级联之上( org 角色) 部门 职称 成员: - 角色类型特定FORCE GRANDED/FORCE NUKE在所有级联中获胜。 模板由成员类型选择:团队成员所有者使用 行政官,团队成员使用TEAM MEMBER,平庸成员使用成员. - 角色类型模板时, DEFAULT 模板FORCE 值赢得级联 对该权利没有强制规则(根据Q7优先)。 - 非武力值(Granted/NUKE)作为最后防线 在全级后决定不指定的权利。 应用 ModelResolverService 被注入为 @ Autowired( required=false) 所以 现有单元测试线,仅构造两种构造器-强制性 储存库继续工作,贬低了遗留下来的无武力规则之路.
· kamo-internal
添加主模式编辑器、 角色模板和强制规则的显示
显示UI中新的分支类型安全模型: - 分支类型标签获得“编辑主模型”按钮(隐藏于 org 指定了一个分支 TypeID ) 打开主控模式编辑器 模式:没有名称字段,没有分支类型芯片,保存点击/主模式. - 模型编辑器(既增加儿童模型,也增加编辑主模型) "Allowed Apps"之后的"Default Security 角色"一栏,有标签用于 管理员/团队成员/成员/DEFAULT和5个值设置 (执行. ) (执行. - 新使用 和曝光为消费编辑器的forced(右名,角色Type). - 安保作用、部门、职称和每个成员的角色-任务 页面隐藏由适用模板锁定的权利: * 安全-作用:系统角色使用其匹配模板+DEFAULT; 自定义角色只使用DEFAULT(Q11 答A). * 部门+职称:只有DEFAULT(非特定作用)。 * 成员页:成员类型模板(TEAM MEMBER vs Member)+DEFAULT (问题8回答C, 第一种评价顺序). 新的代理路线:/api/安全/主机型 (GET/PUT), /api/安全/应用模型.
· SecurityService
Master-model + applied-model endpoints and template-aware org seeding
Adds the controllers that surface the new branch-type security flow: - /api/security/master-model (GET/PUT) manages the current org's master model; only writeable when Organization.branchTypeID is null. - /api/security/applied-model (GET) resolves which model governs this org and returns per-template force-rule maps for frontend gating. - SecurityModelController round-trips the 4 default-role templates as part of its existing create/update payloads. - OrganizationController propagates the new branchTypeID from the request body and seeds the new org's 3 system roles from the applied model's templates via ChildOrgTemplateSeedingService.
· kamo-shared-library
添加主模型、默认角色模板以及应用模型解析器
引入新分支类型安全模型流的数据层 : - 组织获得可失效的分支TypeID并掌握ModelID列。 - 新的角色权利模式 类型为 5 个值(FORCE GRATED, GRANTED, Not Specified, Force NUKE, NUKE)用于模板层设置. - 新的默认RoleType enum(ADMINISTRATOR,TeAM MEMBER,成员,DEFAULT) 用于每个ChildOrg SecurityModel上附的4个角色模板。 - 新实体 加上他们的回购 服务和DTO - 应用ModelResolverService解决管理特定矿石的模型 (branch Type-inherited或master)并暴露出武力规则的外观. - 儿童OrgTemplateSeedingService种子 新的儿童Ogs的3个系统角色: 应用模型模板中的 GRANTED/ NUKE 值; 强制值保留 在模板中执行,并在运行时执行。 最终用户OrgRoleRight继续使用3等值的角色RightSettingType—— 强值严格来说是一个模板层概念.
· kamo-internal
添加分支类型芯片输入字段到安全模型编辑器
- BranchTypeChip Field 有彩色点切换,编辑并点击标签, X 删除 - 编辑名称/描述的分支编辑器 - 从 GET /api / security/ branch 类型自动完成下拉,不包括当前模式类型,显示跨模式类型的源模式 - 处理保存模式发送分支类型,并删除PUT/POST有效载荷中的BranchTypeIds - 列表表格获得带有有色点芯片的分支类型栏 - 从后端响应中装入模型映射分支类型
· kamo-login
从角色右侧删除管理器 USERS 右侧
· kamo-register
从角色右侧删除管理器 USERS 右侧
· kamo-internal
从所有前端引用中右移管理器 USers
· kamo-shared-library
从 RightType enum 删除 MANAGE USERS 右侧( id=19)
· kamo-internal
添加分支类型安全 API 路由
· SecurityService
Wire branch types into security model CRUD endpoints
· kamo-shared-library
以完整字段和分支类型扩展 ChildOrg Security ModelDTO
· kamo-shared-library
添加 OrgBranch Type 服务
· kamo-shared-library
添加 OrgBranch Type 仓库
· kamo-shared-library
添加 OrgBranch TypeDTO 数据
· kamo-shared-library
添加 OrgBranchType 实体
· kamo-internal
更新分支SetupManager 字幕到引用动态分支类型标签
· kamo-internal
重新命名分支设置标签到动态 {branchLabel} 类型并更新 URL 到分支类型
· kamo-login
每次登录尝试失败后, 重置 Capcha ***
用户必须在每一个错误的密码后重新验证自己是人类. 调用部件. reset () 并清除 Capcha 验证/ 负载状态 证书失败和网络错误.
· EmailService
Auto-inject logoUrl, logoSimpleUrl, and orgName variables at send time
EmailTemplateService now merges base variables (logoUrl, logoSimpleUrl, orgName) derived from the org's primary domain before rendering, so all transactional templates can reference {{logoUrl}} and {{logoSimpleUrl}} without callers needing to pass them explicitly. Caller-supplied vars still take precedence.
· kamo-internal
在 MycountTab 中添加用户级字段和密码更改的许可关卡
· kamo-internal
在成员设置页面中添加访问门和 MANAGE MEMBER SECURITY 标签守护
· kamo-internal
添加更改密码字 Next.js API 代理路由
