蓝鲸用户管理是蓝鲸智云提供的企业组织架构和用户管理解决方案,为企业统一登录提供认证源服务。

Overview

蓝鲸用户管理


license Release Version PRs Welcome

简体中文 | English

蓝鲸用户管理是蓝鲸智云提供的企业组织架构和用户管理解决方案,为企业统一登录提供认证源服务。

总览

功能

  • 支持多层级的组织架构管理
  • 支持通过多种方式同步数据:OpenLDAP、Microsoft Active Directory(MAD)、Excel 表格等
  • 支持用户密码周期管理、密码强度校验、用户登录试错限制、邮件发送随机密码等安全措施

详细介绍请参考功能说明

快速开始

路线图

支持

蓝鲸社区

  • BK-CI:蓝鲸持续集成平台是一个开源的持续集成和持续交付系统,可以轻松将你的研发流程呈现到你面前。
  • BK-BCS:蓝鲸容器管理平台是以容器技术为基础,为微服务业务提供编排管理的基础服务平台。
  • BK-CMDB:蓝鲸配置平台(蓝鲸CMDB)是一个面向资产及应用的企业级配置管理平台。
  • BK-PaaS:蓝鲸PaaS平台是一个开放式的开发平台,让开发者可以方便快捷地创建、开发、部署和管理SaaS应用。
  • BK-SOPS:标准运维(SOPS)是通过可视化的图形界面进行任务流程编排和执行的系统,是蓝鲸体系中一款轻量级的调度编排类SaaS产品。

贡献

对于项目感兴趣,想一起贡献并完善项目请参阅 Contributing Guide

腾讯开源激励计划 鼓励开发者的参与和贡献,期待你的加入。

协议

基于 MIT 协议, 详细请参考LICENSE

Comments
  • 社区版蓝鲸6.0.5无法部署usermgr2.3.1

    社区版蓝鲸6.0.5无法部署usermgr2.3.1

    问题描述 社区版蓝鲸6.0.5默认使用2.2.6-b3版本的usermgr,但是无法同步MAD,为了能同步MAD,将usermgr升级到2.3.1,但发现部署2.3.1时: $ ./bk_install saas-o bk_user_manage 执行成功 image

    $ ./bkcli install usermgr 执行失败

    E33791329C3B432600EBCF6CBF3C6939

    看了报错信息显示缺少env文件,尝试做了以下操作: $ source /data/install/utils.fc $ source /data/install/load_env.sh $ ./bkcli stop usermgr $ ssh $BK_USERMGR_IP 'rmvirtualenv usermgr-api' $ ./bkcli install usermgr 依然报错。。。导致我无法进入 【用户管理】平台

    版本

    • 2.3.1
    • 蓝鲸社区版6.0.5
    • OS: [Centos Linux release 7.6.1810 (Core)]
    Layer: api Type: deploy 
    opened by lianghuiyuan 12
  • 发布支持【二进制/Smart】格式包

    发布支持【二进制/Smart】格式包

    用文字描述你遇到的问题

    请用简练的文字描述你遇到的问题,问题描述的清晰程度决定了问题被解决的效率。

    重现方法

    请描述问题重现的方法,如果不方便描述,可以通过截图或者视频辅助。

    预期行为

    预期的正常行为

    版本

    • 提供用户管理的具体版本号
    • 是否是企业版问题?

    如果是 SaaS 页面问题,请提供使用的操作系统和浏览器信息

    • OS: [e.g. iOS]
    • Browser [e.g. chrome, safari]
    • Version [e.g. 22]

    额外信息

    任何你觉得有助于问题解决的内容

    Sign: feature requested 
    opened by Laotanling 10
  • 同步LDAP用户报错

    同步LDAP用户报错

    第一个问题:同步LDAP用户时报错,报错日志如下: ldap3.core.exceptions.LDAPAttributeError: invalid attribute type memberOf

    ldap3.core.exceptions.LDAPAttributeError: invalid attribute type memberOf File "/data/bkce/usermgr/api/bkuser/categories/vendors/ldap/adapter.py", line 291, in _fetch_data bkuser.categories.exceptions.FetchDataFromRemoteFailed: 无法获取用户数据, 请检查配置

    Type: bug Layer: api Module: LDAP/MAD 
    opened by hlilhuang 9
  • 修改用户密码有效期不同步更新密码修改时间字段

    修改用户密码有效期不同步更新密码修改时间字段

    功能需求背景,例如你遇到了什么问题

    新建用户密码修改时间字段为空,如果在一个月之后修改用户的密码有效期为一个月。按照代码的逻辑(如果密码修改时间字段为空则用新建用户时间) 用户是直接过期的。

    描述你觉得更好的解决方案

    在修改用户密码有效期时,同步更新密码修改时间字段

    额外信息

    任何你觉得有助于理解的信息

    Sign: feature requested Layer: api 
    opened by qq1114631740 9
  • LDAP用户同步失败

    LDAP用户同步失败

    用文字描述你遇到的问题 新建LDAP用户目录测试连接正常,同步用户失败

    重现方法 错误日志如下: image ldap配置如下: image image

    版本

    • 用户管理后台版本 2.2.6-b3
    • 用户管理saas版本 2.2.6

    原贴地址:https://bk.tencent.com/s-mart/community/question/3903?type=answer

    Type: question Layer: api Module: LDAP/MAD 
    opened by ganzaofang 9
  • [API] department接口查询性能

    [API] department接口查询性能

    用户管理department_departments表count查询需要10分钟

    SELECT `departments_department`.`name`
    FROM   `departments_department`
    WHERE  ( `departments_department`.`lft` <= 17510
             AND `departments_department`.`rght` >= 17511
             AND `departments_department`.`tree_id` = 2 )
    ORDER  BY `departments_department`.`lft` ASC 
    

    确认:

    1. 是哪个api导致的
    2. 如何优化这里的性能(是独立的三个索引, 但是lft/rght分别有大于小于比较)
    Type: enhancement Priority: Middlum Layer: api todo 
    opened by wklken 8
  • [重写] 去 SaaS 层方案

    [重写] 去 SaaS 层方案

    过渡期: 保留bk-user saas, 但是所有接口call_through到后台

    1. 去掉SDK所有代码
    2. 去掉大部分header头
    3. 报错日志/可观测性需要有所增强
    4. 新写 API, 不依赖原先任何逻辑(proxy model+custom manager+独立viewset等)

    https://github.com/TencentBlueKing/bk-user/issues/613

    PR: #644

    Layer: api Layer: saas Priority: High backlog 
    opened by wklken 8
  • 复杂度分析

    复杂度分析

    Part0: 日志/报错/可观测性

    这块的缺失, 给问题排查带来了比较大的阻碍; 已经优化了几轮, 补齐了大部分日志打印/上下文, 增加调用来源app_code/request_id等等, 并且把后台报错也向上传递到了SaaS, 近期在接入otel

    仍然存在的问题:

    1. 日志全部输出到标准输出, 混在一起, 导致非常难以捞日志
    2. 同步相关的过程日志过多

    Part1: 整体调用链路及架构

    前端vue -> SaaS -> SDK -> API

    存在一个由 API 反向生成的 SDK 嵌入到了 SaaS;

    并且, SaaS 调用 API 除了 SDK, 还存在call_through透传的方式;

    另外, 通过 SDK 调用 API 拼装了一批 headers, 用于控制返回值等 bkuser_shell/apis/viewset.py

    本身功能并不多, 是否可以考虑:

    1. 简化甚至去掉SDK, 使用独立文件封装
    2. 简化SaaS到API之间的协议, 去掉大部分header封装 (可能需要引入/api/v3)
    3. 优化报错提示, 后台报错到SaaS再到前端, 直接在页面可见

    Part2: API auth的复杂度 (运维切换耗时最多)

    最早没有api auth, 后来也没有统一接入esb走jwt, 而是实现了自定义token进行的api auth

    后来优化实现 bkuser_core/enhanced_account/authentication.py

    三种认证, 四种场景:

    1. app_code / app_secret (用于容器化前后台调用的接口认证, 此时saas 和api的app_code/app_secret一致)
    2. TOKEN 认证 (原先的token认证, 目前在逐步去除, 外部版已去除, 内部上云版规划去除中)
    3. jwt (内外部版均已支持, 从esb过来的流量)
    4. 无认证 (原先二进制版, 未暴露服务, 无认证)

    目前, 需要逐步推动去掉 2/4; 只保留 1/3; 主推 3;(只有本项目自己模块内调用用 1)

    Part3: API 层的复杂度 (bug重灾区)

    当前由于历史原因, 存在

    • /api/v1(login在用)
    • /api/v2(当前主要暴露的接口)
    • /api/v3(已有实现, saas有两个接口调用)

    存在问题:

    • /api/v2由于接口非常灵活, 同一个viewset有多重继承, 并且由参数控制了input slz/output slz以及一些过滤的逻辑, 导致整体耦合在一起;
      • 不好排查问题
      • 目前已经有性能问题, 但是难以优化, 因为一些参数已经放出, 使用方误用/滥用无法控制
    • /api/v3当前的实现方案还是过于灵活, 需要考虑去掉重做方案

    目标: 对外提供简单 API, 所有参数可控; 降低参数与逻辑的耦合; 强单一职责, 一个viewset只做一件事情;

    • 给 SaaS 的API, 尽量灵活(可控的, 减少开发量)
    • 给外部的 API, 尽量简单(不可控, 降低风险)

    Part4: 目录同步的复杂度 (排查问题耗时最多)

    当前的plugin及同步:

    • local
    • ldap
    • mad
    • http
    • tof

    重点是local+ldap/mad;

    当前存在的问题:

    1. 过于抽象, 层层嵌套;
    2. 使用了十分动态的语法糖实现, 导致很难跟踪代码调用链路, 很难拿到明确的报错及堆栈;

    需要考虑的处理:

    1. 简化模型, 减少抽象(足够当前 5 种plugin即可), 统一的数据模型+适当的adapter;
    2. 去动态化, 去掉dataclass(post_init)和get_attr等语法糖, 明确的注入及调用链, 明确的报错堆栈
    3. 减少约定;

    可以考虑设计一个新的数据模型+plugin模型, 逐步迁移;

    Part6: 权限模块

    权限模型比较特殊, 资源是基于目录的递归(都是同一种类型, 但是带层次)

    所以实现时, 做了大量定制;

    目前这块逻辑需要考虑如何优化, 必要时考虑重新设计权限模型(尽量简化)

    iam_filter_actions = ("list", "list_tops")
    
    =>  self.filter_queryset
    =>  
    

    https://github.com/wklken/bk-user/blob/891cb75458ccf514e0e87415784beee51617f4a7/src/api/bkuser_core/apis/v2/viewset.py#L231

    问题: 权限落在api上, api需要处理来自saas的请求(有iam), 也要处理来自esb的请求, 此时 SaaS 的场景会更多, 导致 api 很多地方没法配合理的权限(多个场景调用统一个 API) => 应该把权限控制移动到saas层

    Part6: 分层及缓存

    • 分层: 目前缺少一层中间抽象层, 例如service; (由于是django models, 这层本身就比较模糊), 但是需要考虑切一层出来
    • 缓存: 目前用的 cache_page(有bug), django localmem(jwt获取公钥缓存)

    考虑的处理方式:

    • api层到viewset
    • service层 (缓存控制/权限控制)
    • model层
    Type: proposal 
    opened by wklken 8
  • 对蓝鲸平台进行安全扫描时发现,用户管理存在DDE注入漏洞

    对蓝鲸平台进行安全扫描时发现,用户管理存在DDE注入漏洞

    客户在对蓝鲸平台进行安全扫描时发现,用户管理存在DDE注入漏洞

    漏洞路径 | /console/o/bk_user_manage/api/v2/categories/1/export_template -- | -- 漏洞威胁 | 高危 漏洞类型 | 命令注入 业务功能描述 | 该功能点是web官方站点的用户管理下载模版处。

    Type: enhancement Type: question Layer: saas Sign: security 
    opened by abbyWJM 7
  • 用户展示字段优化

    用户展示字段优化

    背景:基于审计需要,增加用户相关字段展示; 实现:用户相关字段展示 增加 <过期时间>一栏,支持编辑;已存在的用户字段 <账号状态> 增加<已过期>类型; 关联issue:https://github.com/TencentBlueKing/bk-user/issues/221

    opened by Canway-shiisa 7
  • 蓝鲸6.0.4新增用户,提示邮件发送成功,实则失败

    蓝鲸6.0.4新增用户,提示邮件发送成功,实则失败

    用文字描述你遇到的问题

    请用简练的文字描述你遇到的问题,问题描述的清晰程度决定了问题被解决的效率。

    重现方法

    请描述问题重现的方法,如果不方便描述,可以通过截图或者视频辅助。

    预期行为

    预期的正常行为

    版本

    • 提供用户管理的具体版本号
    • 是否是企业版问题?

    如果是 SaaS 页面问题,请提供使用的操作系统和浏览器信息

    • OS: [e.g. iOS]
    • Browser [e.g. chrome, safari]
    • Version [e.g. 22]

    额外信息

    任何你觉得有助于问题解决的内容

    蓝鲸版本:6.0.4

    问题场景:配置邮件服务器,用于邮件接收通知

    问题现象:

    • 配置邮件服务器成功,curl命令测试发送邮件成功
    • 用户管理-新增用户后,提示用户创建成功并已发送邮件,实则未收到邮件 查看相关日志提示: component.log ERROR [2021-12-31 15:48:40] component(ln:96): Component return error message: Signature [bk_signature] and APP Secret [bk_app_secret] cannot be empty at the same time, request_id=f22b19b317b247b0a0c92c3fd1ccd4a8, url=http://我们的域名:80/api/c/compapi/v2/cmsi/send_mail/, params=None, data={'title': '蓝鲸智云社区版 - 您的帐户已经成功创建
    Type: question 
    opened by jackchenkai 7
  • 【登录优化】用户希望登录时输入账号提示的登陆页交互能够更友好

    【登录优化】用户希望登录时输入账号提示的登陆页交互能够更友好

    功能需求背景,例如你遇到了什么问题

    用户登录账号时,会弹出该账号匹配的域名信息供用户选择,但是弹出至隐藏状态时的判断条件不够友好,需要特定机制触发(点击周边空白处)才能隐藏,会导致一些情况下用户体验不好

    描述你觉得更好的解决方案

    (1)希望输入的内容与已有的账号以及域名完全命中时,提示的内容能够完全消失,而不需要客户再手动选择 image

    (2)当前焦点离开对话框以及下拉列表时,希望能够隐藏掉下拉列表 (3)域名问题的设计可以参考weops或下图,让账号信息与域名隔离开,就可以一并解决以上问题。同时支持设置默认域名,可以一并解决之前部分客户提出的【希望登录时不输入域名的需求】 image

    额外信息

    任何你觉得有助于理解的信息

    opened by pagezz-canway 0
  • 2.5.2 登录页面忘记密码没有反应

    2.5.2 登录页面忘记密码没有反应

    步骤一:paa6环境,进入登录页面,点击忘记密码,显示没有反应。

    步骤二:进入登录页面,点击忘记密码,没有反应,输入账户和密码进行登录,跳转密码重置页面。请问这样的操作符合预期吗??而在输入的账户和密码是正确的才能跳转密码重置页面

    image


    原因: 二进制版的登录是 bk-PaaS下的登录, 不是bk-user下的, 所以如果有相关的修改, 二进制版的也得同步处理

    Type: bug Layer: login Priority: High 
    opened by wklken 1
  • 协作开发 CodeReview CheckList

    协作开发 CodeReview CheckList

    目标: 减少 CR 时间, 提升协作效率, 尽量在前期规避掉命名/风格/规范/冲突/扫描等初级问题

    开发前

    • 需要从 PR 目标分支切出来改
    • 一个需求一个 PR, 禁止多个需求放在一个 PR 中一起提交

    必须符合一些基础的规范

    • 除了logger, 其他字符串拼装尽量用 f-string
    • 所有函数/参数, 尽量要使用 typehint
    • 常量/方法名/ErrorCode 名称最好多人review确认(这块每次都会有)
    • 一致性: 一个概念只有一个确定的命名, 不要有多个; 不同概念的命名必须不同
    • 单一职责原则, 一个函数只做一件事情
    • 函数的返回值必须一致, 要么都是bool要么都raise; 所有return的参数必须一致
    • URL 需要检查是否符合restful风格
    • DRF的输入/输出都必须有 SLZ, 禁止直接构造dict放入response
    • log打印要包含尽量都得上下文, 看到这个日志能定位问题(反例: 只打个error, 或者data, 没有上下文/不知道是谁)
    • except代码块中打日志用 logger.exception
    • 不能吞掉异常 except: pass
    • 禁止: 在代码中使用print打印日志
    • 禁止: 日志打印中禁止打印敏感信息, 例如密码/解密的明文等信息

    提交前

    • 需要经过严格自测, 再小的变更也得验证(防止类似语法错误等低级问题进入下一阶段)
    • 提交 PR的开发者需要签名 CLA
    • 新增文件头需要带license, 并且是本项目的license头
    • 必须配置pre-commit, 必须本地检查都通过才能提交(flake8/isort/black/mypy)

    提交 MR 后

    • 提交后: 有冲突需要修复
    • 提交后: github action需要检查通过, 风格检查+单测
    • 提交后: 腾讯内部的codecc扫描失败需要确认, 大概率是复杂度超过最大限制, 需要重构拆解函数

    第一轮, 导师Review

    按照需求/上面的checklist进行review, 可能review多次, 直到符合导师的 Review 要求 全部修复确认无误后, 进入下一轮

    第二轮, 项目/模块负责人Review


    其他:

    • 每次 Review 后的修复需要关闭对应的conversation, 如果有不处理的需要说明原因
    • 需要有单测(当前未要求, 未来会要求)

    相关链接:

    • 蓝鲸最佳实践
    • 书籍: <<编写可读代码的艺术>>
    • 书籍: <<编写高质量代码—改善Python程序的91个建议>>
    Type: proposal 
    opened by wklken 0
Releases(v2.5.2-alpha.3)
  • v2.5.2-alpha.3(Dec 21, 2022)

    Add

    • 合并二进制出包build文件到github仓库(support-files等从原内部adapters仓库迁出) => #806
    • enable faulthandler in wsgi.py => #805
    • 【安全】密码试错次数超过设置,自动锁定账户对admin生效 #810 => #827
    • 【安全】用户修改密码以及重置密码时密码需加密传输#808 => #818
    • 【安全】admin账户重置密码需要先输入原密码进行校验#811 => #840
    • 需支持忘记密码可选择短信、微信方式 #631 => #837

    Bugfix

    • 修复xss问题 => #800
    • 修复expired_after_days配置导致的异常 #757 => #809
    • 修复审计-登陆日志导出ugettext_lazy 导出失败 => #814
    • 修复职位展示问题 #820 => #822
    • 通过excel导入用户组织支持全量更新 #728 => #813
    Source code(tar.gz)
    Source code(zip)
  • v2.5.2-pre-alpha.1(Nov 21, 2022)

  • v2.5.1(Nov 15, 2022)

  • v2.5.0(Nov 14, 2022)

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-beta.3(Nov 2, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-beta.2(Oct 27, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-beta.1(Oct 24, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-alpha.3(Oct 18, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.5.0-alpha.2(Oct 17, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.4.3(Oct 9, 2022)

  • v2.5.0-alpha.1(Oct 8, 2022)

    THIS IS A PRE_RELEASE, FOR TEST ONLY!

    REFACTOR

    • 全新架构,去除 SDK 层, 所有接口代理到后台服务
    • 解耦 SaaS API 与 Open API(esb api)
    • 重构产品所有功能相关代码
    • 重构 SaaS API 相关权限控制逻辑
    • 去除冗余代码

    OPTIMIZATION

    • 性能优化: 优化数据库索引/增加缓存/减少接口 SQL 查询量
    Source code(tar.gz)
    Source code(zip)
  • v2.4.2(Sep 26, 2022)

  • v2.4.1(Sep 22, 2022)

  • v2.4.0(Sep 19, 2022)

    refactor:

    • 登录代码重构

    feature:

    • 登录时,支持密码明文进行加密处理

    bugfix:

    • DDE注入漏洞解决,设置导入导出模板单元格为文本模式
    • 前端: 复制组织 ID
    • 前端: 邮箱校验规则优化(放开部分限制)
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0-beta.1(Sep 8, 2022)

    refactor:

    • 登录代码重构

    feature:

    • 登录时,支持密码明文进行加密处理

    bugfix:

    • DDE注入漏洞解决,设置导入导出模板单元格为文本模式
    • 前端: 复制组织 ID
    • 前端: 邮箱校验规则优化(放开部分限制)
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0-alpha.2(Sep 7, 2022)

    分支: ft_refactor_login

    • 登录重构: 合并企业版社区版/删除无用代码/删除前端资源
    • 删除 Github 项目中维护的 helm charts

    注意: 这个版本只对登录进行了变更, 没有改动用户管理的逻辑; 只对容器化 7.0 统一登录生效, 与二进制版本无关

    Source code(tar.gz)
    Source code(zip)
  • v2.3.7(Sep 7, 2022)

  • v2.4.0-alpha.1(Sep 5, 2022)

    分支: ft_refactor_login

    • 登录重构: 合并企业版社区版/删除无用代码/删除前端资源
    • 删除 Github 项目中维护的 helm charts

    注意: 这个版本只对登录进行了变更, 没有改动用户管理的逻辑; 只对容器化 7.0 统一登录生效, 与二进制版本无关

    Source code(tar.gz)
    Source code(zip)
  • v2.3.6(Sep 3, 2022)

  • v2.3.6-beta.5(Sep 2, 2022)

  • v2.3.6-beta.4(Sep 1, 2022)

  • v2.3.6-beta.3(Aug 29, 2022)

  • v2.3.6-beta.2(Aug 25, 2022)

  • v2.3.6-beta.1(Aug 25, 2022)

  • v2.3.6-alpha.2(Aug 19, 2022)

    新增:

    • 本地目录支持账号有效期设置 #397
      • 账号超过有效期后将无法登陆
      • 账号即将到期会有提醒
      • 用户详情页会展示账号有效期

    Bugfix:

    • IAM 相关配置
    Source code(tar.gz)
    Source code(zip)
  • v2.3.6-alpha.1(Aug 16, 2022)

  • v2.3.4-alpha.32(Aug 12, 2022)

    PRE-RELEASE:

    新增:

    • 本地目录支持账号有效期设置 #397
      • 账号超过有效期后将无法登陆
      • 账号即将到期会有提醒
      • 用户详情页会展示账号有效期
    Source code(tar.gz)
    Source code(zip)
  • v2.3.5(Aug 4, 2022)

  • v2.3.4-alpha.31(Aug 1, 2022)

    PRE-RELEASE:

    新增:

    • 本地目录支持账号有效期设置 #397
      • 账号超过有效期后将无法登陆
      • 账号即将到期会有提醒
      • 用户详情页会展示账号有效期
    Source code(tar.gz)
    Source code(zip)
  • v2.3.4(Jul 28, 2022)

    v2.3.4

    这个版本修复了一批历史遗留问题, 增加了代码的健壮性; 同时在日志这块做了大量的优化, 同时增加sentry/otel/metrics/healthz等增强整体的可观测性, 优化了前端到 SaaS 到后台的日志报错(request_id/错误堆栈等), 问题排查更快; 优化了ldap相关的报错堆栈/日志/提示等, 并支持 debug 模式;

    (based on v2.3.4-beta.28)

    Bug Fixes

    API

    • Serializer fields wrong when no_page=True (#497)
    • 删除邮件模板中企业版/社区版字样 (#481)
    • LDAP 测试连接使用db中的数据而不是当前表单中的数据 (#448)
    • Change CELERY_RESULT_BACKEND to django-db, instead of MQ or Redis (#419)
    • Add unique_together for user_settings_setting(category_id+meta_id) (#425)
    • Migration setttings_meta create same key with the init_settings (#412)
    • Remove esb healthz check from api (#382)
    • 修复 no_page 时返回异常
    • Fix /ping always redirect to /ping/ in kube-probe

    sync

    • Fix custom sync via http will raise IndexError if results is empty (#410)
    • Custom sync from crontab use the same task_id (#411)
    • Fix http api as datasource wrong response check (#400)
    • Fix http api datasource syncer (#368)

    SaaS

    • Redirect with size=big (#494)
    • 国际化 (#417)
    • 新增字段下拉显示问题 (#414)
    • 密码提交参数修改 (#370)
    • 修复二进制部署时 call_through_api 无法找到正确 Path 问题

    Login

    • Fix auth_login raise exception in some conditions
    • Update login v7 logo (#469)
    • Logo en image (#395)
    • 修改登录页footer

    Features

    新功能

    • 密码过期邮件提醒功能 #117
    • 支持密码连续字符等功能检测 #238
    • 支持密码修改审计 #289

    API

    • 支持注册网关 API 到APIGateway
    • API 支持多重认证: token(原先方式, 将会彻底下掉)/app_code+app_secret/jwt
    • usermgr SaaS 使用 AppCode/AppSecret调用 usermgr API
    • Login使用 ESB 调用 usermgr API
    • 增加了通过 yaml 配置插件 SettingMeta 的能力
    • Add ENABLE_API_AUTH for api authentication in different versions

    Refactor

    ldap

    • Ldap test_connection fail with more error detail (#445)
    • Enable to debug ldap3 by environment vars (#453)

    sync

    • Custom profile sync add original code into extras (#420)

    Logging

    • 增强日志打印, 附加有用的上下文及堆栈
    • 降低一些无用日志的等级
    • Enhance the logging while api 500(both saas and api has the detail!)
    • Add bk_app_code from esb/apigateway in error log/audit log
    • Add request_id for saas call api (#444)
    • Add more log detail in login process (#452)
    • Plugin init_settings add more detail in log info (#422)
    • Token auth fail with different exception message (#408)
    • Logger remove sensitive info from data (#415)
    • BlueException missing message detail while logging or print
    • Remove redundant logging while handle the exceptions

    codes

    • Remove useless codes of esb (#409)
    • Remove oauth2 codes from login
    • Remove uselss static files like: bkDialog-1.0 and layout_head.css from login
    • Remove unused codes

    others

    • Add otel support (#476)
    • Add sentry support
    • Add /healthz/ for saas

    Styling

    • Use python3 super instead
    • Fix lints of isort (#396)
    • Use black to format all codes

    Dependency

    • Update redis/mariadb chart version (#486)
    • Saas gevent to 21.1.2 (#457)
    • ldap3 version too low, update to newest(2.6.1 to 2.9.1) (#438)
    • upgrade django from 3.2.5 to 3.2.13 (#443)
    Source code(tar.gz)
    Source code(zip)
Owner
腾讯蓝鲸
腾讯蓝鲸