Compare commits

...

1551 Commits

Author SHA1 Message Date
fit2bot
dd50a1faff feat: Update v3.0.1 2023-02-27 18:46:04 +08:00
fit2bot
86dab4fc6e perf: 今日活跃资产 (#9797)
Co-authored-by: feng <1304903146@qq.com>
2023-02-27 18:10:11 +08:00
Aaron3S
a85a80a945 fix: 默认增加普通用户作业中心权限 2023-02-27 17:28:04 +08:00
老广
349edc10aa Merge pull request #9791 from jumpserver/pr@v3.0@add_accounts_suggestions
perf: 添加账号用户名的推荐
2023-02-27 15:19:26 +08:00
ibuler
44918e3cb5 perf: 添加账号用户名的推荐
perf: 修改账号推荐
2023-02-27 07:14:55 +00:00
ibuler
9a2f6c0d70 perf: 修改资产 address 长度,以支持 mb4
perf: 修改长度
2023-02-27 14:08:15 +08:00
ibuler
934969a8f1 perf: 去掉没有 Name 的迁移 2023-02-27 14:02:09 +08:00
老广
57162c1628 Merge pull request #9776 from jumpserver/pr@v3.0@perf_account_migrate2
perf: 优化迁移 accounts
2023-02-27 10:22:59 +08:00
ibuler
32fb36867f perf: 优化迁移 accounts
perf: 优化账号迁移,同名的迁移到历史中
2023-02-26 01:49:25 +00:00
老广
158b589028 Merge pull request #9761 from jumpserver/pr@v3@fix_activity_save_error
fix: 解决Activity保存因为参数出错问题
2023-02-24 18:18:03 +08:00
jiangweidong
d64277353c Merge branch 'v3.0' of http://github.com/jumpserver/jumpserver into pr@v3@fix_activity_save_error 2023-02-24 18:10:47 +08:00
jiangweidong
bff6f397ce fix: 解决Activity保存因为参数出错问题 2023-02-24 18:10:42 +08:00
fit2bot
0ad461a804 perf: 修改host info 接口, 社区开放applet, 修改改密发邮件bug (#9760)
Co-authored-by: feng <1304903146@qq.com>
2023-02-24 18:08:40 +08:00
Bai
a1dcef0ba0 fix: 修复 web gui 支持的数据库 2023-02-24 15:12:08 +08:00
Bai
dbb1ee3a75 fix: 修复认证MFA失败次数清空问题 2023-02-24 14:43:51 +08:00
fit2bot
d6bd207a17 fix: 修复计算今日活跃资产过滤逻辑 (#9744)
Co-authored-by: Bai <baijiangjie@gmail.com>
2023-02-24 12:17:10 +08:00
Bai
e69ba27ff4 fix: 修复获取授权资产详情时返回 spec_info 字段, 解决连接 Magnus 问题 2023-02-24 11:41:47 +08:00
ibuler
adbe7c07c6 perf: 修复社区版可能引起的问题 2023-02-24 00:31:10 +08:00
老广
d1eacf53d4 Merge pull request #9736 from jumpserver/dev
fix: 修复 loong64 grpc 构建失败
2023-02-23 21:50:11 +08:00
老广
472c14fd27 Merge pull request #9734 from jumpserver/pr@dev@fix_build_grpc
fix: 修复 loong64 grpc 构建失败
2023-02-23 21:46:26 +08:00
吴小白
9d4854b8c3 fix: 修复 loong64 grpc 构建失败 2023-02-23 21:34:21 +08:00
Jiangjie.Bai
19276e6bd4 Merge pull request #9733 from jumpserver/dev
v3.0.0
2023-02-23 20:15:55 +08:00
Bai
05d40a5255 fix: 修复平台列表创建同名校验问题 2023-02-23 19:57:55 +08:00
Bai
9b852f8b35 fix: 修复角色列表排序问题 2023-02-23 19:40:01 +08:00
fit2bot
b3851adfe7 perf: translate (#9730)
Co-authored-by: feng <1304903146@qq.com>
2023-02-23 19:35:10 +08:00
Jiangjie.Bai
0a374db606 fix: 修复文件导出 {"": True"} 问题 (#9729) 2023-02-23 19:14:58 +08:00
老广
54239c9d44 Merge pull request #9725 from jumpserver/ssh_tunnel_no_auth_error
fix: 对于网关无法连接的,给出原因并停止此任务的后续步骤,不影响其他任务
2023-02-23 19:09:40 +08:00
fit2bot
37f7f1b510 fix: 修改查看 celery 日志的权限位 (#9728)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-23 19:06:08 +08:00
fit2bot
ab0a1421a0 perf: push_account_enabled (#9727)
Co-authored-by: feng <1304903146@qq.com>
2023-02-23 18:55:15 +08:00
jiangweidong
10dad85e9f Merge branch 'dev' of http://github.com/jumpserver/jumpserver into ssh_tunnel_no_auth_error 2023-02-23 18:17:38 +08:00
jiangweidong
e45eb96f12 fix: 对于网关无法连接的,给出原因并停止此任务的后续步骤,不影响其他任务 2023-02-23 18:15:31 +08:00
fit2bot
b797b46ab8 perf: translate (#9724)
Co-authored-by: feng <1304903146@qq.com>
2023-02-23 18:14:44 +08:00
fit2bot
9f8900041d per: gather account perm (#9723)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2023-02-23 18:08:56 +08:00
老广
aa81db57b1 Merge pull request #9722 from jumpserver/pr@dev@perf_asset_update
perf: 优化资产批量更新
2023-02-23 17:54:09 +08:00
ibuler
1a9cd2dee2 perf: 优化资产批量更新 2023-02-23 17:44:38 +08:00
fit2bot
b2f38c2218 perf: 增加定时任务清理僵尸作业 (#9714)
* perf: 增加定时任务清理僵尸作业

* perf: 优化代码结构

* fix: 修改翻译

* perf: 延长清理间隔时间

* perf: 添加优先级括号

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-23 17:01:24 +08:00
jiangweidong
e1a1e838bf perf: 修改认证设置类的国际化,字符串方式会直接翻译成国际化内容 2023-02-23 16:59:35 +08:00
老广
4a36e54030 Merge pull request #9710 from jumpserver/pr@dev@fix_task_activity_error
fix: 创建用户和验证账号任务的Activity日志保存失败
2023-02-23 16:31:44 +08:00
老广
67d760719a Merge pull request #9719 from jumpserver/pr@dev@fix_operatelog_i18n
fix: 操作日志的国际化应该根据查询对象的语言决定
2023-02-23 16:30:45 +08:00
jiangweidong
9c599fd1f4 fix: 更改label 2023-02-23 16:25:02 +08:00
jiangweidong
0a5766edd3 fix: 操作日志的国际化应该根据查询对象的语言决定 2023-02-23 16:20:43 +08:00
老广
bb62e19ea8 Merge pull request #9718 from jumpserver/pr@dev@perf_account_info
perf: 修改 account asset auto_info 返回
2023-02-23 16:16:39 +08:00
ibuler
d1b807bd8b perf: 修改 account asset auto_info 返回 2023-02-23 16:14:24 +08:00
fit2bot
3ee2bfce9a perf: 优化连接方式 (#9716)
Co-authored-by: ibuler <ibuler@qq.com>
2023-02-23 15:58:55 +08:00
吴小白
a20bd3acd4 perf: 更新 quick_start.sh 2023-02-23 15:54:08 +08:00
老广
68ea8ef1b7 Merge pull request #9713 from jumpserver/pr@dev@perf_agent_check
perf: 修改 agent 判断
2023-02-23 15:27:12 +08:00
ibuler
ee926cfa42 perf: 修改 agent 判断 2023-02-23 15:04:07 +08:00
Bai
d4435799ac fix: 授权规则账号列表返回asset.auto_info字段 2023-02-23 11:45:56 +08:00
fit2bot
aaeef83d38 perf: history account secret (#9711)
Co-authored-by: feng <1304903146@qq.com>
2023-02-23 11:27:03 +08:00
jiangweidong
c2b592f6fe fix: 创建用户和验证账号任务的Activity日志保存失败 2023-02-23 10:46:59 +08:00
Jiangjie.Bai
8757cc97ed Merge pull request #9703 from jumpserver/dev
v3.0.0-rc-latest
2023-02-22 22:22:47 +08:00
老广
4ec7a4a118 Merge pull request #9707 from jumpserver/pr@dev@fix_serializer
perf: 修复 role user serializer 问题
2023-02-22 22:21:13 +08:00
ibuler
c4982dd3b5 perf: 修复 role user serializer 问题 2023-02-22 22:20:11 +08:00
fit2bot
2279219404 perf: 工单备注 markdown (#9706)
Co-authored-by: feng <1304903146@qq.com>
2023-02-22 22:12:50 +08:00
老广
58341a9e85 Merge pull request #9689 from jumpserver/pr@dev@fix_operatelog_root_org
fix: 操作日志、Activity日志显示当前组织和SYSTEM组织下的内容
2023-02-22 22:09:26 +08:00
老广
ce8be265e7 Merge pull request #9705 from jumpserver/pr@dev@perf_perm_migrate
perf: 优化迁移
2023-02-22 21:58:41 +08:00
ibuler
b8b25d2da8 perf: 修改 翻译 2023-02-22 21:57:48 +08:00
jiangweidong
07c23c5341 perf: 解决冲突 2023-02-22 21:56:40 +08:00
ibuler
37524106bf perf: 优化迁移 2023-02-22 21:52:37 +08:00
jiangweidong
6b6f844795 fix: 修改org_id位置 2023-02-22 21:48:11 +08:00
Eric_Lee
6a5b2bd29e Merge pull request #9704 from jumpserver/pr@dev@fix_add_file_unspported_msg
fix: 增加无法读取的文件提示
2023-02-22 21:31:57 +08:00
Aaron3S
25bd5c71d1 fix: 增加无法读取的文件提示 2023-02-22 21:27:14 +08:00
Eric_Lee
3aa7d1841b Merge pull request #9702 from jumpserver/pr@dev@perf_ops_permed_assets_error_msg
perf: 优化报错代码
2023-02-22 21:18:40 +08:00
Aaron3S
9b2f422622 perf: 优化报错代码 2023-02-22 21:14:13 +08:00
Bai
49c7a12bb3 fix: 修复资产授权规则过滤 2023-02-22 21:07:49 +08:00
老广
ad0fc0d70a Merge pull request #9699 from jumpserver/pr@dev@perf_field
perf: 优化部分 field
2023-02-22 20:39:51 +08:00
老广
0b1f6e2606 Merge pull request #9693 from jumpserver/pr@dev@perf_accounts_version
perf: 优化账号历史
2023-02-22 20:38:52 +08:00
fit2bot
b83667bbd5 perf: celery task and add org single (#9698)
Co-authored-by: feng <1304903146@qq.com>
2023-02-22 20:31:20 +08:00
ibuler
ea31de0b2b perf: 优化部分 field 2023-02-22 20:30:43 +08:00
老广
8db3543e98 Merge pull request #9697 from jumpserver/pr@dev@fix_oracle_ping
fix: 解决Oracle验证账号任务失败问题
2023-02-22 20:19:11 +08:00
jiangweidong
bcbab0ff49 fix: 解决冲突 2023-02-22 20:17:33 +08:00
jiangweidong
9207ee73ea fix: 解决Oracle验证账号任务失败问题 2023-02-22 20:16:04 +08:00
Eric_Lee
17a96a5b48 Merge pull request #9696 from jumpserver/pr@dev@fix_add_perm_classes
fix: 添加 api permission_classes
2023-02-22 20:07:41 +08:00
Aaron3S
d14010d4fa fix: 添加 api permission_classes 2023-02-22 20:04:00 +08:00
fit2bot
ec4cdc801f perf: operate log amount (#9695)
Co-authored-by: feng <1304903146@qq.com>
2023-02-22 19:42:40 +08:00
fit2bot
ddcd09c6a6 fix: 修复最后执行时间不更新的问题 (#9694)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-22 18:53:35 +08:00
Eric_Lee
a4e920e410 Merge pull request #9688 from jumpserver/pr@dev@fix_job_center_account_not_in_perm
fix: 修复作业中心资产和用于没有过滤授权规则的问题
2023-02-22 18:51:04 +08:00
Aaron3S
34386bd6fb fix: 修改生成 inventory 错误代码,增加运行作业权限校验 2023-02-22 18:06:46 +08:00
ibuler
5d8d0a320b perf: 优化账号历史 2023-02-22 17:58:00 +08:00
fit2bot
042108a9c0 perf: k8s account @input (#9692)
Co-authored-by: feng <1304903146@qq.com>
2023-02-22 17:56:20 +08:00
Eric_Lee
5f376077c2 Merge pull request #9691 from jumpserver/pr@dev@perf_label
perf: 部分字段 label 显示问题
2023-02-22 16:50:53 +08:00
Eric
8eaf3fa781 perf: 部分字段 label 显示问题 2023-02-22 16:48:49 +08:00
fit2bot
7ceb27301b perf: automation task name validate (#9690)
Co-authored-by: feng <1304903146@qq.com>
2023-02-22 16:23:18 +08:00
jiangweidong
0dba222796 Merge branch 'dev' of http://github.com/jumpserver/jumpserver into pr@dev@fix_operatelog_root_org 2023-02-22 15:57:17 +08:00
jiangweidong
b9c0b9084e fix: 操作日志显示全部组织问题 2023-02-22 15:57:10 +08:00
Aaron3S
d9a11900a9 fix: 修复作业中心资产和用于没有过滤授权规则的问题 2023-02-22 15:36:25 +08:00
老广
ee3c548b6b Merge pull request #9687 from jumpserver/pr@dev@perf_change_account_verify
perf: 修改 探测
2023-02-22 15:21:15 +08:00
ibuler
e5081fd6a9 merge: with dev 2023-02-22 15:17:44 +08:00
fit2bot
89c4635162 perf: change secrett 提示 (#9686)
Co-authored-by: feng <1304903146@qq.com>
2023-02-22 15:15:00 +08:00
ibuler
33f6c5b257 perf: 修改 探测 2023-02-22 15:13:51 +08:00
Bai
156ad665c3 fix: rbac perms 2023-02-22 14:54:13 +08:00
Eric_Lee
1e1d88f203 Merge pull request #9683 from jumpserver/pr@dev@fix_deploy_applets
fix: 修复发布应用失败
2023-02-22 14:24:25 +08:00
Eric
312fe69015 fix: 修复发布应用失败 2023-02-22 14:10:13 +08:00
老广
4b8e2d464f Merge pull request #9682 from jumpserver/pr@dev@change_platform_migration
perf: 修复用户平台内置的问题
2023-02-22 13:17:14 +08:00
ibuler
6f765ebef5 perf: 修复用户平台内置的问题 2023-02-22 13:08:32 +08:00
Eric_Lee
bbd274b92f Merge pull request #9681 from jumpserver/pr@dev@fix_host_select
fix: 过滤离线的发布机
2023-02-22 12:29:31 +08:00
Eric
f407bfd7b2 fix: 过滤离线的发布机 2023-02-22 12:27:30 +08:00
老广
8a97245b1a Merge pull request #9671 from jumpserver/pr@dev@fix_db_with_domain_task
feat: 支持数据库在连接网域的情况下执行Task
2023-02-22 11:46:36 +08:00
jiangweidong
fd146055f3 fix: 删除空行 2023-02-22 11:46:28 +08:00
jiangweidong
cde59f7ae8 perf: 解决冲突 2023-02-22 11:44:46 +08:00
老广
5d61d843f3 Merge pull request #9680 from jumpserver/pr@dev@perf_account_chagne_secret
perf: 修改 acount
2023-02-22 11:29:18 +08:00
ibuler
0996b1fbf5 merge: with dev 2023-02-22 11:27:53 +08:00
ibuler
b5321e497b perf: 修改账号去掉无用的 2023-02-22 11:25:33 +08:00
ibuler
0140d4349a perf: 修改 优化去掉版本号 2023-02-22 11:23:43 +08:00
老广
f103fa22c9 Merge pull request #9673 from jumpserver/pr@dev@fix_manual_update_account_can_ping_ok
fix: 解决部分数据库在修改密码后仍能ping通的问题
2023-02-22 11:21:58 +08:00
ibuler
fae494d707 perf: 修改 acount 2023-02-22 11:20:57 +08:00
ibuler
4c233cfb69 perf: 优化 account,去掉版本好 2023-02-22 11:18:42 +08:00
fit2bot
b9dcce5c51 fix: 资产更新没有账号及自动化任务更新name (#9679)
Co-authored-by: feng <1304903146@qq.com>
2023-02-22 11:04:29 +08:00
fit2bot
d7946ccb6f perf: 账号 资产 列表任务 (#9676)
Co-authored-by: feng <1304903146@qq.com>
2023-02-21 22:57:31 +08:00
fit2bot
7f1cbc8336 fix: except 无法解压的文件包 (#9677)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-21 22:52:52 +08:00
fit2bot
1bb128526a fix: 修复使用key 方式 ansible 不能连接的问题 (#9675)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-21 22:45:02 +08:00
Eric_Lee
d2deaf10d1 Merge pull request #9674 from jumpserver/pr@dev@fix_applethost
fix: 未激活的发布机,将无法使用
2023-02-21 22:28:10 +08:00
Eric
8f5d280e31 fix: 未激活的发布机,将无法使用 2023-02-21 22:25:50 +08:00
jiangweidong
02619e5ed8 fix: 解决部分数据库在修改密码后仍能ping通的问题 2023-02-21 22:08:34 +08:00
Eric_Lee
5add329a30 Merge pull request #9672 from jumpserver/pr@dev@fix_su_from
fix: 账号 su from 过滤未生效
2023-02-21 21:12:20 +08:00
Eric
4200fa7ff8 fix: 账号 su from 过滤未生效 2023-02-21 21:09:28 +08:00
jiangweidong
9c851cbd68 perf: 解决冲突 2023-02-21 20:32:44 +08:00
jiangweidong
def5989cdc perf: 支持数据库网域执行Task 2023-02-21 20:27:44 +08:00
Eric_Lee
a11eac7c3a Merge pull request #9660 from jumpserver/pr@dev@perf_applethost
perf: 修改发布机选项默认值
2023-02-21 20:14:08 +08:00
Eric_Lee
0d8e0bd1cc Merge pull request #9666 from jumpserver/pr@dev@fix_rdp_download
fix: rdp file download
2023-02-21 20:13:36 +08:00
Eric_Lee
85dbdd648f Merge pull request #9669 from jumpserver/pr@dev@fix_ftp_log
fix: 修复 ftp 审计日志上传失败
2023-02-21 20:13:08 +08:00
fit2bot
0bd674bb9c perf: ansible enabled false (#9670)
Co-authored-by: feng <1304903146@qq.com>
2023-02-21 20:06:45 +08:00
Eric
31a3e3b177 fix: 修复 ftp 审计日志上传失败 2023-02-21 19:35:35 +08:00
fit2bot
b41880d4f2 perf: 自动化name 唯一键 校验 (#9668)
Co-authored-by: feng <1304903146@qq.com>
2023-02-21 18:31:42 +08:00
fit2bot
266e7e0dd7 perf: change secret is_active (#9667)
Co-authored-by: feng <1304903146@qq.com>
2023-02-21 17:54:59 +08:00
Eric
3f9f3f3290 fix: rdp file download 2023-02-21 17:39:33 +08:00
老广
b5d814e9be Merge pull request #9665 from jumpserver/pr@dev@fix_platform_internal
perf: 修改 platform 内置创建
2023-02-21 15:50:58 +08:00
ibuler
771ea17469 perf: 修改 platform 内置创建 2023-02-21 15:49:59 +08:00
fit2bot
4735565cb8 perf: inventory 为空 任务跳过 (#9664)
Co-authored-by: feng <1304903146@qq.com>
2023-02-21 15:33:15 +08:00
fit2bot
e4d28f5f3e fix: 修复 playbook 编辑器无法清空内容的bug (#9663)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-21 15:22:08 +08:00
fit2bot
1caca32a26 perf: merge asset migrate (#9662)
Co-authored-by: feng <1304903146@qq.com>
2023-02-21 15:15:26 +08:00
Eric
64e929a220 perf: 修改发布机选项默认值 2023-02-21 14:20:03 +08:00
老广
b91b9ef39e Merge pull request #9649 from jumpserver/pr@dev@perf_account_tasks
perf: 优化 tasks
2023-02-21 14:14:37 +08:00
ibuler
3df411fd61 perf: 修改权限位 2023-02-21 13:47:47 +08:00
ibuler
82432299b8 merge: with dev 2023-02-21 13:47:08 +08:00
ibuler
df9e533b3c perf: 修改 rabc 2023-02-21 13:40:48 +08:00
ibuler
0001ffba1b perf: 优化 rbac 2023-02-21 13:39:28 +08:00
ibuler
f4cc03434f perf: 修改 rbac asset nodes 2023-02-21 13:11:56 +08:00
ibuler
e67a876513 perf: 优化账号任务 2023-02-21 13:00:04 +08:00
Eric_Lee
f46b707f70 Merge pull request #9659 from jumpserver/pr@dev@fix_deployment
fix: 修复应用发布状态
2023-02-21 12:21:05 +08:00
Eric
f5d086702a fix: 修复应用发布状态 2023-02-21 12:12:38 +08:00
jiangweidong
b5347be4e3 perf: Navicat为xpack功能 (#9650)
* perf: Navicat移动到xpack功能

* 优化

* fix: 去掉多余的import

* perf: 优化逻辑

* perf: 修改打印位置
2023-02-21 11:37:30 +08:00
fit2bot
c8e1660f7e perf: windows not ssh automation (#9658)
Co-authored-by: feng <1304903146@qq.com>
2023-02-21 11:36:17 +08:00
ibuler
b49b7125b2 perf: 修改收集用户中间 2023-02-21 08:34:31 +08:00
ibuler
c9534bb9c4 perf: 优化账号推送 2023-02-20 23:50:33 +08:00
老广
36712f51f8 Merge pull request #9657 from jumpserver/pr@dev@fix_dbeaver_no_cli_dos
Perf: 优化DBeaver连接数据库时,不显示cli-dos窗口
2023-02-20 22:24:20 +08:00
jiangweidong
296ce7a59f perf: 优化执行命令 2023-02-20 22:21:46 +08:00
jiangweidong
28e28b620b perf: 优化DBeaver连接数据库时,不显示cli-dos窗口 2023-02-20 22:10:59 +08:00
fit2bot
ca22b08cde perf: account update (#9656)
Co-authored-by: feng <1304903146@qq.com>
2023-02-20 20:22:26 +08:00
Bai
1888597451 fix: 修改slugfield校验问题 2023-02-20 20:15:47 +08:00
fit2bot
137d69a539 perf: ansible runner logs (#9655)
Co-authored-by: feng <1304903146@qq.com>
2023-02-20 20:14:06 +08:00
fit2bot
b76ed67c9c perf: 超时过期时间 解释 (#9653)
Co-authored-by: feng <1304903146@qq.com>
2023-02-20 19:21:32 +08:00
fit2bot
95eeeb4208 perf: 自动化脱敏 aix (#9652)
Co-authored-by: feng <1304903146@qq.com>
2023-02-20 19:12:57 +08:00
Bai
2adfbeaeb7 fix: 修复终端列表搜索问题 2023-02-20 18:42:56 +08:00
Aaron3S
958122847b fix: 作业日志搜索过滤问题 2023-02-20 18:00:58 +08:00
Eric
e001003ed3 perf: 完善发布机的重复部署 2023-02-20 18:00:30 +08:00
ibuler
37c54e976f perf: 优化 tasks 2023-02-20 18:00:29 +08:00
Bai
8ab01931fb fix: 修复logger.error堆栈问题 2023-02-20 17:59:18 +08:00
Bai
d246b9bb35 fix: 修复资产硬件信息收集失败的问题 2023-02-20 17:25:16 +08:00
fit2bot
995321cee9 perf: 工单详情跨组织 (#9644)
Co-authored-by: feng <1304903146@qq.com>
2023-02-20 16:48:52 +08:00
fit2bot
30e51e37be fix: 修复华为 SMS 提示不友好 (#9643)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-20 16:46:28 +08:00
老广
17a77586f7 Merge pull request #9641 from jumpserver/pr@dev@perf_ansible_gateway
fix: 修复 ansible 网关问题
2023-02-20 16:22:39 +08:00
ibuler
9644d8b1bc fix: 修复 ansible 网关问题 2023-02-20 16:20:03 +08:00
fit2bot
614aa069b0 fix: 添加 str 方法, 修复操作日志不友好的问题 (#9640)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-20 16:05:35 +08:00
fit2bot
d334b09fa6 fix: 修改playbook 创建的序列类 (#9639)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-20 15:50:43 +08:00
Bai
90813d7690 fix: 修改翻译 2023-02-20 15:24:43 +08:00
Bai
c456782d9e fix: 修复 ticket session 监控用户没有权限的问题 2023-02-20 15:09:10 +08:00
ibuler
ca6d71f442 perf: 优化 celery task context 2023-02-20 15:03:36 +08:00
老广
7c3b98cf3b Merge pull request #9634 from jumpserver/pr@dev@perf_audit_log2
pref: 优化 audit log
2023-02-20 14:24:16 +08:00
老广
a25d9ffdf5 Merge pull request #9632 from jumpserver/pr@dev@perf_navicat_support_mongodb_ssl
Feat: 支持navicat连接MongoDB SSL连接
2023-02-20 14:15:26 +08:00
老广
cffa3533e5 Merge pull request #9633 from jumpserver/pr@dev@fix_create_asset_ping_gather_task_err
Fix: 解决资产创建后系统执行Ping及Gather任务失败问题
2023-02-20 14:13:53 +08:00
ibuler
ce2c3d7ce2 pref: 优化 audit log 2023-02-20 14:13:22 +08:00
jiangweidong
c2773351af Fix: 解决资产创建后系统执行Ping及Gather任务失败问题 2023-02-20 14:06:26 +08:00
jiangweidong
2e451574ee Merge branch 'dev' of http://github.com/jumpserver/jumpserver into pr@dev@perf_navicat_support_mongodb_ssl 2023-02-20 14:03:19 +08:00
jiangweidong
6cedb90f1b Feat: 支持navicat连接MongoDB SSL连接 2023-02-20 14:03:07 +08:00
老广
5058d8158d Merge pull request #9631 from jumpserver/pr@dev@perf_ordering
perf: 优化排序
2023-02-20 13:41:30 +08:00
ibuler
bb0bb4e764 perf: domain serializer 2023-02-20 13:40:42 +08:00
ibuler
4818e759bc perf: 优化 一些继承 2023-02-20 13:36:50 +08:00
ibuler
492dd34cb8 perf: 优化排序 2023-02-20 13:31:56 +08:00
Bai
ec582e37dc fix: 修复录像返回数据 system_user -> account 2023-02-20 11:21:05 +08:00
Bai
0888fb2318 fix: 修复账号模版密码API查看权限问题 2023-02-20 10:57:52 +08:00
老广
2f1e60cf91 Merge pull request #9627 from jumpserver/pr@dev@fix_platform_activity_err
fix: 平台Activity列表500
2023-02-19 20:31:27 +08:00
jiangweidong
37f74d7d73 fix: 格式看起来好看 2023-02-19 20:27:25 +08:00
jiangweidong
7837a28200 Merge branch 'dev' of http://github.com/jumpserver/jumpserver into pr@dev@fix_platform_activity_err 2023-02-19 20:20:49 +08:00
jiangweidong
3e7eef2522 fix: 平台Activity列表500 2023-02-19 20:20:42 +08:00
老广
7ea9b4d429 Merge pull request #9625 from jumpserver/pr@dev@fix_clean_activity_with_operation
fix: 解决跨组织资源的Activty在其他组织下404的问题
2023-02-19 20:05:42 +08:00
老广
68e82a9d6e Merge pull request #9626 from jumpserver/pr@dev@fix_joblog_migrate_dependency
fix: 解决JobLog表依赖顺序不对,导致从新迁移失败问题
2023-02-19 20:05:08 +08:00
jiangweidong
485454f9c6 fix: 解决JobLog表依赖顺序不对,导致从新迁移失败问题 2023-02-19 19:49:06 +08:00
jiangweidong
3334f79e84 fix: 解决跨组织资源的Activty在其他组织下404的问题 2023-02-19 19:17:12 +08:00
老广
d795139108 Merge pull request #9624 from jumpserver/pr@dev@change_ldap_task_to_setting
perf: 修改 ldap task 位置
2023-02-19 18:01:47 +08:00
ibuler
da017f2e78 perf: 修改 ldap task 位置 2023-02-19 17:57:48 +08:00
老广
ba366e64e7 Merge pull request #9623 from jumpserver/pr@dev@account_push
perf: account push
2023-02-19 16:03:13 +08:00
feng
a4cb1690d6 perf: account push 2023-02-19 16:01:34 +08:00
老广
845fe291b1 Merge pull request #9622 from jumpserver/pr@dev@perf_nodes
perf: 优化 asset 创建时 nodes 可能有问题
2023-02-19 15:45:26 +08:00
ibuler
a1440ee4e0 perf: 优化 asset 创建时 nodes 可能有问题 2023-02-19 15:43:56 +08:00
老广
076a4333a1 Merge pull request #9621 from jumpserver/pr@dev@perf_json_encoer_error
perf: 优化 task 参数是 uuid 可能导致的问题
2023-02-19 15:25:55 +08:00
ibuler
83c844292c perf: 优化 task 参数是 uuid 可能导致的问题 2023-02-19 15:10:10 +08:00
fit2bot
bdb963750b perf: oauth2 perm (#9620)
Co-authored-by: feng <1304903146@qq.com>
2023-02-18 17:55:11 +08:00
fit2bot
fa8fdf71c1 perf: client upgrade (#9619)
Co-authored-by: feng <1304903146@qq.com>
2023-02-18 17:28:42 +08:00
fit2bot
9ed1b8fc86 perf: 修改 swagger 查询 (#9616)
* perf: 修改 swagger 查询

* perf: 修改 operate log

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
2023-02-17 21:11:06 +08:00
Bai
1035e27201 fix: 解决 swagger api 报错的问题 2023-02-17 21:10:16 +08:00
fit2bot
2b29ce69f4 perf: api dashboard (#9615)
Co-authored-by: feng <1304903146@qq.com>
2023-02-17 20:18:22 +08:00
fit2bot
60bdd17ca2 perf: login logs (#9614)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2023-02-17 20:15:52 +08:00
Aaron3S
a79a766a6a fix: 修改 job 审计日志 2023-02-17 20:14:11 +08:00
Eric
40b49e258e perf: 去掉 tunnel 和 command 会话的监控 2023-02-17 20:13:51 +08:00
老广
2877ea0e3b Merge pull request #9611 from jumpserver/pr@dev@perf_ping
perf: 优化 Ping 和 telnet
2023-02-17 19:42:50 +08:00
ibuler
10e50c7c2c perf: 修改 Ping 2023-02-17 19:42:14 +08:00
ibuler
dd8bc5798b perf: 优化 Ping 和 telnet 2023-02-17 19:38:34 +08:00
Bai
fb32c976b2 fix: 翻译所有 celerytask verbose 2023-02-17 19:25:19 +08:00
fit2bot
5f2f38d815 perf: mysql psql database (#9609)
Co-authored-by: feng <1304903146@qq.com>
2023-02-17 19:00:44 +08:00
ibuler
3cc22f8524 perf: settings 删掉 windows default shell 2023-02-17 17:19:46 +08:00
ibuler
98355ce468 perf: 优化一波 migrations 2023-02-17 17:19:18 +08:00
jiangweidong
23238ca8e0 fix: 解决一些资源的Activity日志无法查看问题 (#9608)
Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
2023-02-17 17:17:25 +08:00
fit2bot
9a62a7aaab pref: 修改 activity log (#9571)
* pref: 修改 activity log

* perf: 优化 acitivity

* pref: 修改 activity

* fix: 修复一些运行问题

* fix: app.py 中添加 tasks import

* fix: 添加 activity_callback

* fix: 添加 execute_account_backup_plan activity_callback

* fix: 添加 activity_callback -> gather_asset_accounts

* fix: 对 celery 任务添加 activity_callback 回调

* fix: 修改翻译

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
2023-02-17 17:14:53 +08:00
老广
01c2e7128d Merge pull request #9604 from jumpserver/pr@dev@fix_applets_no_icon
fix: 远程应用图标无法显示问题
2023-02-17 15:15:03 +08:00
jiangweidong
2cecf20944 fix: 远程应用图标无法显示问题 2023-02-17 15:04:30 +08:00
fit2bot
419381bd10 perf: account backup (#9603)
Co-authored-by: feng <1304903146@qq.com>
2023-02-17 14:34:51 +08:00
老广
40bd197581 Merge pull request #9601 from jumpserver/pr@dev@feat_protect_resource
feat: 增加media权限控制
2023-02-17 14:17:08 +08:00
Bai
1bfb434651 fix: 修复创建网关时, 没有保存到 Host 列表中的问题; 2023-02-17 13:58:08 +08:00
jiangweidong
fa5097fe28 Merge branch 'dev' of http://github.com/jumpserver/jumpserver into pr@dev@feat_protect_resource 2023-02-17 13:42:51 +08:00
jiangweidong
7ff08b35fe feat: 添加依赖 2023-02-17 13:42:44 +08:00
jiangweidong
12afc2aff5 feat: 增加media权限控制 2023-02-17 13:40:26 +08:00
fit2bot
7040f46565 perf: account view secret mfa (#9600)
Co-authored-by: feng <1304903146@qq.com>
2023-02-17 12:30:11 +08:00
Bai
d85b024c47 fix: 修复打开 PERM_SINGLE_ASSET_TO_UNGROUP_NODE 配置时返回两个收藏夹节点的问题 2023-02-17 11:11:57 +08:00
老广
355af42812 Merge pull request #9598 from jumpserver/pr@dev@perf_take_out_dbeaver_clickhouse
perf: 去掉dbeaver的clickhouse协议
2023-02-17 10:58:54 +08:00
jiangweidong
151433004c perf: 去掉dbeaver的clickhouse协议 2023-02-17 10:53:25 +08:00
fit2bot
e056b31b4c perf: 优化 index api 批量命令部分 (#9596)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-16 20:16:04 +08:00
fit2bot
f7500b8aff perf: account perm (#9595)
Co-authored-by: feng <1304903146@qq.com>
2023-02-16 19:39:10 +08:00
fit2bot
fc2d7aafce perf: push account (#9594)
Co-authored-by: feng <1304903146@qq.com>
2023-02-16 18:49:42 +08:00
老广
1298cc0a91 Merge pull request #9593 from jumpserver/pr@dev@perf_log_clean
perf: 修改日志清理
2023-02-16 18:47:26 +08:00
ibuler
0c30e509dc perf: 修改日志清理 2023-02-16 18:32:04 +08:00
jiangweidong
3b3355f3f8 perf: 修改PostgreSQL数据库参数为必填 2023-02-16 17:33:03 +08:00
老广
9af8c629ca Merge pull request #9591 from jumpserver/pr@dev@fix_audit_log_search_field
fix: 修复作业日志页面搜索和时间过滤组件不生效的问题
2023-02-16 17:23:18 +08:00
ibuler
9e6b01283d Merge branch 'dev' of github.com:jumpserver/jumpserver into dev 2023-02-16 17:21:49 +08:00
老广
1678eeb915 Merge pull request #9587 from jumpserver/pr@dev@perf_gateway
perf: 优化 gateway 返回情况
2023-02-16 17:21:36 +08:00
老广
4242727f24 Merge pull request #9589 from jumpserver/pr@dev@perf_conn_method_koko_oracle
perf: koko 不支持 oracle 登录
2023-02-16 17:20:44 +08:00
ibuler
7d813de71d Merge branch 'dev' of github.com:jumpserver/jumpserver into dev 2023-02-16 17:20:09 +08:00
Aaron3S
aa7c3041f7 fix: 修复作业日志页面搜索和时间过滤组件不生效的问题 2023-02-16 17:10:46 +08:00
ibuler
eff2cd104f perf: koko 不支持 oracle 登录 2023-02-16 16:55:20 +08:00
Bai
22dd81de43 fix: 创建删除节点、资产时,节点资产数量没有刷新的问题,监听的信号不太对,如果是 post_remove 那么获取资产的关联节点是获取不到的 2023-02-16 16:54:24 +08:00
jiangweidong
6bc72c519d fix: sqlserver无法推送用户问题 (#9588) 2023-02-16 16:53:46 +08:00
ibuler
a63709002d perf: 优化 gateway 返回情况 2023-02-16 16:51:42 +08:00
Bai
726f90ab16 fix: 修复创建 es 命令存储后台 meta.hosts 被修改的问题;deepcopy dict list value 在创建操作日志的时候 2023-02-16 15:56:44 +08:00
Bai
bfa2e285f5 fix: 修复迁移数据库应用账号缺少的问题 2023-02-16 15:56:44 +08:00
fit2bot
b8c872c68e perf: account cannot be modified (#9585)
Co-authored-by: feng <1304903146@qq.com>
2023-02-16 15:53:45 +08:00
fit2bot
ef33bc211d fix: 修复任务再次执行报500问题 (#9584)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-16 15:52:21 +08:00
fit2bot
e84411588a fix: 解决playbook 上传500的问题 (#9580)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-16 15:36:54 +08:00
Eric_Lee
eae4f76e1f Merge pull request #9578 from jumpserver/pr@dev@applets_dbeaver
perf: 优化applets-dbeaver依赖驱动方式
2023-02-16 15:24:37 +08:00
老广
e1437ac6e6 Merge pull request #9581 from jumpserver/pr@dev@perf_change_account
perf: 修改 account signal version
2023-02-16 14:28:25 +08:00
fit2bot
ea7d3c0651 perf: dashboard user amount (#9582)
Co-authored-by: feng <1304903146@qq.com>
2023-02-16 14:27:54 +08:00
ibuler
f046ea3560 perf: 修改 account signal version 2023-02-16 14:21:24 +08:00
Bai
7d94e17e03 fix: 修改迁移文件 2023-02-16 14:21:24 +08:00
jiangweidong
541e418946 perf: 优化applets-dbeaver依赖驱动方式 2023-02-16 13:40:34 +08:00
老广
9cd0a348fc Merge pull request #9575 from jumpserver/pr@dev@perf_session_account_id
perf: 会话新增 account_id
2023-02-16 10:13:30 +08:00
老广
e7ec0915a8 Merge pull request #9573 from jumpserver/pr@dev@perf_navicat
fix: 解决applets在razor方式拉起代填错误问题
2023-02-15 20:45:29 +08:00
老广
b464261ed3 Merge pull request #9554 from jumpserver/pr@dev@perf_activities_log
perf: 优化Activity日志[操作日志、登录日志]显示
2023-02-15 20:44:40 +08:00
jiangweidong
28babc116b Merge branch 'dev' of http://github.com/jumpserver/jumpserver into pr@dev@perf_navicat 2023-02-15 20:34:53 +08:00
huailei
679cd6a4e1 Merge pull request #9572 from jumpserver/pr@dev@perf_login_page_style
perf: 调整登录页样式
2023-02-15 20:31:30 +08:00
“huailei000”
61579bb290 perf: 调整登录页样式 2023-02-15 20:30:12 +08:00
jiangweidong
897c5ca24f Merge branch 'dev' of http://github.com/jumpserver/jumpserver into pr@dev@perf_navicat 2023-02-15 20:27:18 +08:00
jiangweidong
0f75fab094 fix: 解决applets在razor方式拉起代填错误问题 2023-02-15 20:27:12 +08:00
fit2bot
e66168dfa4 perf: account secret 加密 (#9570)
Co-authored-by: feng <1304903146@qq.com>
2023-02-15 20:16:01 +08:00
Bai
cf2089d826 fix: 修复迁移数据库应用账号缺少的问题 2023-02-15 20:09:14 +08:00
Eric
b882b7de1a perf: 会话新增 account_id 2023-02-15 19:53:04 +08:00
老广
8be25e1944 Merge pull request #9568 from jumpserver/pr@dev@fix_koko_ssh
fix: 修复 koko ssh 方式的连接开关
2023-02-15 18:24:59 +08:00
Eric
f4888304bc fix: 修复 koko ssh 方式的连接开关 2023-02-15 18:16:56 +08:00
fit2bot
7b95d19de6 perf: verify code ttl translate (#9567)
Co-authored-by: feng <1304903146@qq.com>
2023-02-15 18:16:24 +08:00
fit2bot
9339cd271a perf: native method 优化 (#9566)
* perf: native method 优化

* perf: update docker action test

---------

Co-authored-by: Eric <xplzv@126.com>
2023-02-15 17:55:29 +08:00
fit2bot
1ec20a8f98 fix: 修复系统设置中关闭magnus 和razor 不生效 (#9563)
* fix: 修复系统设置中关闭magnus 和razor 不生效

* perf: 优化代码

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-15 17:46:17 +08:00
老广
3d7428e828 Merge pull request #9565 from jumpserver/pr@dev@fix_ssh_native
fix: ssh native 不显示问题
2023-02-15 16:59:09 +08:00
Eric
75b27b7834 fix: ssh native 不显示问题 2023-02-15 16:53:30 +08:00
fit2bot
4ac214e91d perf: account task timing not triggered (#9564)
Co-authored-by: feng <1304903146@qq.com>
2023-02-15 16:48:27 +08:00
Bai
4109f2cb1c fix: 修改翻译 2023-02-15 16:30:46 +08:00
Eric_Lee
f10480179c Merge pull request #9561 from jumpserver/pr@dev@fix_dbeaver
fix: 完善 DBeaver 安装
2023-02-15 16:07:32 +08:00
Eric
8f16c2a14f fix: 完善 DBeaver 安装 2023-02-15 16:05:52 +08:00
fit2bot
18496aba59 perf: sqlserver change_secret (#9560)
Co-authored-by: feng <1304903146@qq.com>
2023-02-15 15:13:45 +08:00
Bai
0828a0e9ba fix: 修复资产详情授权用户授权规则列表的搜索项 2023-02-15 14:55:02 +08:00
Bai
9a39aca0f1 fix: Session 过滤支持 Terminal Name 和 ID 字段 2023-02-15 14:32:46 +08:00
Aaron3S
757702b99d fix: 整理任务中心权限位 2023-02-15 14:04:03 +08:00
老广
186878366f Merge pull request #9556 from jumpserver/pr@dev@fix_change_adhoc_model_verbose_name
fix: 修改 adhoc 的 verbose_name
2023-02-15 12:44:29 +08:00
jiangweidong
d784123c04 feat: 远程应用Applets支持DBeaver (#9537)
* perf: 远程应用Applets支持DBeaver

* feat: 更改下载路径

* perf: navicat修改不在这个pr中修改

* perf: add patch.yml

---------

Co-authored-by: Eric <xplzv@126.com>
2023-02-15 12:12:17 +08:00
Bai
e25306608b fix: 修复克隆网关没有克隆账号的问题 2023-02-15 11:18:44 +08:00
Aaron3S
d8ef556adf fix: 修改 adhoc 的 verbose_name 2023-02-15 11:17:57 +08:00
jiangweidong
7235910a86 perf: 优化Activity日志[操作日志、登录日志]显示 2023-02-15 10:46:37 +08:00
jiangweidong
f3b529170d Merge pull request #9553 from jumpserver/pr@dev@perf_audit_activity
perf: 优化产生的 activity 没有 org
2023-02-14 23:05:28 +08:00
ibuler
e466b6e38e perf: 优化产生的 activity 没有 org 2023-02-14 22:56:36 +08:00
老广
27e74f6d77 Merge pull request #9552 from jumpserver/pr@dev@perf_audit_log_to_perfect
perf: 优化activity log
2023-02-14 20:11:43 +08:00
ibuler
9a200920ca perf: 修改 asset info 2023-02-14 20:11:04 +08:00
ibuler
fd38f5d89d perf: 优化activity log 2023-02-14 20:01:29 +08:00
jiangweidong
ced454ca49 perf: 优化远程应用navicat连接时,确定有密码输入框后才输入密码 2023-02-14 19:50:20 +08:00
Aaron3S
1b4c52bc9f fix: 增加作业中心开关 2023-02-14 19:49:47 +08:00
Bai
09b672917a fix: 修复角色更新信号方法 2023-02-14 19:48:39 +08:00
fit2bot
f20c803356 perf: ansible_enabled false (#9548)
Co-authored-by: feng <1304903146@qq.com>
2023-02-14 18:34:46 +08:00
jiangweidong
7d93c9ebc5 fix: 用户接口不分页时,api异常 2023-02-14 18:15:25 +08:00
Bai
ac4a321225 fix: 修复角色列表用户数量字段为0的问题 2023-02-14 18:14:46 +08:00
Aaron3S
44d3f88225 fix: 屏蔽不需要的权限位 2023-02-14 18:14:19 +08:00
Bai
1f4fdc13aa fix: 修复一些 connection-token rbac 权限控制 2023-02-14 17:52:44 +08:00
Bai
174106ff1e fix: 排除一些关于 PermedAsset 相关的权限位 2023-02-14 17:15:32 +08:00
fit2bot
306193ca5f perf: input_secret (#9542)
Co-authored-by: feng <1304903146@qq.com>
2023-02-14 16:53:10 +08:00
Aaron3S
bd7e9ce4b9 perf: 优化代码结构 2023-02-14 16:44:42 +08:00
Aaron3S
f7bb408ab2 feat: 增加命令过滤功能 2023-02-14 16:44:42 +08:00
fit2bot
26e890a99f perf: ldap org (#9541)
Co-authored-by: feng <1304903146@qq.com>
2023-02-14 16:41:49 +08:00
Bai
2c13439b8a fix: 添加迁移文件 2023-02-14 16:38:28 +08:00
老广
f147724447 Merge pull request #9513 from jumpserver/dependabot/pip/requirements/ipython-8.10.0
build(deps): bump ipython from 8.4.0 to 8.10.0 in /requirements
2023-02-14 16:05:38 +08:00
老广
f10f7c3e08 Merge pull request #9528 from jumpserver/pr@dev@perf_audit_log_and_platform
perf: 优化 audit log
2023-02-14 16:03:03 +08:00
ibuler
786d96ee6e perf: 修改登录 2023-02-14 16:01:35 +08:00
ibuler
8b0a967306 perf: 优化 audit log 2023-02-14 15:53:08 +08:00
Bai
5c98fbbefd fix: 修复添加资产到节点,移除资产从节点,移动资产到节点 API rbac 权限位 2023-02-14 15:35:56 +08:00
Bai
770e7733e7 fix: 修复添加资产到节点,移除资产从节点,移动资产到节点 API rbac 权限位 2023-02-14 15:35:56 +08:00
Bai
71f3fe64b4 fix: 修复获取资产授权的账号 API,过滤未激活的账号 2023-02-14 14:37:21 +08:00
Bai
eef067c9ca fix: 修复授权查看组织角色权限问题 2023-02-14 14:18:16 +08:00
ibuler
b3244d0215 perf: 优化 redis 平台协议 2023-02-14 13:44:14 +08:00
Bai
18286b674c fix: 修复云同步执行报错的问题(protocols,Asset=>Host) 2023-02-14 11:39:23 +08:00
fit2bot
10d776f7e5 perf: account name required (#9533)
Co-authored-by: feng <1304903146@qq.com>
2023-02-14 11:37:18 +08:00
Bai
80903d1218 fix: 修复账号密钥查看rbac权限位 2023-02-14 11:30:54 +08:00
老广
1631f0fe3c Merge pull request #9531 from jumpserver/pr@fix@create_asset_err
fix: 创建Web资产报错
2023-02-14 10:02:38 +08:00
jiangweidong
85796acfe4 fix: 创建Web资产报错 2023-02-14 09:52:23 +08:00
老广
33a80cb8ef Merge pull request #9527 from jumpserver/pr@dev@fix_localhost_script_inject_error
fix: 过滤 localhost 注入问题
2023-02-13 20:09:28 +08:00
老广
99e5ac9aa6 Merge pull request #9530 from jumpserver/pr@dev@perf_delay_run
perf: 优化 delay run
2023-02-13 20:06:01 +08:00
ibuler
223b73c5c6 perf: 优化 delay run 2023-02-13 20:04:17 +08:00
fit2bot
269cf6628a perf: gateway auto (#9529)
Co-authored-by: feng <1304903146@qq.com>
2023-02-13 19:52:49 +08:00
老广
48fe6b975b Merge pull request #9526 from jumpserver/pr@dev@perf_merge_delay
perf: 改造 merge_delay_func
2023-02-13 19:45:36 +08:00
ibuler
bd9b1f1a5b perf: 优化 audit log 2023-02-13 19:42:42 +08:00
Aaron3S
011535a02a fix: 过滤 localhost 注入问题 2023-02-13 19:22:52 +08:00
Eric
9cd780eb06 perf: 改造 merge_delay_func 2023-02-13 19:14:00 +08:00
老广
854e0f5fe0 Merge pull request #9516 from jumpserver/pr@dev@perf_mail_test_msg
perf: 修复测试 smtp 的subject prefix 丢失问题
2023-02-13 18:25:27 +08:00
老广
0666b1e747 Merge pull request #9519 from jumpserver/pr@dev@perf_test_node_conn
perf: 优化测试节点可连接性
2023-02-13 18:24:23 +08:00
fit2bot
66b248db77 perf: 去除 applet 脚本的退出弹窗 (#9525)
Co-authored-by: Eric <xplzv@126.com>
2023-02-13 17:11:43 +08:00
Eric
fcad5c637a perf: chrome https网站忽略证书 2023-02-13 15:45:31 +08:00
fit2bot
eaad297c9c fix: 修复 playbook 编辑器 main 文件无法修改的问题 (#9521)
* fix: 修复 playbook 编辑器 main 文件无法修改的问题

* perf: 优化代码

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-13 15:39:29 +08:00
fit2bot
439d3ddf47 perf: 翻译 (#9520)
Co-authored-by: feng <1304903146@qq.com>
2023-02-13 15:29:48 +08:00
fit2bot
16922c4918 fix: 增加作业中心唯一校验 (#9518)
* fix: 增加作业中心唯一校验

* fix: 增加迁移文件

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-13 15:05:31 +08:00
ibuler
cd866532da perf: 优化测试节点可连接性 2023-02-13 15:04:45 +08:00
fit2bot
7f21e6cb6e perf: terminal command ordering (#9517)
Co-authored-by: feng <1304903146@qq.com>
2023-02-13 14:44:17 +08:00
ibuler
29c5fd1191 perf: 修复测试 smtp 的subject prefix 丢失问题 2023-02-13 14:36:17 +08:00
Eric_Lee
e88cb71d3c Merge pull request #9514 from jumpserver/pr@dev@fix_event_loop
fix: 修复默认 event loop 冲突问题
2023-02-11 23:25:12 +08:00
Eric
9c5e4955f2 fix: 修复默认 event loop 冲突问题 2023-02-11 23:00:41 +08:00
dependabot[bot]
51ac01cb19 build(deps): bump ipython from 8.4.0 to 8.10.0 in /requirements
Bumps [ipython](https://github.com/ipython/ipython) from 8.4.0 to 8.10.0.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](https://github.com/ipython/ipython/compare/8.4.0...8.10.0)

---
updated-dependencies:
- dependency-name: ipython
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-11 01:49:52 +00:00
老广
d7d7d1174e Merge pull request #9509 from jumpserver/pr@dev@perf_loop_tasks
fix: 优化并发延迟执行
2023-02-10 19:45:25 +08:00
老广
a50b74a989 Merge pull request #9510 from jumpserver/pr@dev@fix_period_task_error
feat:  修复 JOB 定时任务不执行的问题
2023-02-10 19:45:04 +08:00
老广
0c2873ae86 Merge pull request #9512 from jumpserver/pr@dev@perf_asset_task
perf: 优化 applet account 释放
2023-02-10 19:44:27 +08:00
ibuler
df3b76f357 perf: 优化 applet account 释放 2023-02-10 19:40:35 +08:00
fit2bot
64f21a518a perf: asset gather fact (#9511)
Co-authored-by: feng <1304903146@qq.com>
2023-02-10 18:50:11 +08:00
Aaron3S
4daadbfa0a feat: 修复 JOB 定时任务不执行的问题 2023-02-10 18:38:04 +08:00
jiangweidong
564a87304c perf: 优化关闭弹窗方式及数据库连接名称优化 (#9508) 2023-02-10 18:20:47 +08:00
Eric
78f6f6cf7d fix: 优化并发延迟执行 2023-02-10 18:01:31 +08:00
老广
aa483a3c6d Merge pull request #9507 from jumpserver/pr@dev@perf_asset_task
perf: 优化 task
2023-02-10 17:43:39 +08:00
ibuler
dd15286d27 perf: 优化 task 2023-02-10 17:36:15 +08:00
Aaron3S
889542079c fix: 修复仪表盘失败连接数不更新的问题 2023-02-10 16:03:37 +08:00
Bai
5153817ff4 fix: 修复同名用户登录时username设置问题 2023-02-10 16:01:50 +08:00
fit2bot
ab132e02d0 perf: k8s tree (#9503)
Co-authored-by: feng <1304903146@qq.com>
2023-02-10 15:56:34 +08:00
老广
eebd6c30de Merge pull request #9494 from jumpserver/pr@dev@perf_api_bulk_add
perf: 优化并发处理
2023-02-10 15:55:12 +08:00
ibuler
136bec94ca perf: merge with dev 2023-02-10 15:38:40 +08:00
ibuler
f192567072 perf: remove debug 2023-02-10 15:21:48 +08:00
ibuler
98a2d39a04 perf: merge with remote 2023-02-10 15:08:33 +08:00
老广
b85b6a38e2 Merge pull request #9449 from jumpserver/pr@dev@perf_activity
perf: 增加Activity日志中此资源的任务执行及详情查看
2023-02-10 15:07:25 +08:00
jiangweidong
e647205c24 perf: 优化applet-navicat连接方式 (#9498)
* perf: 优化applet-navicat连接方式

* perf: 关闭许可证通知,不阻塞登录
2023-02-10 15:03:21 +08:00
ibuler
6a0fbc6ac2 perf: 修改 signals 2023-02-10 14:44:59 +08:00
fit2bot
e36506c3b8 perf: ansible log (#9499)
Co-authored-by: feng <1304903146@qq.com>
2023-02-10 14:37:55 +08:00
Eric
8b7bccc4ad perf: 使用 asyncio 延迟并发执行 2023-02-10 14:21:24 +08:00
fit2bot
0c11a602a8 perf: push account automation (#9497)
Co-authored-by: feng <1304903146@qq.com>
2023-02-10 14:07:20 +08:00
Bai
fcf20335e8 fix: 修复更新角色权限、更新角色、用户绑定时,用户权限没有即使更新的问题 2023-02-10 12:00:01 +08:00
Bai
4c96d6935a fix: 修复没有 push_now 权限的用户可以在创建资产、创建账号中开启推送 2023-02-10 11:14:05 +08:00
jiangweidong
c5b8ae6c9a perf: 修改变量名 2023-02-10 11:13:44 +08:00
jiangweidong
7926f7d75e fix: 修改OAuth2协议的注销地址为非必填项目 2023-02-10 11:13:44 +08:00
ibuler
37a52c420f perf: 优化并发处理 2023-02-09 20:48:25 +08:00
fit2bot
3c891ec313 fix: 修复因事务提交问题造成的任务无法执行和任务历史无法查看 (#9493)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-09 20:11:12 +08:00
fit2bot
1b1ae1145c fix: 重命名文件前校验是否存在冲突 (#9488)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-09 20:05:26 +08:00
Eric
e36a64ae2c perf: update resource 2023-02-09 20:00:20 +08:00
Eric
d0e56a17d6 fix: 修复审计日志保存失败的问题 2023-02-09 20:00:20 +08:00
Bai
48067415ef fix: 修复第三方用户登录复核时,可以跳过的问题 2023-02-09 19:47:11 +08:00
fit2bot
b81416d973 perf: playbook 批量删除 (#9490)
Co-authored-by: feng <1304903146@qq.com>
2023-02-09 19:02:45 +08:00
Aaron3S
a87ff2d880 feat: 为所有api添加搜索 2023-02-09 17:49:49 +08:00
Aaron3S
5d13f1e357 fix: 修复 Job 命令不显示的问题 2023-02-09 17:46:30 +08:00
fit2bot
5401b1cdf2 perf: audit dashboard (#9486)
Co-authored-by: feng <1304903146@qq.com>
2023-02-09 17:17:35 +08:00
fit2bot
015ac4fbb6 fix: 禁用omnidb 连接 sqlserver (#9480)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-09 17:03:58 +08:00
jiangweidong
b3e609dc9b fix: 解决不同用户使用远程应用Navicat登录Oracle失败的问题 2023-02-09 16:36:49 +08:00
Aaron3S
403faf9663 fix: 修复上传方式创建 playbook 内容为空的问题 2023-02-09 16:32:17 +08:00
Aaron3S
921d8f6a28 fix: 保护必要文件不被删除 2023-02-09 16:32:17 +08:00
Aaron3S
238dc2e559 fix: 禁用omnidb 连接 sqlserver 2023-02-09 16:32:17 +08:00
fit2bot
c7c5805b18 fix: update platform script (#9479)
* fix: update platform script

* perf: check protocol setting

---------

Co-authored-by: Eric <xplzv@126.com>
2023-02-09 14:11:54 +08:00
Bai
4f6a17290a fix: 修复创建资产时账号禁用不生效的问题 2023-02-09 12:30:28 +08:00
fit2bot
c088739a5d perf: celery task search (#9477)
Co-authored-by: feng <1304903146@qq.com>
2023-02-09 11:49:16 +08:00
Bai
df428feaeb fix: 修改 command review 返回为 response 对象 2023-02-09 11:10:20 +08:00
jiangweidong
33d5cdedea perf: 优化 2023-02-09 11:02:09 +08:00
fit2bot
d6d45f64fa perf: inventiry account (#9474)
Co-authored-by: feng <1304903146@qq.com>
2023-02-08 20:42:06 +08:00
fit2bot
7b9523d6be perf: ansible accounts is_active (#9473)
Co-authored-by: feng <1304903146@qq.com>
2023-02-08 20:39:24 +08:00
fit2bot
e3d1474b9b perf: k8s tree error msg (#9472)
Co-authored-by: feng <1304903146@qq.com>
2023-02-08 20:14:33 +08:00
fit2bot
ab76d8cce0 fix: 修复创建资产资源 dashboard 不变化的问题 (#9471)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-08 19:32:09 +08:00
fit2bot
f3405b0937 fix: 修复新增用户控制台本周新增数量不变化的问题 (#9470)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-02-08 18:27:49 +08:00
fit2bot
ddff968be1 perf: postgresql ansible (#9469)
Co-authored-by: feng <1304903146@qq.com>
2023-02-08 18:13:05 +08:00
Bai
03ad4124eb fix: 修复手动登录资产时,LoginACL QuerySet 会获取所有组织下规则的问题(@INPUT账号没有org_id) 2023-02-08 16:46:03 +08:00
fit2bot
5c1acae4c5 perf: push account ssh (#9467)
Co-authored-by: feng <1304903146@qq.com>
2023-02-08 15:36:45 +08:00
Bai
37f119260e fix: 修复 connection token 相关的返回字段 2023-02-08 15:32:02 +08:00
fit2bot
2c952c2877 fix: account create bug (#9465)
Co-authored-by: feng <1304903146@qq.com>
2023-02-08 14:30:05 +08:00
Bai
2a964bfa6c fix: (smart endpoint 切换到全局组织下匹配) 2023-02-08 14:29:17 +08:00
Bai
953adf6cfb fix: (smart endpoint 获取500的问题) (修复监控会话打开失败的问题) 2023-02-08 14:29:17 +08:00
老广
e590518108 Merge pull request #9463 from jumpserver/pr@dev@perf_ticket
perf: 修改 platform serializer
2023-02-08 13:56:12 +08:00
ibuler
eabb41b74c perf: 修改 platform serializer 2023-02-08 13:53:21 +08:00
fit2bot
d308efc63b fix: 更新账号后 立即推送 (#9462)
Co-authored-by: feng <1304903146@qq.com>
2023-02-08 13:36:32 +08:00
jiangweidong
e3c0425a7d perf: 优化 2023-02-08 11:46:10 +08:00
jiangweidong
fa54df6d99 perf: 还原任务参数 2023-02-08 11:43:35 +08:00
jiangweidong
fb285adcce 优化 2023-02-08 11:32:05 +08:00
fit2bot
32afa214fd perf: k8s token 不过期 (#9460)
Co-authored-by: feng <1304903146@qq.com>
2023-02-08 11:28:44 +08:00
ibuler
8c65429157 fix: 修复 perms 循环引用 2023-02-08 10:52:33 +08:00
ibuler
17fce76ac4 perf: 修改 signal handler 2023-02-08 10:14:09 +08:00
fit2bot
63a4620b19 perf: account push no password (#9457)
Co-authored-by: feng <1304903146@qq.com>
2023-02-07 20:18:54 +08:00
fit2bot
38921cc5f0 perf: gather account (#9456)
Co-authored-by: feng <1304903146@qq.com>
2023-02-07 19:45:12 +08:00
dependabot[bot]
22953c0306 build(deps): bump django from 3.2.16 to 3.2.17 in /requirements
Bumps [django](https://github.com/django/django) from 3.2.16 to 3.2.17.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.2.16...3.2.17)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-07 17:53:43 +08:00
老广
57c84f1329 Merge pull request #9455 from jumpserver/pr@dev@perf_delay_run
fix: role detail
2023-02-07 17:52:54 +08:00
ibuler
fe725106ac fix: role detail 2023-02-07 17:51:22 +08:00
ibuler
c87c432c1a perf: 延迟执行一个函数 2023-02-07 17:13:50 +08:00
老广
75b10d9d8f Merge pull request #9452 from jumpserver/pr@dev@perf_job_delete
perf: 优化 job 删除策略
2023-02-07 16:25:51 +08:00
老广
bb8ca41149 Merge pull request #9454 from jumpserver/pr@dev@perf_api_sql
perf: 优化 api sql 查询
2023-02-07 16:24:45 +08:00
ibuler
e7202ac984 perf: 优化 api sql 查询 2023-02-07 16:21:26 +08:00
Bai
b41d30dbac fix: 修复导入更新资产时包含labels报错的问题(取消id唯一键校验) 2023-02-07 16:00:36 +08:00
Aaron3S
9ee2b1b1f5 perf: 优化 job 删除策略 2023-02-07 14:05:59 +08:00
fit2bot
90d5f62327 perf: gathered-accounts api (#9451)
Co-authored-by: feng <1304903146@qq.com>
2023-02-07 13:27:44 +08:00
Aaron3S
245bf073e9 增加历史任务再次执行功能 2023-02-07 11:43:12 +08:00
jiangweidong
a1300e2886 perf: 增加登录日志详情 2023-02-07 09:49:17 +08:00
jiangweidong
cb362b2fe4 perf: 生成迁移文件 2023-02-07 08:58:14 +08:00
jiangweidong
49c78f65a6 perf: 处理冲突 2023-02-07 08:55:57 +08:00
jiangweidong
90fdaca955 perf: 优化Activity日志 2023-02-07 08:52:48 +08:00
fit2bot
1dd915cefd perf: win shell (#9448)
Co-authored-by: feng <1304903146@qq.com>
2023-02-06 19:45:08 +08:00
Bai
0deb093e7a fix: 修改工单close权限 2023-02-06 19:30:19 +08:00
fit2bot
c7ce535630 perf: account seri type category (#9445)
Co-authored-by: feng <1304903146@qq.com>
2023-02-06 18:30:17 +08:00
老广
47f23a1b9c Merge pull request #9443 from jumpserver/pr@dev@fix_execute_shell_chdir_invalid
fix: 解决执行命令作业指定当前路径的问题
2023-02-06 17:59:53 +08:00
fit2bot
7dae491691 perf: account asset category (#9444)
Co-authored-by: feng <1304903146@qq.com>
2023-02-06 17:02:27 +08:00
Aaron3S
462dc2543b fix: 解决执行命令作业指定当前路径的问题 2023-02-06 16:19:43 +08:00
fit2bot
8afe28773d perf: clone plateform charset (#9442)
Co-authored-by: feng <1304903146@qq.com>
2023-02-06 15:05:38 +08:00
fit2bot
654cbe7bd0 perf: 创建网关 没有关联网域 (#9441)
Co-authored-by: feng <1304903146@qq.com>
2023-02-06 14:54:30 +08:00
Bai
f52a2ea47f fix: 修改日文翻译文件 2023-02-06 14:29:09 +08:00
fit2bot
500124f485 perf: asset automation filter (#9440)
Co-authored-by: feng <1304903146@qq.com>
2023-02-06 13:37:03 +08:00
Aaron3S
dbd3cb35ec fix: 修复无法更新命令的bug 2023-02-06 11:40:56 +08:00
Aaron3S
a3baac6763 fix: 修复无法更新命令的bug 2023-02-06 11:27:40 +08:00
fit2bot
9a1109e13d perf: 资产创建添加账号 没有携带密码 (#9436)
Co-authored-by: feng <1304903146@qq.com>
2023-02-06 11:00:36 +08:00
Bai
4af80bfcdf fix: 修改中文翻译文件 2023-02-06 10:30:40 +08:00
ibuler
1e075c3687 perf: 修改支持 connect methods 2023-02-06 10:30:16 +08:00
Eric
47c5f18c6e fix: applet deploy pip install 2023-02-03 23:47:41 +08:00
Bai
4960c4b260 fix: 修复登录资产ACL会获取所有组织下数据的问题 2023-02-03 20:03:31 +08:00
ibuler
91357b3715 perf: 优化 gateway 设置 2023-02-03 19:46:42 +08:00
老广
4462e745a5 Merge pull request #9428 from jumpserver/pr@dev@perf_ops_job
perf: 修改 ops job 约束
2023-02-03 18:41:39 +08:00
fit2bot
20d2efc407 perf: 主机硬件信息 (#9429)
Co-authored-by: feng <1304903146@qq.com>
2023-02-03 18:23:38 +08:00
ibuler
4220c72cd3 perf: 修改 ops job 约束 2023-02-03 16:44:05 +08:00
老广
431725b315 Merge pull request #9424 from jumpserver/pr@dev@perf_chrome
perf: use Chromium browser
2023-02-03 16:14:15 +08:00
ibuler
470d2703f4 perf: 协议端口校验 2023-02-03 16:13:29 +08:00
ibuler
7c429163ce perf: 协议端口校验 2023-02-03 16:03:34 +08:00
Bai
ef3a1e399d fix: 修复登录资产ACL会获取所有组织下数据的问题 2023-02-03 15:21:46 +08:00
Bai
ce8ad5f9cc perf: 优化资产授权规则过滤支持 accounts 2023-02-03 15:02:58 +08:00
Eric
afb2b53035 fix: chromedriver path 2023-02-03 14:48:41 +08:00
Eric
159652ccfe fix: chrome path 2023-02-03 14:41:57 +08:00
Eric
c22662a757 perf: use Chromium browser
feat: add code dialog
2023-02-03 14:35:23 +08:00
Bai
d2ae6642eb fix: 修复更新账号时secret不正确导致更新失败的问题 2023-02-03 14:31:07 +08:00
ibuler
55de785947 perf: 优化最后更新 2023-02-03 12:25:09 +08:00
ibuler
88638187a5 perf: 修改 role 克隆 2023-02-03 11:29:23 +08:00
jiangweidong
cb4410391c fix: 修复mongodb ssl账号测试失败,oracle推送用户失败问题 (#9421) 2023-02-03 11:27:04 +08:00
fit2bot
003feb1aed perf: command log risk choice (#9419)
Co-authored-by: feng <1304903146@qq.com>
2023-02-02 22:58:18 +08:00
fit2bot
93932f1904 perf: 优化批量更新 (#9418)
* perf: 优化批量更新

* perf: 优化代码,减少 80%,依然可用

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-02-02 20:10:48 +08:00
老广
422bf92104 Merge pull request #9416 from jumpserver/pr@dev@fix_user_filter_role_error
fix: 修复用户过滤角色的错误
2023-02-02 18:17:15 +08:00
ibuler
b4068be89c perf: 修改换行 2023-02-02 18:16:40 +08:00
ibuler
3520f8222c merge: with dev 2023-02-02 18:13:32 +08:00
ibuler
77486f0773 fix: 修复用户过滤角色的错误 2023-02-02 18:09:31 +08:00
Bai
d0bd35d88c fix: 修复测试ldap attr map报错问题 2023-02-02 17:06:17 +08:00
Aaron3S
1083f5f6f2 feat: 添加 task 的 verbose_name 2023-02-02 16:49:34 +08:00
Bai
4c9d16b4c1 fix: 修改角色列表viewset排序问题 2023-02-02 16:49:04 +08:00
Bai
c3d01591e7 fix: 修改角色列表viewset排序问题 2023-02-02 16:49:04 +08:00
Bai
2d514c0db0 fix: 修改角色列表排序问题 2023-02-02 16:49:04 +08:00
Bai
a045eb9936 fix: 修改角色列表排序问题 2023-02-02 16:49:04 +08:00
fit2bot
be151523f4 perf: user filter (#9413)
Co-authored-by: feng <1304903146@qq.com>
2023-02-02 16:40:00 +08:00
fit2bot
64e48712a5 perf: gateway migrate (#9412)
Co-authored-by: feng <1304903146@qq.com>
2023-02-02 16:16:38 +08:00
Aaron3S
e3e727f972 perf: 默认展开编辑器所有目录 2023-02-02 16:07:19 +08:00
Eric
3341d55d1b perf: APPLET_DOWNLOAD_HOST 优化 2023-02-02 15:37:14 +08:00
Eric
1c55bde8c8 perf: 发布机部署新增 CORE_HOST 配置 2023-02-02 15:37:14 +08:00
Bai
88edc9191c fix: 修改 ACL 排序 priority, date_updated, name 2023-02-02 15:34:22 +08:00
fit2bot
6429b56a54 fix: 资产克隆账号bug (#9407)
Co-authored-by: feng <1304903146@qq.com>
2023-02-02 15:01:56 +08:00
fit2bot
d78725f7c5 perf: choice validate (#9404)
Co-authored-by: feng <1304903146@qq.com>
2023-02-02 14:52:44 +08:00
Bai
5fcd83b587 fix: 修复获取 swagger api 时,AssetSerializer category, type 字段手动设置 _choices 属性时报错的问题 2023-02-02 14:40:23 +08:00
feng
0aa681620f perf: asset tree search 2023-02-02 13:56:18 +08:00
Aaron3S
d68ed57eb9 优化 playbook ide 2023-02-02 13:55:55 +08:00
jiangweidong
7a5195e91e fix: 解决部署后,Oracle无法执行自动化任务问题 (#9400) 2023-02-02 10:33:07 +08:00
jiangweidong
3080771559 fix: 解决没获取到证书的mongodb导致的无法执行自动化任务 (#9399) 2023-02-02 10:32:48 +08:00
老广
f68dde456d Merge pull request #9397 from jumpserver/pr@dev@perf_code_i18n
perf: 修改 i18n
2023-02-02 10:23:17 +08:00
fit2bot
758d6ae81b perf: gateway print (#9398)
Co-authored-by: feng <1304903146@qq.com>
2023-02-01 19:02:41 +08:00
ibuler
853f9c422d perf: 修改 i18n 2023-02-01 18:45:51 +08:00
Aaron3S
9d898f0aec playbook ide 2023-02-01 18:22:52 +08:00
fit2bot
7b95859015 perf: device ansible (#9396)
Co-authored-by: feng <1304903146@qq.com>
2023-02-01 18:20:56 +08:00
Bai
fc34980f20 fix: 修复主机详情显示硬件信息 2023-02-01 17:05:28 +08:00
老广
b4afdf7f72 Merge pull request #9389 from jumpserver/pr@dev@perf_audits_migrations
perf: 优化audits的migrations
2023-02-01 16:57:51 +08:00
老广
9dd7675bc9 Merge pull request #9393 from jumpserver/pr@dev@perf_user_create
perf: 重构 notifications site msg
2023-02-01 16:50:38 +08:00
ibuler
1169677286 perf: 重构 notifications site msg 2023-02-01 16:43:43 +08:00
Bai
4e2c2b652f fix: 修复创建数据库时包含账号失败的问题 2023-02-01 15:50:21 +08:00
jiangweidong
4762939dae perf: 优化audits的migrations 2023-02-01 15:13:07 +08:00
jiangweidong
e324c46f87 fix: PrivateToken创建报错 (#9387)
Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
2023-02-01 15:06:10 +08:00
Bai
acab0b765c fix: 修复创建 2023-02-01 15:04:06 +08:00
fit2bot
66c58a2084 perf: 账号 模版创建 (#9386)
Co-authored-by: feng <1304903146@qq.com>
2023-02-01 14:43:58 +08:00
老广
d1f46768a3 Merge pull request #9385 from jumpserver/pr@dev@perf_user_create
perf: 优化用户创建
2023-02-01 12:56:46 +08:00
ibuler
023ca29752 perf: 优化用户创建 2023-02-01 12:39:38 +08:00
老广
30492b368c Merge pull request #9384 from jumpserver/pr@dev@perf_applet_deps
perf: update applet download and deployment
2023-02-01 12:38:39 +08:00
ibuler
4956e1147e perf: 优化用户创建 角色设置 2023-02-01 11:26:57 +08:00
Eric
142edd9438 perf: update applet download and deployment 2023-02-01 10:27:12 +08:00
老广
fa6d819f10 Merge pull request #9380 from jumpserver/pr@dev@perf_asset_info
perf: 优化 asset info
2023-01-31 19:37:51 +08:00
ibuler
34b740583e perf: 修改 asset info 2023-01-31 19:37:16 +08:00
ibuler
ae1b134f70 perf: 修改 spec for cert 2023-01-31 19:30:38 +08:00
ibuler
e9454c42cc perf: 修改 spec 2023-01-31 19:22:20 +08:00
ibuler
6bbb1f7e86 perf: 修改 connectivity 2023-01-31 19:02:24 +08:00
ibuler
03c0d2edbd perf: 修改 connectivity 2023-01-31 18:51:04 +08:00
Jiangjie.Bai
aac805f5e4 Merge pull request #9383 from jumpserver/dev
v3.0.0-rc4
2023-01-31 18:34:24 +08:00
jiangweidong
be670872e5 perf: 修改逻辑,将证书文件转换放到manager中 2023-01-31 18:32:14 +08:00
jiangweidong
6cda829f67 perf: 优化创建证书文件逻辑 2023-01-31 18:32:14 +08:00
jiangweidong
633e12bf86 feat: 其他mongodb自动化操作支持ssl 2023-01-31 18:32:14 +08:00
jiangweidong
211a0abe9e feat: 测试可连接性mongodb支持ssl 2023-01-31 18:32:14 +08:00
Bai
ae79584faa perf: 修改账号列表 secret 字段名称 密钥/密码 2023-01-31 18:11:00 +08:00
ibuler
ef51e74b8e perf: 继续替换 spec 2023-01-31 18:06:44 +08:00
ibuler
41154d3793 asset: specific to spec_info 2023-01-31 17:57:06 +08:00
ibuler
9ec7a8ac61 perf: 优化 asset info 2023-01-31 17:46:56 +08:00
fit2bot
2ea8e30ca5 fix: 账号备份无法执行 (#9379)
Co-authored-by: feng <1304903146@qq.com>
2023-01-31 16:17:45 +08:00
Bai
a7b744db10 perf: 修改账号列表 secret 字段名称 密钥/密码 2023-01-31 16:07:10 +08:00
Bai
6b4dbe6554 fix: 修复账号列表导出500的问题 2023-01-31 15:45:31 +08:00
Bai
229e89af03 fix: 修复终端列表根据负载状态进行过滤 2023-01-31 15:04:20 +08:00
老广
43353c257e Merge pull request #9374 from jumpserver/pr@dev@perf_remove_cert_from_db_spec
perf: 资产的 specific 不返回加密信息
2023-01-31 13:42:42 +08:00
ibuler
9161b1ab1c perf: 资产的 specific 不返回加密信息 2023-01-31 13:41:09 +08:00
老广
bebfe10d73 Merge pull request #9373 from jumpserver/pr@dev@change_migrations
perf: 修改 database 的 cert model field
2023-01-31 13:05:19 +08:00
老广
685b99e04d Merge pull request #9366 from jumpserver/pr@dev@fix_no_db_name_mongodb_task_err
fix: mongodb无指定数据库时,一些自动化任务会失败
2023-01-31 13:04:34 +08:00
ibuler
9d59fb736b perf: 修改 database 的 cert model field 2023-01-31 13:03:45 +08:00
ibuler
b34af62ec1 perf: 修改 migrations 2023-01-31 11:12:09 +08:00
ibuler
d5cc2e77b2 perf: admin user 不能删除,xpack 引用着,不确定顺序 2023-01-31 11:12:09 +08:00
fit2bot
3702ba92ea perf: celery task delete (#9372)
Co-authored-by: feng <1304903146@qq.com>
2023-01-31 11:00:21 +08:00
ibuler
0c1048ed89 perf: 修改 migrations 2023-01-31 10:42:55 +08:00
ibuler
382201188c perf: admin user 不能删除,xpack 引用着,不确定顺序 2023-01-31 10:22:25 +08:00
jiangweidong
87ca9cb11d fix: 使用type 2023-01-30 20:26:07 +08:00
fit2bot
bf867f8c95 celery yask perm tree (#9370)
Co-authored-by: feng <1304903146@qq.com>
2023-01-30 19:11:42 +08:00
fit2bot
ec98f1bae5 perf: celery task del perm (#9369)
Co-authored-by: feng <1304903146@qq.com>
2023-01-30 19:07:46 +08:00
fit2bot
f18f2df4ab perf: account template secret (#9368)
Co-authored-by: feng <1304903146@qq.com>
2023-01-30 18:59:12 +08:00
老广
28d117bf3d Merge pull request #9360 from jumpserver/pr@master@feat_support_redis_ssl_connect_magnus
feat: 支持Magnus连接Redis SSL
2023-01-30 17:52:53 +08:00
老广
426176cc44 Merge pull request #9367 from jumpserver/pr@dev@change_ui_readme
perf: 修改 ui 的说明
2023-01-30 17:42:53 +08:00
ibuler
86a0ed8883 perf: 修改 ui 的说明 2023-01-30 17:36:42 +08:00
jiangweidong
a664d0b752 Merge branch 'dev' of http://github.com/jumpserver/jumpserver into pr@dev@fix_no_db_name_mongodb_task_err 2023-01-30 17:33:15 +08:00
jiangweidong
c34b7e69eb fix: mongodb无指定数据库时,一些自动化任务会失败 2023-01-30 17:33:10 +08:00
老广
d8f737c999 Merge pull request #9365 from jumpserver/pr@dev@perf_asset_migration
perf: 优化 k8s migrations
2023-01-30 17:15:40 +08:00
ibuler
351bcd3337 perf: 优化 k8s migrations 2023-01-30 17:04:11 +08:00
fit2bot
c7c56775d3 perf: push accounts log error (#9364)
Co-authored-by: feng <1304903146@qq.com>
2023-01-30 17:00:52 +08:00
老广
e5ca8c5b2c Merge pull request #9362 from jumpserver/pr@dev@perf_applet_upload
perf: 优化 applet 上传报错
2023-01-30 15:21:03 +08:00
ibuler
812f5490dc perf: 优化 applet 上传报错 2023-01-30 15:19:05 +08:00
jiangweidong
c098172ed4 Merge branch 'dev' of http://github.com/jumpserver/jumpserver into pr@master@feat_support_redis_ssl_connect_magnus 2023-01-30 15:09:19 +08:00
jiangweidong
b0baee95d3 feat: 支持Magnus连接Redis SSL 2023-01-30 15:09:13 +08:00
老广
789695f90b Merge pull request #9359 from jumpserver/pr@dev@perf_deploy_applethost
perf: 优化发布机初始化部署
2023-01-30 14:47:08 +08:00
Bai
f6da14b80d fix: 修复网域导入500问题(不支持修改gateways) 2023-01-30 14:42:44 +08:00
Eric
135c15d127 perf: 优化发布机初始化部署 2023-01-30 14:42:42 +08:00
fit2bot
4cca518543 perf: user profile (#9357)
Co-authored-by: feng <1304903146@qq.com>
2023-01-30 13:43:27 +08:00
老广
3f4814a392 Merge pull request #9356 from jumpserver/pr@dev@perf_readme
perf: 优化 applet api
2023-01-30 13:23:09 +08:00
ibuler
94e1d94423 perf: 修改 readme 2023-01-30 13:22:03 +08:00
ibuler
f316b241aa perf: 优化 applet api 2023-01-30 13:01:06 +08:00
fit2bot
6ec4dc7dd5 perf: auditor joblog perm (#9355)
Co-authored-by: feng <1304903146@qq.com>
2023-01-29 18:20:44 +08:00
fit2bot
47cd79ea5a perf: databases protocol required (#9354)
Co-authored-by: feng <1304903146@qq.com>
2023-01-29 17:40:15 +08:00
老广
7ba7d178e5 Merge pull request #9353 from jumpserver/pr@dev@perf_readme
perf: 优化 readme 一些排版
2023-01-29 14:11:51 +08:00
ibuler
c5ca20d957 perf: 修改 readme 2023-01-29 14:07:07 +08:00
fit2bot
da915249ab perf: su_method allow_null (#9352)
Co-authored-by: feng <1304903146@qq.com>
2023-01-29 14:02:03 +08:00
fit2bot
26de26d7b0 perf: ansible enabled (#9351)
Co-authored-by: feng <1304903146@qq.com>
2023-01-29 13:31:11 +08:00
ibuler
cdd58c9238 perf: 优化 readme 一些排版 2023-01-29 13:16:06 +08:00
老广
fb66acbf0a Merge pull request #9350 from maninhill/patch-5
chore(docs): README 进一步简化和优化
2023-01-29 13:03:49 +08:00
maninhill
c8c5fcce9c chore(docs): README 进一步简化和优化 2023-01-29 12:59:20 +08:00
老广
97d16aab11 Merge pull request #9349 from jumpserver/pr@dev@pref_ansible_install
perf: change ansible version
2023-01-29 11:22:42 +08:00
ibuler
0f82aa8c3a perf: change ansible version 2023-01-29 11:21:03 +08:00
fit2bot
55d7f17470 perf: mariadb verify account enabled (#9348)
Co-authored-by: feng <1304903146@qq.com>
2023-01-29 11:09:42 +08:00
老广
f55a195f13 Merge pull request #9346 from jumpserver/pr@dev@pref_ansible_install
perf: 修改 ansible 安装方式
2023-01-29 10:53:43 +08:00
老广
4d92e1c0d7 Merge pull request #9341 from jumpserver/pr@dev@perf_remoteapp_view
perf: 优化远程应用界面
2023-01-29 10:53:10 +08:00
ibuler
72b1163471 perf: 修改 ansible 安装方式 2023-01-29 10:52:04 +08:00
fit2bot
4409809106 perf: asset connectivity ordering (#9343)
Co-authored-by: feng <1304903146@qq.com>
2023-01-23 18:20:17 +08:00
吴小白
37e471e950 Merge pull request #9340 from jumpserver/pr@dev@perf_ansible_core
chore: update ansible_core
2023-01-20 23:03:02 +08:00
jiangweidong
e006a1949e Merge branch 'dev' of http://github.com/jumpserver/jumpserver into pr@dev@perf_remoteapp_view 2023-01-20 17:52:59 +08:00
jiangweidong
b6eac5a6b7 perf: 优化远程应用界面 2023-01-20 17:52:51 +08:00
吴小白
0b9f6a9341 chore: update ansible_core 2023-01-20 14:02:30 +08:00
Eric
c27c55b429 fix: failed to install builtin applets 2023-01-19 13:48:41 +08:00
fit2bot
ce1cb4214c chore: docker build (#9338)
* chore: docker build
* chore: loong64 build

Co-authored-by: Eric <xplzv@126.com>
2023-01-19 13:08:54 +08:00
fit2bot
4bef48eb6a fix: push account duplicate (#9336)
Co-authored-by: feng <1304903146@qq.com>
2023-01-18 17:33:10 +08:00
fit2bot
c2a8acb73b perf: 修改网关自动化任务 (#9335)
Co-authored-by: feng <1304903146@qq.com>
2023-01-18 17:14:02 +08:00
fit2bot
571e9b1878 perf: gateway closed domain (#9334)
Co-authored-by: feng <1304903146@qq.com>
2023-01-18 15:27:09 +08:00
fit2bot
f8ac83d5c7 fix: change secret trigger 必填 (#9333)
Co-authored-by: feng <1304903146@qq.com>
2023-01-18 11:54:06 +08:00
jiangweidong
3c043a2233 fix: channels-redis版本回退导致redis哨兵ws连接有问题 2023-01-18 10:48:25 +08:00
老广
da2439d229 Merge pull request #9330 from jumpserver/pr@dev@update_ansible_version
perf: 修改 ansible 依赖,使用自维护分支
2023-01-17 19:27:11 +08:00
ibuler
e289037837 perf: 修改 ansible 依赖,使用自维护分支 2023-01-17 19:25:03 +08:00
fit2bot
f54edab172 perf: user perm (#9329)
Co-authored-by: feng <1304903146@qq.com>
2023-01-17 18:19:34 +08:00
jiangweidong
ab5b85d9b5 perf: 优化操作日志,activity日志都存入操作日志中 2023-01-17 13:43:51 +08:00
Bai
6dc4519c78 fix: 修复 资产节点树 获取报错的问题(全局组织) 2023-01-17 13:42:13 +08:00
Bai
f647f88536 fix: 修改迁移 connection-token system_user -> account 字段失败的问题 2023-01-17 12:15:07 +08:00
Bai
3c93ed6a75 fix: 修改迁移 connection-token system_user -> account 字段失败的问题 2023-01-17 12:15:07 +08:00
fit2bot
6a9f1978bb perf: ticket markdown (#9325)
Co-authored-by: feng <1304903146@qq.com>
2023-01-16 20:40:38 +08:00
fit2bot
56d533c802 v3.0.0-rc1 (#9322)
* perf:automation

* pref: 修改账号推送

* perf: 修改 assets

* perf: 修改 accounts

* feat: 优化代码

* fix: 修复 ObjectRelatedField 获取 value attr 时先判断是否有 attr 属性

* perf: 增加翻译

* feat: 增加部分翻译

* feat: 去除无用列

* perf: ticket remove app

* fix: 修复创建账号备份任务失败的问题

* perf: 添加 accounts app

* perf: ticket type serializer (#9252)

Co-authored-by: feng <1304903146@qq.com>

* perf: ticket

* perf: 修改 accounts api

* perf: 优化 AssetPermissionSerializer fields 顺序

* perf: 修改 accounts

* feat: 限制常用用户名api返回长度

* feat: 限制常用用户名api返回长度

* perf: 修改 LoginAssetACL 序列类,增加 users_username_group, accounts_username_group... 字段

* perf: 修改 CommandFilterACLSerializer 增加 command_groups_amount 字段

* perf: 修改rbac API啥的 (#9254)

* perf: migrate

* perf: 修改 AssetPermedSerializer domain 字段类型

* perf: 放开push account 权限位

* perf: 修改 accounts

* perf: 修改 LoginACLSerializer 字段类型

* pref: 修改数据库 migrations

* perf: filter asset systemuser

* perf: 修改 SessionSerializer 字段类型

* pref: 修改 applet host

* perf: 修改 SessionCommandSerializer 字段类型

* perf: 修改 accounts import

* perf: 修改 celery datetime

* perf: 修改 asset serializer

* pref: 修改 labeled field

* feat: 修改翻译

* perf: 修改 JobSerializer 字段类型

* feat: 支持使用 ws 发送终断任务

* perf: add AccessTokenAuthentication

* perf: 修改 BaseStorageSerializer 字段类型

* perf: 修改 AppletHostSerializer 字段类型

* perf: signal event

* perf: asset types automations (#9259)

Co-authored-by: feng <1304903146@qq.com>

* perf: 修改下载 rdp 文件时返回的 address 地址信息为空的问题

* perf: 修改 AssetSerializer.accounts.secret 为 write_only; 修改 DomainWithGatewaySerializer.gateways 返回 account 信息及 secret 字段;

* perf: automation 干库 (#9260)

Co-authored-by: feng <1304903146@qq.com>

* perf: account push api

* feat: 修改迁移文件

* feat: 删除无用代码

* feat: 优化部分资源无操作日志

* perf: 修改 account

* perf: perm tree

* perf: asset serializers retrieve

* perf: 格式化代码

* perf: AutomationExecution (#9268)

Co-authored-by: feng <1304903146@qq.com>

* perf: AssetDetailSerializer 和 Asset Model 添加 specific_info 字段;

* perf: 修改账号推送

* feat: handle ws heartbeat status

* perf: k8s tree (#9269)

Co-authored-by: feng <1304903146@qq.com>

* perf: 修改账号推送

* perf: 修改 asset detail serializer

* fix: 修复 windows 不能运行 powershell 命令的问题

* feat: 支持按照资源时间线查看操作活动

* feat: 翻译

* feat: 优化操作日志

* perf: asset clone

* fix: 错误的修改改回去

* perf: create asset account

* feat: 增加task 刷新续传功能

* fix: applet host deloypment filter host

* perf: 修改了 common 结构,和 push accounts

* perf: 整理 common 结构

* perf: 修改 const import

* perf: 修改 allow bulk destroy

* fix: applet host search fileds

* perf: applet bulk delete

* fix: applet list 404

* perf: 修改 common view

* feat: 增加一些翻译, 修复 playbook 上传的错误

* fix: 修改错别字

* perf: 修改 applets status

* perf: 修改网关 api

* perf: automateion (#9281)

Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>

* perf: 失效 connect methods 当 applet 删除 或者 host 删除

* perf: 网关账号的密码类型改成 LabelField

* perf: chrome applet script

* perf: verify code ttl (#9282)

Co-authored-by: feng <1304903146@qq.com>

* perf: database ping

* perf: ws

* perf: 修改网关创建

* perf: account task org (#9285)

Co-authored-by: feng <1304903146@qq.com>

* perf: asset test api

* perf: port 添加 account

* pref: 修改 db mapper permission

* fix: db port mapper list api

* perf: account change secret (#9286)

Co-authored-by: feng <1304903146@qq.com>

* perf: 修改 setup_eager_loading

* perf: SecretStrategy

* feat: 修改 ConnectionToken Create API 支持校验 ACL 逻辑

* feat: 修改 ConnectionToken Create API 支持校验 ACL 逻辑

* feat: 修改 ConnectionToken Create API 支持校验 ACL 逻辑

* pref: web database 信号转发

* perf: account push automation

* perf: push filter account

* perf: 修改 publish 版本

* perf: 修改网关

* fix: 修改资产 Specific 信息中 JSONField 字段返回 json.loads 对象

* feat: 远程应用内置Navicat Premium 16

* feat: 更新下载链接

* feat: 整理代码格式

* perf: 修改 terminal point

* perf: update chrome applet script

* fix: 资产 specific 获取 JSONField 时, 判断值的类型不为 list, dict

* perf: domain (#9292)

Co-authored-by: feng <1304903146@qq.com>

* perf: 优化 endpoint 监听端口,仅 oracle 动态

* perf: 修改翻译

* perf: 修改文案

* perf: 修改缺失的翻译

* perf: 修改 endpoint help text

* feat: 还原格式

* feat: 去掉基类

* feat: 增加特权账号字段

* perf: decode content

* fix: check pid

* perf: 修改 smart endpoint

* perf: 修改 endpoint mysql default port

* feat: 优化

* perf: 修改 endpoint mysql default port

* perf: gateway test (#9295)

Co-authored-by: feng <1304903146@qq.com>

* perf: migrate

* perf: 修改 endpoint mysql default port

* fix: 修复获取任务执行结果死循环

* feat: 作业审计日志增加字段

* fix: add on_transaction_commit task post save

* perf: gateway (#9297)

Co-authored-by: feng <1304903146@qq.com>

* feat: 过滤 jumpserver 自动产生的用户

* fix: 修复ops节点选择的问题

* fix: 修改 统一 connection-token 和 command 的 review API 返回数据 from_ticket_info

* perf: change secret (#9298)

Co-authored-by: feng <1304903146@qq.com>

* perf: 修改 db port manager

* perf: 修改 db port manager

* perf: add celery log mark

* perf: remove debug log data

* fix: navicat use manual type

* fix: remove navicate download url

* perf: push_account_enabled (#9301)

Co-authored-by: feng <1304903146@qq.com>

* fix: 修改navicat启动程序MD5值

* perf: push account (#9303)

Co-authored-by: feng <1304903146@qq.com>

* feat: Redis/MongoDB 支持SSL

* fix: 修改授权规则过滤字段 node_name,node_id; 修复获取授权节点下的资产为空的问题;

* perf: push account button (#9305)

Co-authored-by: feng <1304903146@qq.com>

* perf: account push

* fix: 修复获取 /user//assets/tree/ 返回用户授权的所有资产

* perf: asset ping (#9307)

Co-authored-by: feng <1304903146@qq.com>

* perf: asset enabled_info

* perf: 优化activity记录都保存至operatelog中

* feat: 远程应用navicat支持试用版连接

* perf: 优化迁移文件

* perf: 修改资产列表 API category type 字段 choices 根据 category 进行返回

* fix

* perf: 修改账号列表 API 解决根据 node_id asset_id 搜索账号列表无效的问题

* fix: navicat dba账号登录

* perf: 优化navicat连接

* perf: 修改账号列表 Model Manager 继承自 OrgManager,解决组织过滤问题

* perf: 修改账号列表 Filter 支持根据 platform,category,type 字段搜索

* perf: change secret email (#9312)

Co-authored-by: feng <1304903146@qq.com>

* feat: 保证认证信息一定清理

* perf: add mariadb

* perf: 修改资产类型树数量统计资产或账号

* perf: applet chrome quit

* perf: 优化关闭欢迎页面

* fix

* perf: executed amount

* perf: 修改 built-in applet installation

* perf: 修改资产列表增加标签搜索

* perf: 修改资产列表增加标签搜索

* perf: account task automation (#9319)

Co-authored-by: feng <1304903146@qq.com>

* perf: account trigger

* perf: 修改系统设置文案:批量命令执行 -> 作业中心

* perf: 优化migrate (#9320)

Co-authored-by: feng <1304903146@qq.com>

* perf: 修改资产节点树 API,支持搜索资产、节点

* perf: audit dashboard (#9321)

Co-authored-by: feng <1304903146@qq.com>

* fix: 修改 has_perm 权限判断兼容 list 和 str 类型

* perf: 修改一些换行

* perf: 修改 ansible config

* fix: oracle依赖文件地址错误 (#9324)

* perf: ansible mudules

* perf: 修改 runner host cwd

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
Co-authored-by: Eric <xplzv@126.com>
Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
Co-authored-by: jiangweidong <80373698+Hi-JWD@users.noreply.github.com>
2023-01-16 19:02:09 +08:00
吴小白
3f264ae999 Merge pull request #9315 from jumpserver/revert-9173-dependabot/pip/requirements/certifi-2022.12.7
Revert "chore(deps): bump certifi from 2018.1.18 to 2022.12.7 in /requirements"
2023-01-16 10:24:16 +08:00
老广
46a91f041a Revert "chore(deps): bump certifi from 2018.1.18 to 2022.12.7 in /requirements" 2023-01-16 07:51:12 +05:30
老广
ef04c92223 Merge pull request #9173 from jumpserver/dependabot/pip/requirements/certifi-2022.12.7
chore(deps): bump certifi from 2018.1.18 to 2022.12.7 in /requirements
2023-01-10 13:46:31 +08:00
老广
38f078205d Update README.md 2023-01-03 13:12:18 +08:00
老广
ce0632f49b Merge pull request #9250 from jumpserver/v3
v3 to dev
2022-12-28 13:26:25 +08:00
吴小白
b01c466d6d Merge pull request #9249 from jumpserver/pr@v3@chore_cryptography
chore(deps): bump cryptography from 36.0.2 to 38.0.4 in /requirements
2022-12-28 13:18:11 +08:00
吴小白
6f36242a7d chore(deps): bump cryptography from 36.0.2 to 38.0.4 in /requirements 2022-12-28 13:01:30 +08:00
feng
7094df3527 remove rbac redundant perms 2022-12-28 11:25:12 +08:00
Bai
dbad0851e3 perf: 修改翻译 内部的 -> 内置 2022-12-27 19:00:32 +08:00
ibuler
1b1c91bab0 t po v3
:wqMerge branch 'v3' of github.com:jumpserver/jumpserver into v3
2022-12-27 18:26:24 +08:00
Bai
52b5c8beee fix: 删除 AssetSerializer 中 enabled_info 字段 (已放到 AssetDetailSerializer 中). 2022-12-27 17:57:22 +08:00
feng
ccc766df8d perf: account source 2022-12-27 17:54:34 +08:00
fit2bot
c81f36cc27 perf: remove gather model (#9246)
Co-authored-by: feng <1304903146@qq.com>
2022-12-27 17:45:41 +08:00
Bai
0328fd1bb0 merge: v3 2022-12-27 17:13:29 +08:00
ibuler
da61b4e201 perf: 修改 asset api 2022-12-27 17:06:00 +08:00
Aaron3S
1cfe8d9cc8 feat: 支持超时时间设置 2022-12-27 16:59:32 +08:00
Aaron3S
ddca4dce41 feat: 支持pyhton脚本 2022-12-27 16:59:32 +08:00
ibuler
1b9aad594c perf: remove push account 2022-12-27 16:54:47 +08:00
ibuler
411d199e18 perf: 修改 asset serializer 2022-12-27 16:53:23 +08:00
Bai
825bea5ea5 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-27 16:21:38 +08:00
Bai
ba9123b1c4 perf: 修改资产序列类字段翻译 2022-12-27 16:21:32 +08:00
ibuler
3336f2ba67 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-27 15:28:32 +08:00
ibuler
3da9efc3fd perf: 修改账号推送 2022-12-27 15:27:33 +08:00
fit2bot
1e0bfbf8a8 perf: permission (#9244)
Co-authored-by: feng <1304903146@qq.com>
2022-12-27 14:48:00 +08:00
ibuler
795e952dc1 perf: change tree api 2022-12-27 13:20:18 +08:00
Bai
bb23c2a9fa perf: 修改翻译组织ID 2022-12-26 20:30:10 +08:00
Bai
a7be8bf365 perf: 修改翻译组织ID 2022-12-26 20:29:56 +08:00
Bai
ed35ac2930 perf: 修改 OPTION 获取字段 org_id label 为 Organization ID 2022-12-26 19:32:07 +08:00
Bai
7f6d13a5a6 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-26 19:16:18 +08:00
Bai
d0f70f4316 perf: 修改用户序列类 can_public_key_auth 类型; 修改 OPTION 获取字段 id label 为 ID 2022-12-26 19:16:11 +08:00
Aaron3S
9ba792cf1c feat: ops 支持节点和资产 2022-12-26 19:03:59 +08:00
ibuler
dd630f0e14 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-26 18:58:48 +08:00
ibuler
3145582f0b perf: 修改 accounts 2022-12-26 18:58:21 +08:00
Bai
d2ba7a98ea perf: 修改授权序列类字段翻译信息 2022-12-26 16:15:44 +08:00
Bai
c924f48d79 perf: gitignore add .fleet/ 2022-12-26 15:33:43 +08:00
ibuler
3172e954a8 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-26 15:02:27 +08:00
ibuler
6d4914fbd5 perf: 修改翻译 2022-12-26 15:01:51 +08:00
fit2bot
ed82249fd1 perf: asset perm (#9240)
Co-authored-by: feng <1304903146@qq.com>
2022-12-23 19:01:29 +08:00
Aaron3S
e32d51253a feat: 批量命令api 2022-12-23 18:23:20 +08:00
ibuler
213ae65b9a Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-23 16:15:56 +08:00
feng
8de2ffe5f4 perf: rbac asset 2022-12-23 16:10:04 +08:00
ibuler
4bd913b585 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-23 16:00:11 +08:00
ibuler
6bf4de8134 perf: 修改登录页面 2022-12-23 15:59:34 +08:00
fit2bot
7530afe368 perf: 翻译 (#9239)
Co-authored-by: feng <1304903146@qq.com>
2022-12-23 15:49:32 +08:00
吴小白
db22a68786 Merge pull request #9235 from jumpserver/pr@v3@perf_check_celery
perf: 更新 celery 健康检测
2022-12-23 15:00:17 +08:00
Bai
4f8e0fc28e fix: 修改授权树API,连续刷新3次转为强制刷新;修改异步授权树一级节点的资产显示问题; 2022-12-23 13:19:38 +08:00
ibuler
047ba34238 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-23 11:12:31 +08:00
ibuler
ffa30fdb69 perf: 修改 Logo 2022-12-23 11:11:56 +08:00
fit2bot
c5edb9981e perf: rbac tree (#9237)
Co-authored-by: feng <1304903146@qq.com>
2022-12-22 20:09:20 +08:00
Bai
3443b06a28 fix: 修复异步加载luna资产授权树时根节点下资产没有返回的问题 2022-12-22 19:17:52 +08:00
Bai
4aed287efc Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-22 18:57:04 +08:00
Bai
ab6518e60e fix: 开启授权规则signal信号监听;解决授权规则变动用户授权树没有即使刷新的问题 2022-12-22 18:56:54 +08:00
ibuler
370d3b350e Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-22 17:49:37 +08:00
ibuler
f5f8a01131 perf: 修改 celery tasks 列表 2022-12-22 17:49:07 +08:00
Bai
b851fd1069 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-22 17:44:28 +08:00
Bai
c645ca9aea fix: 修改点击我的授权树节点报错的问题 2022-12-22 17:43:03 +08:00
huailei
c46af02e1d Merge pull request #9236 from jumpserver/pr@v3@perf_login_html_layout
perf: 调整登录页面布局
2022-12-22 15:44:17 +08:00
“huailei000”
65387ebff4 perf: 调整登录页面布局 2022-12-22 15:42:45 +08:00
吴小白
fd323c20e1 perf: 更新 celery 健康检测 2022-12-22 14:27:13 +08:00
ibuler
6ff104c100 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-22 13:59:00 +08:00
ibuler
2e91aa8ce5 perf: 添加 celery 健康检测 2022-12-22 13:58:29 +08:00
fit2bot
1de51a2bfd perf: asset xpack (#9234)
Co-authored-by: feng <1304903146@qq.com>
2022-12-22 13:50:22 +08:00
ibuler
a377317d6e Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-22 12:53:26 +08:00
吴小白
c39e2e9a8a chore: 添加 procps 2022-12-22 12:47:46 +08:00
ibuler
e0e57a71aa pref: 类型树支持资产 2022-12-22 11:34:18 +08:00
Bai
00c955e8c0 perf: 修改方法名 check_db_port_mapper 2022-12-21 21:08:28 +08:00
Bai
5d865ffd54 fix: 修改db_port_mapper策略; 启动时进行check校验; 2022-12-21 21:08:28 +08:00
feng
f4b0ba43a2 perf: filter application 2022-12-21 20:19:13 +08:00
ibuler
7ca2fdca89 perf: 修改 platform 搜索 2022-12-21 20:04:49 +08:00
ibuler
0c2a5bc44a fix: 修复搜索资产平台 2022-12-21 19:59:56 +08:00
ibuler
df1950d063 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-21 18:37:37 +08:00
ibuler
b01ef1585c perf: account secret rbac permission 2022-12-21 18:37:05 +08:00
ibuler
17627390f8 perf: 修改 account 序列号字段 2022-12-21 18:36:15 +08:00
feng
e347e05210 perf: terminal type remove ssh 2022-12-21 18:26:06 +08:00
Bai
d4e215aeaa fix: 修复luna页面资产树加载不出来的问题 2022-12-21 18:00:50 +08:00
fit2bot
34cc3b233d refactor: 重构用户授权资产查询工具(重构中..) (#9225)
* refactor: 重构用户授权资产查询工具(重构中..)

* perf: 修改 get_perm_nodes_assets 名称

* refactor: 优化用户授权节点查询工具; 删除UnionQuerySet工具

Co-authored-by: Bai <baijiangjie@gmail.com>
2022-12-21 17:36:44 +08:00
feng
510ca9a5b8 perf: k8s tree 2022-12-21 17:32:55 +08:00
fit2bot
c304a58c05 perf: 修改k8s 树 (#9228)
Co-authored-by: feng <1304903146@qq.com>
2022-12-21 17:17:54 +08:00
Aaron3S
0e534f3251 feat: 优化api 2022-12-21 17:14:07 +08:00
Bai
5198ac1cc0 perf: 修改 UserAssetGrantedTreeNodeRelation id 为 AutoField 2022-12-21 15:16:54 +08:00
吴小白
3bef582500 chore: 添加 vim 2022-12-21 11:56:39 +08:00
吴小白
f65146cd45 chore: 添加 mysql-client 2022-12-21 11:23:33 +08:00
Aaron3S
560ff651c4 perf: 删除无用代码 2022-12-21 11:20:28 +08:00
Aaron3S
3ddeb97ea5 fix: 解决执行命令引号造成的问题 2022-12-21 11:20:28 +08:00
ibuler
327eb7a27d perf: 修改 migrations 2022-12-21 10:17:28 +08:00
ibuler
63d35ea8a6 perf: 修改资产 model 2022-12-20 20:39:48 +08:00
ibuler
10f4a0d67e Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-20 20:25:14 +08:00
ibuler
58909ee67d perf: 修改基础 model,继承同一个 2022-12-20 20:23:42 +08:00
Aaron3S
0c35205e31 feat: 增加作业版本历史 2022-12-20 19:46:48 +08:00
feng
21d6243b61 perf: api doc 2022-12-20 19:18:39 +08:00
fit2bot
6e467d9b67 perf: terminal connect method gui (#9224)
Co-authored-by: feng <1304903146@qq.com>
2022-12-20 18:50:04 +08:00
老广
bc45a8d207 Merge pull request #9223 from jumpserver/pr@v3@perf_sentinel_ssl_conf
perf: 优化Sentinels配置参数
2022-12-20 18:42:25 +08:00
jiangweidong
55cee43f91 perf: 优化Sentinels配置参数 2022-12-20 18:37:28 +08:00
ibuler
a7815dc9e5 perf: 修改 job log 2022-12-20 18:12:35 +08:00
ibuler
a21cb32245 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-20 17:52:40 +08:00
ibuler
0748c32c5a perf: 修改 session type 序列🥱 2022-12-20 17:52:08 +08:00
Aaron3S
e4b4f98362 feat: 作业审计添加字段 2022-12-20 17:28:27 +08:00
ibuler
88355f55bb Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-20 16:57:07 +08:00
ibuler
754f8131b4 perf: 内置 applets 自动安装 2022-12-20 16:48:18 +08:00
Aaron3S
d8cccfd40f feat: 优化job execution 详情字段 2022-12-20 16:36:38 +08:00
Aaron3S
54f720e992 增加部分翻译 2022-12-20 16:36:38 +08:00
Bai
362cfb733c perf: 修改 su-from-accounts API 2022-12-20 16:13:44 +08:00
feng
dddff03336 perf: asset tree 2022-12-20 14:53:25 +08:00
ibuler
5d31200368 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-20 13:49:56 +08:00
ibuler
c040564dc2 fix: 修改显示 model 的错误 2022-12-20 13:47:12 +08:00
Bai
1b82f3fc6a Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-20 11:26:25 +08:00
Bai
ba4d222eda fix: 解决 nodes-with-assets/tree/ API 异常的问题 2022-12-20 11:25:44 +08:00
ibuler
758453ae96 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-20 11:05:29 +08:00
ibuler
24da1e7d91 perf: 修改 connect token, 获取 applet info 2022-12-20 11:05:00 +08:00
feng
cdb89ee2f2 perf: job executed fail api 2022-12-20 10:35:05 +08:00
fit2bot
e82eb8f3d1 perf: 批量命令 (#9220)
Co-authored-by: feng <1304903146@qq.com>
2022-12-19 18:04:11 +08:00
fit2bot
92a198c00b refactor: 重构重建用户授权树工具 (#9219)
* perf: 优化 <UserGrantedTreeBuildUtils> 用户授权树构建工具

* feat: 完成计算授权节点资产数量

* refactor: 重构重建用户授权树工具

* merge: v3

Co-authored-by: Bai <baijiangjie@gmail.com>
2022-12-19 16:04:58 +08:00
feng
ff16260024 perf: remove OrganizationMember model 2022-12-19 15:44:02 +08:00
fit2bot
69b16e4754 perf: asset type xpack (#9218)
Co-authored-by: feng <1304903146@qq.com>
2022-12-19 11:35:50 +08:00
ibuler
675a41013e perf: connect methods xpack 2022-12-16 18:37:27 +08:00
ibuler
26794064b5 perf: session 添加类型 2022-12-16 17:16:14 +08:00
ibuler
26fa1f6f08 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-16 15:54:29 +08:00
ibuler
d040162d86 perf: 修改 session 字段,添加 Comment 2022-12-16 15:53:59 +08:00
Aaron3S
009669febe feat: 增加作业审计api 2022-12-16 15:52:02 +08:00
Aaron3S
bc47afb329 feat: 修改 inventory 名字生成规则 2022-12-16 15:20:36 +08:00
Aaron3S
e969a01689 feat: 修改作业权限 2022-12-16 15:20:36 +08:00
吴小白
9d80abadd8 perf: 优化启动速度 2022-12-16 11:48:55 +08:00
halo
4f1d4ab71e fix: 导入翻译引用 2022-12-16 11:48:02 +08:00
halo
cb8dc6c583 perf: 优化oauth2的服务地址参数拼接 2022-12-16 11:48:02 +08:00
feng
11a58dc7ad perf: k8s tree proxy 2022-12-16 10:52:08 +08:00
feng
d7a793b4c4 perf: 修改k8s tree 2022-12-15 18:47:54 +08:00
fit2bot
69fe0b07fd perf: k8s tree (#9214)
Co-authored-by: feng <1304903146@qq.com>
2022-12-15 16:08:19 +08:00
ibuler
615a1ddc96 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-15 16:03:21 +08:00
ibuler
cb7b31e8b8 perf: perm account 返回 alias 2022-12-15 16:02:34 +08:00
feng
840ca02223 perf: del redundant macos 2022-12-15 15:21:51 +08:00
feng
cbf91e4c29 perf: ticket help text 2022-12-15 11:59:14 +08:00
Eric
acfce4961c fix: 修复用户组织树问题 2022-12-14 18:17:25 +08:00
Eric
d60f9a7c69 perf: web selector 默认值修改 2022-12-14 17:39:22 +08:00
fit2bot
7b0d26bbff perf: ticket applicant (#9205)
Co-authored-by: feng <1304903146@qq.com>
2022-12-14 15:24:36 +08:00
fit2bot
f42c0f667d perf: ticket applicant (#9202)
Co-authored-by: feng <1304903146@qq.com>
2022-12-13 17:36:00 +08:00
吴小白
b6d6c54d8f Merge pull request #9201 from jumpserver/pr@v3@perf_support_openid_pkce
perf: OpenID支持PKCE方式对接
2022-12-13 16:16:11 +08:00
feng
1660362499 perf: validate ssh key 2022-12-13 15:50:47 +08:00
jiangweidong
6b33a54aef perf: OpenID支持PKCE方式对接 2022-12-13 15:31:53 +08:00
jiangweidong
c121ac6b1d perf: OpenID支持PKCE方式对接 2022-12-13 15:30:08 +08:00
Eric
1af86ccdfe perf: change secret_type to LabeledChoiceField 2022-12-13 12:31:20 +08:00
feng
2f3b1d3b66 fix: ticket xss inject 2022-12-12 17:12:04 +08:00
feng
408c6c568a perf: account backup 2022-12-12 12:33:45 +08:00
fit2bot
c861f390c7 perf: k8s account ignore (#9188)
Co-authored-by: feng <1304903146@qq.com>
2022-12-12 11:43:19 +08:00
Bai
eba43f6a13 fix: 修改 db-listen-port.db_info API 返回的数据结构 2022-12-12 11:01:51 +08:00
Bai
26d9cdc50d perf: 优化用户授权树工具类存放目录 user_perm_tree 文件中 2022-12-09 14:03:00 +08:00
Bai
5e5061a825 perf: 优化 UserPermTreeExprireUtil 2022-12-09 13:38:30 +08:00
Bai
89f89532e7 perf: 优化 convert_to_queryset 方法 2022-12-09 13:38:30 +08:00
Bai
a767c208b3 perf: 优化 get_all_node_keys 方法 2022-12-09 13:38:30 +08:00
Bai
1679efe2c9 refactor: 重构优化用户授权树工具类和用户授权树过期条件处理逻辑 <UserPermTreeRefreshUtil> <UserPermTreeExpireUtil> 2022-12-09 13:38:30 +08:00
Bai
4f5cc56b00 perf: 优化 UserPermTreeUtil 逻辑(进行中) 2022-12-09 13:38:30 +08:00
Bai
8beb1b81cf fix: 修改 AssetSerializer 继承 BulkOrgResourceSerializerMixin 序列类 2022-12-09 11:12:56 +08:00
吴小白
0940eab6c8 Merge pull request #9183 from jumpserver/pr@v3@fix_health_check
fix: 修正健康检查失败
2022-12-09 11:09:19 +08:00
吴小白
a7354d949d fix: 修正健康检查失败 2022-12-09 11:06:58 +08:00
吴小白
ddb731c5cd chore: 更新 python3.9 2022-12-09 10:40:55 +08:00
fit2bot
0ae9b76f04 perf: 优化构建 (#9179)
* perf: 优化构建

* fix: 修正构建错误

* perf: 优化构建依赖包

* fix: 修正构建判断

* perf: 现阶段还需要 debug 工具

Co-authored-by: 吴小白 <296015668@qq.com>
2022-12-09 10:21:36 +08:00
Bai
beac2a1514 perf: 优化获取账号 su-from-accounts 时,不包含自己和以自己为 su-from 的账号 2022-12-08 13:37:35 +08:00
dependabot[bot]
0aa3d650d4 chore(deps): bump certifi from 2018.1.18 to 2022.12.7 in /requirements
Bumps [certifi](https://github.com/certifi/python-certifi) from 2018.1.18 to 2022.12.7.
- [Release notes](https://github.com/certifi/python-certifi/releases)
- [Commits](https://github.com/certifi/python-certifi/compare/2018.01.18...2022.12.07)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-08 00:55:41 +00:00
fit2bot
e5afbd4118 perf: k8s tree api (#9169)
Co-authored-by: feng <1304903146@qq.com>
2022-12-07 23:55:56 +08:00
Aaron3S
c14b97419d feat: 增加跳过的主机统计, 增加每台主机执行情况api 2022-12-07 20:13:26 +08:00
Bai
66bdc375df Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-07 19:30:48 +08:00
Bai
58131a2b68 fix: 修复 su-from-accounts API; 前端 Select2 组件初始化时 API 报错的问题;
修改原因:
前端使用 Select2 组件渲染更新账号的表单页面时,会默认先创建 spm 值,
后端调用 get_object 方法时,使用的queryset,就是spm所对应的queryset,
而 detail=True, 查询的值是当前 account_id,不在 queryset 中,
所以会导致调用父类的 get_object 方法报错,对象找不到
2022-12-07 19:26:28 +08:00
ibuler
a27b43107c Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-07 18:59:28 +08:00
ibuler
0c7de50708 perf: 修改 display field 2022-12-07 18:58:57 +08:00
Bai
d252ee41ed Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-07 18:38:12 +08:00
Bai
6cda28c63d perf: 优化授权规则 user-permission 用户授权相关的 API; 包括 assets, nodes, tree-asset, tree-node, tree-node-with-asset; 2022-12-07 18:38:03 +08:00
ibuler
6a1c5aba12 perf: 修改一些翻译 2022-12-07 17:24:30 +08:00
ibuler
02a03e1a28 perf: merge i18n 2022-12-07 16:02:18 +08:00
ibuler
da36ce9dfd perf: merge connect token rdp option 2022-12-07 15:13:32 +08:00
ibuler
dbee3ed30d feat: connect token 添加 Rdp options 2022-12-07 15:09:01 +08:00
jiangweidong
e7e3b603a9 perf: 清理无用的依赖包 2022-12-07 10:53:54 +08:00
Bai
1cab84bb62 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-06 19:54:15 +08:00
Bai
bf5da83008 perf: 修改授权 API Name 2022-12-06 19:53:36 +08:00
Aaron3S
07b3774d3d feat: 增加运行的内置变量,优化self资源的代码 2022-12-06 19:48:31 +08:00
Aaron3S
d92b198a12 perf: 优化ops代码 2022-12-06 19:48:28 +08:00
Bai
6233e2b3de perf: Account su_from 返回使用 ObjectRelatedField allow_null allow_empty 2022-12-06 19:41:26 +08:00
Bai
29fd6ee8c9 perf: Account su_from 返回使用 ObjectRelatedField 2022-12-06 18:54:13 +08:00
Bai
c9bf99468c feat: 添加 command-review API 2022-12-06 18:27:53 +08:00
Bai
71e76e5075 feat: 添加su-from-accountsAPI 2022-12-06 17:43:33 +08:00
“huailei000”
b6afe77bc0 perf: 调整登录页样式 2022-12-06 17:43:08 +08:00
老广
b89720017b Merge pull request #9162 from jumpserver/pr@dev@feat_clickhouse
feat: 增加clickhouse
2022-12-06 17:25:24 +08:00
jiangweidong
803d68f3fe feat: 增加clickhouse 2022-12-06 17:13:37 +08:00
Jiangjie.Bai
7842e3e5ab Merge: v3 to dev (#9160)
* fix: 修改 ConnectionTokenSecretSerializer

* perf: connect token secret (#9155)

Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>

* feat: 作业迁移至个人级别

* perf: asset enabled (#9157)

Co-authored-by: feng <1304903146@qq.com>

* perf: 修改ConnectionTokenSecret Gateway数据结构; 修改Domain Gateway Model方法

* perf: ConnectionTokenSecret  返回 domain 信息

* refactor: 移动 Gateway Model 到 asset 目录下

* refactor: 移动 Gateway Model 单独到 gateway 文件中

* perf: 修改 GatewaySerializer 目录

* perf: 修改 GatewaySerializer 目录

Co-authored-by: fit2bot <68588906+fit2bot@users.noreply.github.com>
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2022-12-06 11:03:14 +08:00
老广
9ef5f17d5e Merge pull request #9158 from jumpserver/pr@dev@to_v3
perf: 修改完冲突了
2022-12-05 19:47:05 +08:00
ibuler
1e669a7edb perf: 修改 requirements 2022-12-05 19:28:11 +08:00
ibuler
daf279304a perf: 修改完冲突了 2022-12-05 18:54:12 +08:00
ibuler
2168610ffe perf: 修改合并引起的 migrations 依赖问题 2022-12-05 16:07:14 +08:00
ibuler
e91cbb9c97 merge: with v3 2022-12-05 15:03:21 +08:00
ibuler
873afd239e chore: relove conflict 2022-12-05 13:41:28 +08:00
ibuler
80e550b71a fix: 修复 supertoken 创建 2022-12-05 13:37:37 +08:00
Bai
1a9f520c1f Merge to local v3 2022-12-05 13:32:33 +08:00
Bai
cc7424dbfe perf: 修改 CommandFilterACL, CommandGroup Model 的 Meta 内部类; 修改 Command Model 的 system_user -> account 字段; 修改 ConnectionToken 的 command_filter_acls 返回字段; 2022-12-05 13:27:51 +08:00
ibuler
ca228074e3 perf: 修改 migrations 依赖 2022-12-05 12:58:09 +08:00
ibuler
0047af4584 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-05 12:42:39 +08:00
ibuler
38b1701b33 perf: 修改 migrations, 修改 Connect token 2022-12-05 12:42:15 +08:00
feng
03e62b5bc1 perf: asset mini 2022-12-05 11:48:41 +08:00
Aaron3S
74b783f62f perf: 合并迁移文件 2022-12-05 11:26:14 +08:00
fit2bot
8a7ecda4f6 perf: asset add automation_enabled_info (#9154)
Co-authored-by: feng <1304903146@qq.com>
2022-12-05 11:21:01 +08:00
ibuler
d25d580ba4 perf: 合并 connect token 2022-12-05 11:06:50 +08:00
ibuler
669ccb502f perf: 修改 connect token 2022-12-05 10:48:19 +08:00
Bai
0cfcfacb6d perf: 修改 CommandFilterACL, CommandGroup __str__ 2022-12-04 22:46:47 +08:00
Bai
519e0eac01 perf: 修改 CommandGroupSerializer type 字段为 LabeledChoiceField 2022-12-04 20:51:22 +08:00
Bai
70fb00c4ee perf: 修改命令过滤ACL序列类和部分翻译 2022-12-04 18:48:48 +08:00
Bai
4d9344eb23 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-04 18:11:32 +08:00
Bai
229d36abb4 perf: 修改命令过滤 ACL 序列类 2022-12-04 18:01:35 +08:00
Eric
048be1782d fix: replay file data 2022-12-04 17:39:48 +08:00
Bai
5568c4c5df perf: 修改 CommandFilterACL Account 只匹配 username 字段 2022-12-04 14:44:30 +08:00
Bai
a69b762f13 fix: 修改 ACL ActionChoices review, accept, reject 引用 2022-12-04 12:08:44 +08:00
Bai
2b5bd558f3 perf: 修改命令过滤相关的Model, CommandFilterACL, CommandGroup; 修改Model QuerySet 相关的方法; 2022-12-04 00:04:39 +08:00
Eric
6480b916d6 perf: parse ssh private key 2022-12-03 15:25:04 +08:00
ibuler
289ecbcc75 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-02 20:33:56 +08:00
ibuler
2cf3a21d27 perf: 修改校验权限 2022-12-02 20:33:32 +08:00
fit2bot
156a6c9dc5 perf: gateway test connective (#9152)
Co-authored-by: feng <1304903146@qq.com>
2022-12-02 20:28:49 +08:00
ibuler
052a4afef6 pref: 暂时修改 key fingerprint 2022-12-02 20:06:56 +08:00
ibuler
fbea1f3480 perf: 修改一些拼写 2022-12-02 19:56:13 +08:00
Bai
a70f85e346 fix: 修改 ConnectionToken Serializer 2022-12-02 18:09:07 +08:00
Bai
52e8082470 fix: 修改 LoginAssetACL 过滤 review 2022-12-02 17:52:51 +08:00
Bai
c832f762a5 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-02 17:48:51 +08:00
Bai
c8c5aca355 fix: 修改 ConnectionToken Serializer 命令过滤器 2022-12-02 17:48:44 +08:00
jiangweidong
aa0dabfd10 fix: 删除不用migrations 2022-12-02 17:40:00 +08:00
fit2bot
0e0a9f4654 perf: gateway account (#9150)
Co-authored-by: feng <1304903146@qq.com>
2022-12-02 17:36:55 +08:00
Aaron3S
2f5e133558 perf: 优化celery任务 2022-12-02 17:18:11 +08:00
Aaron3S
6d0545f04f perf: 持续优化作业创建 2022-12-02 17:17:05 +08:00
老广
21f91358cf Merge pull request #9147 from jumpserver/pr@v3@fix_withdraw_acl_unfinished
fix: 删除掉连接方式控制半成品代码
2022-12-02 14:57:38 +08:00
ibuler
6c8d64de4e perf: 修改冲突 2022-12-02 13:16:33 +08:00
ibuler
2d771eedc1 perf: 优化用户授权 api 2022-12-02 13:15:03 +08:00
jiangweidong
faf1dedfe2 fix: 删除掉连接方式控制半成品代码 2022-12-02 13:00:48 +08:00
Bai
563b9f77a6 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-02 12:41:05 +08:00
Bai
158d49b230 fix: 修复用户授权的资产 API 支持 id 过滤 2022-12-02 12:40:29 +08:00
ibuler
61e6ab20a2 perf: 修改 Connect acl 2022-12-02 12:27:26 +08:00
ibuler
6390b9c203 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-02 11:53:45 +08:00
ibuler
a6aafaec05 perf: 修改 command filter 2022-12-02 11:53:07 +08:00
fit2bot
541358978d fix: gateway (#9145)
Co-authored-by: feng <1304903146@qq.com>
2022-12-02 11:45:05 +08:00
ibuler
19c3f98e8f pref: 修改 migrations 冲突 2022-12-02 11:14:29 +08:00
ibuler
fdbaa0afe1 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-02 11:12:25 +08:00
ibuler
a18f544cf8 perf: 修改 acl 2022-12-02 11:12:14 +08:00
老广
1165ea817f Merge pull request #9035 from jumpserver/pr@v3@feat_db_automations
[v3] feat: 支持Oracle、MongoDB、SQLServer数据库自动化操作部分功能
2022-12-02 10:53:29 +08:00
jiangweidong
85aad7ba62 feat: 解决冲突 2022-12-02 10:52:31 +08:00
老广
017a674f63 Merge pull request #9143 from jumpserver/pr@v3@perf_gunicorn
perf: 去掉 gunicorn threads
2022-12-02 10:47:16 +08:00
吴小白
709b6e5b0d perf: 去掉 gunicorn threads 2022-12-02 10:45:12 +08:00
老广
a68e2e29f4 Merge pull request #9110 from jumpserver/dependabot/pip/requirements/pillow-9.3.0
build(deps): bump pillow from 9.1.1 to 9.3.0 in /requirements
2022-12-02 10:45:11 +08:00
老广
11a786d858 Merge pull request #9076 from jumpserver/v3_async_ws
perf: asyncio ws task log
2022-12-02 10:44:24 +08:00
老广
07f2e66546 Merge pull request #9138 from jumpserver/pr@dev@fix_csrf_403_error
fix: 增加CSRF_TRUSTED_ORIGINS参数,解决CSRF报错
2022-12-02 10:40:55 +08:00
老广
a6b1052767 Merge pull request #9139 from jumpserver/pr@v3@perf_gunicorn
perf: 控制 gunicorn 启动进程
2022-12-02 10:40:09 +08:00
老广
ab4c8402c3 Merge pull request #9119 from jumpserver/pr@v3@feat_support_clear_private_key
feat: 支持账号更新界面清空存在的秘钥信息
2022-12-02 10:35:43 +08:00
老广
bcf509ab07 Merge branch 'v3' into pr@v3@feat_support_clear_private_key 2022-12-02 10:35:20 +08:00
Eric
10e3100d3c fix: LoginAssetACL confirm action 2022-12-01 22:09:16 +08:00
Bai
2401c241f2 fix: 修改 random_string 方法,支持只生成随机数字 2022-12-01 20:12:51 +08:00
ibuler
1fb0b0849d Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-01 19:41:42 +08:00
ibuler
cb3877bbda perf: 修改 acl 添加命令过滤 acl 2022-12-01 19:41:18 +08:00
feng
fa0382fc5e perf: gateway manager 2022-12-01 18:22:41 +08:00
吴小白
ce3ec85147 fix: 去掉默认值 2022-12-01 16:22:26 +08:00
吴小白
2bc47c87d1 perf: 修正错误 2022-12-01 16:12:10 +08:00
ibuler
8162a1b17e perf: 优化 gateway 2022-12-01 15:21:53 +08:00
吴小白
7a475fc029 perf: 控制 gunicorn 启动进程 2022-12-01 14:54:57 +08:00
halo
269c087bac fix: 增加CSRF_TRUSTED_ORIGINS参数,解决CSRF报错 2022-12-01 13:47:25 +08:00
fit2bot
d1461b33c5 perf: gather account mysql (#9136)
Co-authored-by: feng <1304903146@qq.com>
2022-12-01 13:12:31 +08:00
Bai
d5d770e4ac Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-12-01 12:03:08 +08:00
Bai
b55b755e8e fix: 修复 LoginAssetACL Check API 获取 account_username 失败的问题 2022-12-01 12:03:01 +08:00
Bai
592d79c0f8 perf: 合并授权规则用户相关的 API URL,统一使用 /<str:user>/ 格式 2022-12-01 12:02:20 +08:00
feng
26efc42e8b perf: type to assets 2022-12-01 10:23:04 +08:00
Eric
d198dfcba9 perf: granted asset add specific field 2022-12-01 00:36:02 +08:00
Bai
a430b0f1a9 perf: 优化 Login Asset ACL Serializer reviewers 字段 2022-11-30 23:05:20 +08:00
Bai
3b1c8a2327 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-30 21:13:56 +08:00
Bai
2aa1d664a6 perf: 处理 acl filter 逻辑放到 queryset 中 2022-11-30 21:13:50 +08:00
feng
a0df39ad28 fix: 修改connection token 对接client的username 2022-11-30 20:38:22 +08:00
feng
314b63cec8 perf: connection token launch command 2022-11-30 20:21:23 +08:00
fit2bot
edae6942ac perf: connection token client add protocol (#9134)
Co-authored-by: feng <1304903146@qq.com>
2022-11-30 20:02:13 +08:00
Eric
142348b055 perf: 增加资产过滤 2022-11-30 18:16:52 +08:00
fit2bot
4083df07cc perf: audit navigation (#9133)
Co-authored-by: feng <1304903146@qq.com>
2022-11-30 18:13:15 +08:00
Bai
d524e9885d Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-30 17:11:43 +08:00
Bai
2dea891b15 perf: 处理 acl 后台 check 逻辑 2022-11-30 17:11:36 +08:00
吴小白
6bb706efcf perf: 添加代码构建测试 actions 2022-11-30 17:06:52 +08:00
ibuler
0ffea3855b perf: 修改 connect token api 2022-11-30 16:39:27 +08:00
ibuler
6f02b239db Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-30 16:33:52 +08:00
ibuler
ed77d05bd8 pref: conneect token 支持 su from 2022-11-30 16:33:22 +08:00
Aaron3S
dcbdb0af4d feat: 支持执行目录切换,修改字段显示 2022-11-30 16:25:31 +08:00
Bai
25b9739ce3 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-30 16:24:21 +08:00
Bai
48d2949404 perf: 修改 acl assets name/address 2022-11-30 16:21:27 +08:00
ibuler
307cf97ccb perf: 授权的资产支持过滤 2022-11-30 15:39:27 +08:00
ibuler
21b1dd076a Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-30 15:34:31 +08:00
ibuler
d46f321f1a perf: 修改连接方式 2022-11-30 15:24:32 +08:00
Bai
99e126f515 perf: 修改 Acl accounts serializer 2022-11-30 15:08:55 +08:00
ibuler
0f1e19ba41 perf: 修改数据库添加 ssl 字段 2022-11-30 11:28:51 +08:00
ibuler
47c405dee5 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-29 21:50:59 +08:00
ibuler
4b61790a92 fix: 修复 connect token remote app 错误 2022-11-29 21:50:48 +08:00
ibuler
44ee80b05a perf: 去掉 connect token endpoint protocol 2022-11-29 21:41:33 +08:00
Aaron3S
82a8118ca0 feat: 增加comment 字段 2022-11-29 19:52:48 +08:00
Aaron3S
d741f14342 feat: merge migrations 2022-11-29 19:47:45 +08:00
Aaron3S
e191a197c6 feat: 完成剩余流程, 修改部分模型 2022-11-29 19:44:42 +08:00
feng
cc5b37350c perf: domain del nodes 2022-11-29 19:37:11 +08:00
feng
dd207016b2 perf: del domain node 2022-11-29 19:14:12 +08:00
feng
52541d1dad perf: push dynamic user 2022-11-29 19:05:45 +08:00
ibuler
6593648554 perf: 修改 connect token 2022-11-29 18:36:42 +08:00
Eric
426900145e perf: connect token asset add specific 2022-11-29 17:08:22 +08:00
fit2bot
d849fd52bd perf: domian add node (#9130)
Co-authored-by: feng <1304903146@qq.com>
2022-11-29 17:01:03 +08:00
ibuler
3ac952f735 perf: 修改 connect token 拉起 2022-11-29 15:47:35 +08:00
ibuler
9412c5d42d perf: 修改 connect token 数据结构 2022-11-29 14:45:29 +08:00
ibuler
0981cd1ed1 perf: 修改 Connect token 数据结构 2022-11-29 14:42:04 +08:00
feng
e4edf3be02 perf: migrate 2022-11-29 09:34:43 +08:00
ibuler
cb76cad6de Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-28 22:59:17 +08:00
ibuler
f6bdc7f81c pref: 暂存 客户端连接方式 2022-11-28 22:58:43 +08:00
feng
3052aa759c perf: ticket login asset acl 2022-11-28 21:54:20 +08:00
fit2bot
11636dafd8 perf: history account secret perm (#9128)
Co-authored-by: feng <1304903146@qq.com>
2022-11-28 18:43:58 +08:00
ibuler
742cac1e90 pref: 修改数据库连接方式 2022-11-28 17:57:33 +08:00
feng
d0b9dd457f perf: navigation date metrics 2022-11-28 16:12:06 +08:00
fit2bot
4f718f9b1f perf: account template secret api (#9127)
Co-authored-by: feng <1304903146@qq.com>
2022-11-28 15:54:16 +08:00
Eric
3c5b459ab7 fix: connect token serializer 2022-11-28 15:31:00 +08:00
ibuler
2c26f96e28 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-28 15:01:50 +08:00
ibuler
a1d72a1746 pref: 修改 connect token 一些 Url 2022-11-28 15:01:16 +08:00
feng
0212e32ab2 perf: navigation api 2022-11-28 14:53:27 +08:00
feng
0417c6142d Merge remote-tracking branch 'origin/v3' into v3 2022-11-28 11:48:33 +08:00
fit2bot
072c44974e perf: navigation page (#9125)
Co-authored-by: feng <1304903146@qq.com>
2022-11-28 11:47:40 +08:00
feng
7f2267cf13 perf: navigation page 2022-11-28 11:42:03 +08:00
吴小白
1bc4c1aef0 perf: 优化构建 2022-11-28 09:55:55 +08:00
吴小白
b2bb46a51e perf: 去掉不使用的 8070 端口标识 2022-11-27 20:20:26 +08:00
ibuler
211f560400 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-27 18:31:34 +08:00
ibuler
23f3f903f5 perf: 修改 connect token 2022-11-27 18:31:28 +08:00
Bai
61c96baeae fix: 修复获取UserLoginLog对象org失败的问题 2022-11-27 14:36:16 +08:00
feng
7d0c480a13 Merge remote-tracking branch 'origin/v3' into v3 2022-11-27 12:57:31 +08:00
feng
eec463774a perf: user login logs 2022-11-27 12:53:38 +08:00
吴小白
392ae18d85 feat: 使用 uvicorn 取代 daphne 2022-11-27 05:56:53 +08:00
feng
0b802b1782 perf: navigation page 2022-11-26 19:20:04 +08:00
Bai
8a3bc51faa 解决 authentication 迁移文件冲突 2022-11-26 09:52:04 +08:00
Aaron3S
2c8f51940a feat: 修改ops api 2022-11-26 03:13:57 +08:00
ibuler
5e503ec5b8 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-25 23:11:28 +08:00
ibuler
0f35b3dd58 pref: 修改 connect token 2022-11-25 23:09:55 +08:00
Eric
608e0c9f26 feat: support ed25519 key 2022-11-25 18:06:22 +08:00
fit2bot
276f644794 perf: gateway (#9121)
Co-authored-by: feng <1304903146@qq.com>
2022-11-24 21:21:25 +08:00
吴小白
2bf9be48be Merge pull request #9120 from jumpserver/pr@dev@perf_db_ssl_setting
perf: 增加DB_USE_SSL配置和redis配置统一
2022-11-24 17:36:23 +08:00
Bai
99f5c02d84 perf: 获取用户授权的账号返回 has_username 字段 2022-11-24 17:04:27 +08:00
Bai
4574161009 fix: 修复获取授权规则的账号列表为空的问题 2022-11-24 16:44:15 +08:00
jiangweidong
69d8dc4bb3 perf: 增加DB_USE_SSL配置和redis配置统一 2022-11-24 16:01:26 +08:00
jiangweidong
2d86c8c843 Merge branch 'v3' of http://github.com/jumpserver/jumpserver into pr@v3@feat_support_clear_private_key 2022-11-24 15:25:17 +08:00
jiangweidong
9e41ad0764 feat: 支持账号更新界面清空存在的秘钥信息 2022-11-24 15:25:09 +08:00
吴小白
3dde2a44e8 Merge pull request #9108 from jumpserver/pr@dev@perf_redis_sentinel_support_ssl
perf: 支持sentinel开启ssl(Sentinel和Redis公用一套证书,无额外增加配置项)
2022-11-24 14:44:25 +08:00
feng
da9516608f Merge remote-tracking branch 'origin/v3' into v3 2022-11-24 10:55:43 +08:00
Aaron3S
d977013dc6 Merge remote-tracking branch 'origin/v3' into v3 2022-11-24 00:52:45 +08:00
Aaron3S
fa948f7327 feat: job 增加组织限制 2022-11-24 00:50:37 +08:00
fit2bot
d44d475cae perf: gateway (#9115)
Co-authored-by: feng <1304903146@qq.com>
2022-11-23 18:39:05 +08:00
feng
3d6609ec8c perf: gateway 2022-11-23 18:36:42 +08:00
ibuler
abfd472a0a perf: 修改 connect token 2022-11-23 16:11:17 +08:00
ibuler
075cadb1ab merge: with remote 2022-11-22 21:56:30 +08:00
ibuler
779161d79a perf: 修改 connection token 2022-11-22 21:54:40 +08:00
dependabot[bot]
5f4c7e8cf0 build(deps): bump pillow from 9.1.1 to 9.3.0 in /requirements
Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.1.1 to 9.3.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/9.1.1...9.3.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-22 11:21:50 +00:00
fit2bot
1a204618f7 [v3] perf: migrate gateway to asset (#8928)
* perf: migrate gateway to asset

* perf: asset discriminate gateway

Co-authored-by: feng626 <1304903146@qq.com>
2022-11-22 17:33:09 +08:00
feng
873b81e639 perf: ticket migrate 2022-11-22 11:36:48 +08:00
Jiangjie.Bai
d543c3efe7 fix: 修复 favorite-assets Serializer 缺少 protocols 字段的问题 2022-11-22 11:05:52 +08:00
吴小白
436cb7b6e1 feat: 添加 Dockerfile.loong64 2022-11-22 10:15:55 +08:00
feng
4b26fb3e6e fix: jms upgrade_db bug 2022-11-21 19:54:00 +08:00
jiangweidong
c316ad2dbd perf: 支持sentinel开启ssl 2022-11-21 18:27:20 +08:00
feng
f39a3a34e4 perf: change secret ignore secret type 2022-11-21 16:23:32 +08:00
feng
94526e44f1 perf: change secret timedelta 2022-11-21 15:18:09 +08:00
ibuler
6d5be66b5e Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-18 19:29:52 +08:00
ibuler
fc1b6c9db2 pref: 修改 endpoint api 2022-11-18 19:29:19 +08:00
Aaron3S
d0de36358c feat: 支持定时任务 2022-11-18 18:47:48 +08:00
feng
c785225ff2 fix: es 默认存储500 2022-11-18 17:05:15 +08:00
Bai
0eb550f39b fix: flower db file 持久化存储flower信息 2022-11-18 15:36:45 +08:00
Bryan
264c97888f fix: 修复 channels-redis 库升级导致 ws 查看任务日志失败的问题; 修改 REDIS_LAYERS_HOST 变量; 修改 Channel SSL 配置项; 2022-11-18 15:25:27 +08:00
fit2bot
223814f897 perf: migrate (#9098)
Co-authored-by: feng <1304903146@qq.com>
2022-11-18 11:30:31 +08:00
ibuler
b1bd57cd76 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-17 20:49:31 +08:00
ibuler
04ee7ee0e7 pref: 后端返回 connect types 2022-11-17 20:48:50 +08:00
Aaron3S
24ed11e2a5 feat: 运行job 支持动态参数 2022-11-17 20:10:13 +08:00
feng
49a4ceba85 perf: ticket 2022-11-17 19:20:54 +08:00
feng
543d61442c perf: ticket accounts 2022-11-17 18:04:38 +08:00
Jiangjie.Bai
6febc104de Merge pull request #9096 from jumpserver/dev
v2.28.0
2022-11-17 17:43:44 +08:00
Jiangjie.Bai
e629e6fb3f fix: i18n 2022-11-17 17:40:35 +08:00
halo
1b99a7e06f fix: 账户备份邮件发送找不到文件bug 2022-11-17 17:39:53 +08:00
fit2bot
71122312cf perf: ticket optimization (#9094)
Co-authored-by: feng <1304903146@qq.com>
2022-11-17 17:34:52 +08:00
Eric
30f37d9ebf perf: deployment task log order by date 2022-11-17 16:39:49 +08:00
Eric
ef3654ffa4 perf: update applet delopyment task 2022-11-17 16:03:26 +08:00
fit2bot
3a62abf381 perf: ticket action (#9090)
Co-authored-by: feng <1304903146@qq.com>
2022-11-17 15:07:23 +08:00
Jiangjie.Bai
733b95ee99 Merge pull request #9089 from jumpserver/dev
v2.28.0-rc5
2022-11-17 14:14:18 +08:00
ibuler
a42641ca9a fix: 修复 redis 连接导致的 pub sub 错误 2022-11-17 14:07:43 +08:00
halo
90c48d303e fix: celery任务时间字段差8小时问题 2022-11-17 14:06:31 +08:00
fit2bot
73c2155864 perf: ticket serializer (#9075)
Co-authored-by: feng <1304903146@qq.com>
2022-11-17 13:52:10 +08:00
jiangweidong
949166eaed fix: Redis哨兵切换时导致core和celery组件监听线程异常退出 2022-11-17 12:19:35 +08:00
ibuler
4591b03e17 pref: 修改 terminal methods 2022-11-17 11:46:35 +08:00
Eric
8a1a7d9e13 fix: remove unused serializer_class 2022-11-17 11:04:50 +08:00
Aaron3S
12816d49f6 Merge remote-tracking branch 'origin/v3' into v3 2022-11-17 10:50:50 +08:00
Aaron3S
43fee40c46 feat: 作业支持增加参数和执行路径超时时间等 2022-11-16 21:06:14 +08:00
ibuler
e2001d7779 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-16 21:06:08 +08:00
ibuler
fb653f93db pref: 修改添加 connect methods 2022-11-16 21:05:15 +08:00
Jiangjie.Bai
b179264127 Merge pull request #9080 from jumpserver/dev
v2.28.0-rc4
2022-11-16 21:05:05 +08:00
Jiangjie.Bai
a2b9a5cee3 fix: 修复删除数据库由于端口数量限制导致不能删除的问题 2022-11-16 21:04:12 +08:00
Jiangjie.Bai
9e80b70c12 fix: 修改用户前一文件 2022-11-16 20:48:56 +08:00
jiangweidong
2454a07d38 feat: 支持具有超级工单权限的用户申请工单可以指定申请人 2022-11-16 20:42:46 +08:00
Jiangjie.Bai
ad7647c0cc fix: 修复第三方用户忘记密码页面的提示,不允许修改 2022-11-16 20:40:46 +08:00
feng
ec462e09e0 fix: action 2022-11-16 19:35:16 +08:00
Jiangjie.Bai
21d24ae4bc fix: 修复创建授权规则时不包含actions报错的问题 2022-11-16 16:23:39 +08:00
Jiangjie.Bai
2a8d63e9cd Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-16 15:07:46 +08:00
Jiangjie.Bai
896b59b1bd fix: 修复获取用户收藏的资产API失败的问题 2022-11-16 15:07:35 +08:00
Aaron3S
e7dde616c0 Merge remote-tracking branch 'origin/v3' into v3 2022-11-16 15:05:38 +08:00
Aaron3S
0959b55b53 perf: 优化字段名称 2022-11-16 15:04:46 +08:00
Eric
7ac9681f0d perf: asyncio ws task log 2022-11-16 14:34:56 +08:00
Jiangjie.Bai
0dec61368c Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-16 11:29:10 +08:00
Jiangjie.Bai
e118ed655b perf: 优化授权规则获取用户授权的账号API 2022-11-16 11:29:02 +08:00
jiangweidong
18986bc805 perf: 增加clickhouse端口帮助文案及注释 2022-11-16 10:53:20 +08:00
吴小白
e8fb6d5380 perf: 配置 apt 镜像 2022-11-16 08:58:16 +08:00
吴小白
e220b8174d perf: 配置下载路径 2022-11-15 22:18:15 +08:00
ibuler
e34aa0e084 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-15 19:24:14 +08:00
ibuler
fd54cbc777 fix: action choices 2022-11-15 19:23:44 +08:00
fit2bot
157d81f117 fix: 翻译 (#9067)
Co-authored-by: feng <1304903146@qq.com>
2022-11-15 18:09:06 +08:00
Jiangjie.Bai
aa9e5d2432 fix: merge v3 2022-11-15 17:50:48 +08:00
Jiangjie.Bai
3e31c9ed7f fix: 修改用户授权的资产账号 2022-11-15 17:49:28 +08:00
fit2bot
8558204450 perf: 修改工单授权过期时间 (#9065)
Co-authored-by: feng <1304903146@qq.com>
2022-11-15 17:30:29 +08:00
吴小白
ae0ede5f73 Merge branch 'v3' of https://github.com/jumpserver/jumpserver into v3 2022-11-15 17:26:44 +08:00
吴小白
7bfa21260c perf: 优化 Dockerfile 2022-11-15 17:24:56 +08:00
Aaron3S
b12f83dbea Merge remote-tracking branch 'origin/v3' into v3 2022-11-15 17:22:54 +08:00
Aaron3S
c63c000b10 perf: 优化异步认识显示名称 2022-11-15 16:29:40 +08:00
ibuler
7061ce7c97 fix: 修改 user granted asset account 2022-11-15 16:29:31 +08:00
ibuler
ed26c7f575 perf: reslove conflict 2022-11-15 16:27:56 +08:00
ibuler
7f0744961d pref: 修改 accounts 2022-11-15 16:26:18 +08:00
ibuler
73290f4ed0 pref: 修改 accounts 2022-11-15 16:24:53 +08:00
Jiangjie.Bai
0d3c5dddf9 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-15 16:08:16 +08:00
Jiangjie.Bai
a5fa5fd262 fix: 修改用户授权的资产账号API 2022-11-15 16:07:42 +08:00
Eric
ef637e91b9 perf: add host deployment task 2022-11-15 16:01:51 +08:00
ibuler
9d0e2b2872 pref: 修改 accounts list url 2022-11-15 15:47:32 +08:00
ibuler
989c338002 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-15 15:27:02 +08:00
ibuler
8e123304ad pref: 修改 perms accounts 2022-11-15 15:26:31 +08:00
Jiangjie.Bai
582a8e0c52 fix: 修改 BitChoicesField to_representation swagger 调用报错的问题 2022-11-15 14:59:22 +08:00
ibuler
22dd9906c7 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-15 10:43:51 +08:00
ibuler
63b32ae903 pref: 修改授权 api,去掉不用的 2022-11-15 10:43:21 +08:00
Jiangjie.Bai
83ef013708 fix: 修改 actions bit 从1开始 2022-11-14 20:25:54 +08:00
Eric
d554e92d02 perf: add applets deployment 2022-11-14 19:01:18 +08:00
Jiangjie.Bai
c18388e27a Merge pull request #9060 from jumpserver/dev
v2.28.0-rc3
2022-11-14 18:02:44 +08:00
jiangweidong
b6f86e8fb6 perf: 优化忘记密码,用户无手机号时无法使用手机号重置密码 2022-11-14 18:01:07 +08:00
fit2bot
7280c6726e fix: 删除用户 record 500 (#9058)
Co-authored-by: feng <1304903146@qq.com>
2022-11-14 17:00:10 +08:00
Jiangjie.Bai
6f135c34c1 fix: 修复测试邮箱服务器字段为null的问题 2022-11-14 16:24:05 +08:00
ibuler
8e1312e8ce pref: 修改 perm token 2022-11-14 14:44:18 +08:00
ibuler
4f135bc349 pref: 添加 perm token 2022-11-14 14:03:58 +08:00
Jiangjie.Bai
52830db500 Merge pull request #9052 from jumpserver/dev
v2.28.0-rc2
2022-11-14 09:54:50 +08:00
jiangweidong
6411642ced perf: 优化操作日志一些内容 2022-11-14 09:50:42 +08:00
jiangweidong
791b175465 perf: 优化找回密码页面 (#9045)
* perf: 优化找回密码页面

* perf: 优化找回密码操作页面
2022-11-14 09:48:55 +08:00
jiangweidong
d29e8317e5 feat: 添加操作日志ES默认的配置信息 2022-11-14 09:40:12 +08:00
jiangweidong
a868751edd perf: 补充reids ssl配置项 2022-11-14 09:40:12 +08:00
jiangweidong
e03f49e52b perf: 添加Redis哨兵配置的默认值 2022-11-14 09:40:12 +08:00
Aaron3S
0044f11262 feat: 执行adhoc和playbook 2022-11-11 19:20:17 +08:00
fit2bot
b100bbf838 perf: change secret (#9048)
Co-authored-by: feng <1304903146@qq.com>
2022-11-11 19:15:43 +08:00
Eric
8b351f49e5 perf: update applet host deployment 2022-11-11 18:16:11 +08:00
ibuler
3abf2592d1 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-11 17:29:03 +08:00
ibuler
9c5b3a03c6 pref: 优化 permission actionss 2022-11-11 17:28:13 +08:00
fit2bot
cb82b53791 perf: automation celery task (#9046)
Co-authored-by: feng <1304903146@qq.com>
2022-11-11 16:13:16 +08:00
ibuler
1cd551e692 merge: with remote 2022-11-11 15:11:10 +08:00
ibuler
f6e403fd8b pref: 修改 asset permission 2022-11-11 15:04:31 +08:00
fit2bot
cd3c3eeaf2 perf: code (#9044)
Co-authored-by: feng <1304903146@qq.com>
2022-11-10 19:11:56 +08:00
Eric
5494d2fd60 perf: update applet host deploy 2022-11-10 18:20:39 +08:00
Jiangjie.Bai
2324cdc14e Merge pull request #9040 from jumpserver/dev
v2.28.0-rc1
2022-11-10 17:48:40 +08:00
feng
f3c90c6bbd perf: login mfa style 2022-11-10 17:38:10 +08:00
jiangweidong
ac6ffb24ee feat: 云资产同步支持选择IP类型-补充翻译 2022-11-10 17:35:16 +08:00
jiangweidong
6f3ae4f73f perf: 修改Redis哨兵配置参数名称 2022-11-10 17:13:46 +08:00
fit2bot
1345998acd perf: download add open ssh (#8886)
Co-authored-by: feng626 <1304903146@qq.com>
2022-11-10 16:00:06 +08:00
feng
ba3f2099e6 perf: audits 2022-11-10 14:44:23 +08:00
ibuler
644f3f1783 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-09 20:59:28 +08:00
ibuler
1ffcf8f39c pref: 修改授权规则 2022-11-09 20:58:45 +08:00
feng
2f611009dc perf: acl 2022-11-09 20:51:43 +08:00
feng
becb10a453 perf: changr secret record api 2022-11-09 18:31:35 +08:00
jiangweidong
be875638ed Merge branch 'v3' of https://github.com/jumpserver/jumpserver into pr@v3@feat_db_automations 2022-11-09 18:23:10 +08:00
jiangweidong
8e2c048f0c feat: 支持Oracle、MongoDB、SQLServer数据库的自动化脚本部分功能 2022-11-09 18:23:00 +08:00
fit2bot
a5cef74356 perf: serializer (#9034)
Co-authored-by: feng <1304903146@qq.com>
2022-11-09 18:15:21 +08:00
Eric
1b2eda51e3 perf: get host applet by name 2022-11-09 16:14:25 +08:00
feng
cf4744791a fix: automation execution bug 2022-11-09 15:55:48 +08:00
feng
3b4e388ed0 perf: gather account api adjustment 2022-11-09 15:42:21 +08:00
fit2bot
6ef5154d4d fix: swagger (#9031)
Co-authored-by: feng <1304903146@qq.com>
2022-11-09 13:34:29 +08:00
ibuler
2d479d1ffa Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-09 11:44:38 +08:00
ibuler
71846241ae pref: 优化授权 api 返回字段 2022-11-09 11:43:55 +08:00
fit2bot
0ff8758ea8 perf: gather account automation api (#9029)
Co-authored-by: feng <1304903146@qq.com>
2022-11-08 20:33:55 +08:00
ibuler
d040b4cfe0 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-08 19:19:28 +08:00
ibuler
5730265183 pref: 修改 account secret_type 类型 2022-11-08 19:18:04 +08:00
fit2bot
ce9ebd94ec perf: change secret automation api (#9028)
Co-authored-by: feng <1304903146@qq.com>
2022-11-08 17:54:51 +08:00
Eric
e69bb9f83e perf: applet host accounts should be inactive by default 2022-11-08 17:54:04 +08:00
Jiangjie.Bai
5e52d04df3 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-08 14:30:16 +08:00
Jiangjie.Bai
cd93de4c00 perf: 优化 Connection Token API 逻辑处理 2022-11-08 14:30:07 +08:00
ibuler
ba38771d1a perf: 修改 applets related 2022-11-08 13:55:06 +08:00
ibuler
df14d01859 pref: 修改信号创建 accounts 2022-11-08 10:41:06 +08:00
ibuler
2e784311d3 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-07 20:41:55 +08:00
ibuler
afe6c8ebbd pref: 修改 applet host api 2022-11-07 20:41:18 +08:00
Eric
43e1417a25 perf: update tinker playbook 2022-11-07 19:18:12 +08:00
feng
a13527c5c8 perf: platform charset 2022-11-07 19:17:02 +08:00
Jiangjie.Bai
6812cbe314 perf: 优化优先使用系统设置中的 rdp_resolution 配置 2022-11-07 18:47:06 +08:00
feng
b4f511a7ff perf: account backup 2022-11-07 17:01:28 +08:00
fit2bot
1cc983b2eb perf: automation button (#9023)
Co-authored-by: feng <1304903146@qq.com>
2022-11-07 16:10:26 +08:00
ibuler
2705c38ba1 pref: 添加命令启动失败 debug 2022-11-07 10:47:06 +08:00
ibuler
045bc3661a Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-04 20:16:29 +08:00
ibuler
0fb96091cc perf: 优化代码速度 2022-11-04 20:15:31 +08:00
ibuler
4405064e78 pref: 添加 api debug timer 2022-11-04 20:14:19 +08:00
fit2bot
dca92a1e04 perf: push account (#9020)
Co-authored-by: feng <1304903146@qq.com>
2022-11-04 19:18:15 +08:00
Jiangjie.Bai
a255bd21b4 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-04 18:47:00 +08:00
Jiangjie.Bai
5447ee6c39 feat: 修改获取用户-资产授权的账号列表目录结构; 2022-11-04 18:46:49 +08:00
Jiangjie.Bai
3bba8e4043 fix: 修改翻译文件 2022-11-04 15:50:38 +08:00
Jiangjie.Bai
8abf954015 fix: 处理一波迁移文件 2022-11-04 15:36:45 +08:00
Jiangjie.Bai
1a77dc44cd fix: django.mo 2022-11-04 15:00:58 +08:00
fit2bot
13ae50f5d0 feat: 自定义MFA认证逻辑 (#8891)
* feat: 自定义MFA认证

* feat: 修改翻译信息

Co-authored-by: halo <wuyihuangw@gmail.com>
Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
2022-11-04 14:29:15 +08:00
jiangweidong
2029e9f8df feat: 重构操作日志 (#8941)
* feat:重构操作日志模块

* feat: 改密计划增加操作日志记录

* feat: 支持操作日志接入ES,且接口limit支持自定义限制大小

* feat:翻译

* feat: 生成迁移文件

* feat: 优化迁移文件

* feat: 优化多对多日志记录

* feat: 命令存储ES部分和日志存储ES部分代码优化

* feat: 优化敏感字段脱敏

Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
2022-11-04 14:22:38 +08:00
jiangweidong
1e97a23bc5 feat: 忘记密码支持手机短信找回,并修改邮箱方式和手机方式统一 (#8960)
* feat: 忘记密码支持通过手机找回,邮箱方式修改为和手机方式一致

* feat: 翻译

* feat: 修改翻译

* fix: 还原

Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
2022-11-04 13:56:55 +08:00
ibuler
037cd90f09 pref: 修改 migrations 2022-11-04 13:29:28 +08:00
ibuler
fbf65f437a merge: with merge remote 2022-11-04 11:43:34 +08:00
jiangweidong
262d070f3c feat: 支持纳管 clickhouse[Web Terminal] 2022-11-04 11:41:54 +08:00
ibuler
30106bdbbb perf: 修改组件状态 2022-11-04 11:40:16 +08:00
feng
1981bdd3ac perf: account serializer 2022-11-04 11:39:34 +08:00
feng
8b05bc4b82 perf: 多节点发送文件失败 2022-11-04 11:15:34 +08:00
dependabot[bot]
4ceaba60ed build(deps): bump django from 3.2.15 to 3.2.16 in /requirements
Bumps [django](https://github.com/django/django) from 3.2.15 to 3.2.16.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.2.15...3.2.16)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-04 11:13:51 +08:00
jiangweidong
40b7331ec0 feat: 支持网域网关应用改密-添加依赖 2022-11-04 11:13:07 +08:00
feng
e995e3b35a perf: change secret adjustment 2022-11-04 11:09:56 +08:00
jiangweidong
04cda3da0b feat: 云同步支持金山云 2022-11-04 11:09:02 +08:00
fit2bot
ebfc3b7b38 perf: change secret (#9014)
Co-authored-by: feng <1304903146@qq.com>
2022-11-03 22:39:48 +08:00
Eric
7560a5cd1f perf: deploy applet host 2022-11-03 18:03:46 +08:00
Jiangjie.Bai
ba1ce5fadb Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-03 16:58:41 +08:00
fit2bot
54f92e100e perf: account backup (#9013)
Co-authored-by: feng <1304903146@qq.com>
2022-11-03 16:57:34 +08:00
ibuler
b0ae9b47ca pref: 修改 applet host 2022-11-03 16:55:38 +08:00
Jiangjie.Bai
340d39d7f7 feat: 添加授权给用户所有账号列表的API 2022-11-03 16:41:51 +08:00
Eric
4bf147a93f perf: add remote app installer 2022-11-03 15:11:20 +08:00
feng
7087d5a74e perf: account specific 2022-11-03 12:42:57 +08:00
feng
0fdc30bed3 perf: account 2022-11-02 20:36:40 +08:00
ibuler
9b3b3d09da Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-02 20:36:28 +08:00
ibuler
0d2bfaa768 pref: 添加 applet host actions 2022-11-02 20:33:27 +08:00
feng
651c7ca152 perf: playbook specific 2022-11-02 19:25:39 +08:00
ibuler
cb57ae104b Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-02 19:07:17 +08:00
ibuler
23e44c49b5 pref: 修改 applet deployments 2022-11-02 19:07:07 +08:00
Eric
ab6ffda435 perf: terminal status 2022-11-02 19:06:08 +08:00
feng
0c259730ca perf: del surplus code 2022-11-02 17:45:30 +08:00
fit2bot
697b3fb860 perf: 自动化按钮 (#9008)
Co-authored-by: feng <1304903146@qq.com>
2022-11-02 17:27:47 +08:00
ibuler
956367cfed pref: applet detail api 支持 slug name 2022-11-02 15:01:52 +08:00
ibuler
f6fe673b28 perf: 修改 applet publications 2022-11-02 14:13:45 +08:00
ibuler
c8881d56ea pref: 修改 applets api 2022-11-02 11:08:13 +08:00
ibuler
60d07cb3e1 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-01 20:37:53 +08:00
ibuler
6ba4b750f2 perf: 修改 publications 2022-11-01 20:37:04 +08:00
Jiangjie.Bai
792686d7ae Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-01 19:55:59 +08:00
Jiangjie.Bai
0728868af2 feat: 添加API获取授权规则授权的所有账号列表 2022-11-01 19:55:49 +08:00
feng
0e5ebfad1c perf: gather asset info and test asset connectivity 2022-11-01 19:37:50 +08:00
Eric
1c9f754e27 perf: applet 添加 setup.yml 校验 2022-11-01 19:06:35 +08:00
ibuler
b159f16513 pref: 添加 applet download 2022-11-01 18:40:42 +08:00
jiangweidong
1951c595ed fix: 修改数据类型 2022-11-01 17:07:52 +08:00
jiangweidong
c74584f63c fix: Redis Sentinel参数类型问题,导致报错 2022-11-01 17:07:52 +08:00
ibuler
3bacd626e8 pref: 基本完成部署 2022-11-01 17:04:44 +08:00
ibuler
52662252a8 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-01 16:19:41 +08:00
ibuler
e6d845ae55 fix: 修复空库 migrate 的问题 2022-11-01 16:18:46 +08:00
feng
8231f727c2 perf: history account 2022-11-01 15:04:13 +08:00
jiangweidong
c295f44d9c perf: 支持部署在开启认证的Redis Sentinel 2022-11-01 14:55:33 +08:00
Jiangjie.Bai
0c15ac71f6 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-01 14:46:48 +08:00
Jiangjie.Bai
5c9d744094 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-01 14:30:56 +08:00
ibuler
c9b8c087c7 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-11-01 11:53:51 +08:00
ibuler
cf81f08b7a perf: 优化部署 host 2022-11-01 11:52:51 +08:00
feng
796758cbb2 perf: histories account 2022-11-01 11:43:29 +08:00
Jiangjie.Bai
2797baa4e5 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-31 20:16:21 +08:00
Aaron3S
41ee6a64bd Merge remote-tracking branch 'origin/v3' into v3 2022-10-31 19:29:50 +08:00
Aaron3S
5fa852c61d fix: 删除不管用的序列化字段 2022-10-31 19:28:15 +08:00
feng
5bd40fcd22 fix: swagger 2022-10-31 19:27:45 +08:00
Jiangjie.Bai
a5244ee68f Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-31 18:50:14 +08:00
Jiangjie.Bai
81e3809435 refactor: 修改 ConnectionToken API 结构 2022-10-31 18:47:12 +08:00
feng
4f2250b7a8 perf: gather account windows 2022-10-31 18:32:07 +08:00
feng
094e144a51 perf: history secret 2022-10-31 17:37:54 +08:00
jiangweidong
ead824a03c feat: 支持部署在Redis哨兵集群上 2022-10-31 14:34:53 +08:00
ibuler
8df15cb564 fix: 修复饮用 2022-10-31 14:29:42 +08:00
ibuler
db07cadd6e merge: with rmote 2022-10-31 11:22:47 +08:00
ibuler
d123c7f105 pref: 修改执行部署 2022-10-31 10:57:19 +08:00
feng
a11770e96d fix: automiation 2022-10-31 10:42:12 +08:00
ibuler
16e3604fcb merge: with remote 2022-10-28 19:12:37 +08:00
ibuler
f5fd674f08 pref: 修改 v3 2022-10-28 19:10:19 +08:00
feng
121ba1df07 perf: automations push ping verify 2022-10-28 18:34:12 +08:00
ibuler
12b74093e2 pref: 修改 applet host deploy 2022-10-28 18:19:44 +08:00
Eric
8f9eb64c8d perf: update playbook.yml 2022-10-28 17:32:47 +08:00
halo
50be7c6fc8 fix: rdp客户端拉起后窗口标题中文乱码 2022-10-28 16:29:28 +08:00
吴小白
85574b43ee perf: update playbook.yml 2022-10-28 16:28:55 +08:00
ibuler
994a484adb Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-28 16:26:00 +08:00
ibuler
084dcc7b44 pref: 修改 inventory 2022-10-28 16:25:16 +08:00
Jiangjie.Bai
bcd1d5585b refactor: ConnectionToken 修改 Model 和序列类 2022-10-28 15:58:05 +08:00
Jiangjie.Bai
2b5b4ad605 refactor: ConnectionToken 修改表字段名称 account -> account_username 2022-10-28 15:01:17 +08:00
ibuler
bd9afaba1e Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-27 20:24:01 +08:00
ibuler
a9eb4fa7dd pref: 修改 applet 2022-10-27 20:20:40 +08:00
Jiangjie.Bai
c80ef1afb1 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-27 20:06:27 +08:00
Jiangjie.Bai
3d616b01b0 refactor: ConnectionToken 添加 protocol 字段 2022-10-27 20:01:50 +08:00
Aaron3S
53b0041b09 feat: celery task api 2022-10-27 19:25:48 +08:00
Aaron3S
da911651aa feat: celery task api 2022-10-27 19:23:15 +08:00
feng
4ab14b4a59 perf: migrat 2022-10-27 19:08:51 +08:00
feng
2355d1af83 perf: gather accounts 2022-10-27 18:53:10 +08:00
ibuler
097ebc2362 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-27 18:34:34 +08:00
ibuler
c0540e6787 pref: 修改 celery 2022-10-27 18:34:25 +08:00
Jiangjie.Bai
bb01a60fc1 refactor: 修改 authentication models 目录 2022-10-27 17:20:31 +08:00
Jiangjie.Bai
e4d372be32 fix: 修改默认组织 builtin 字段处理问题 2022-10-27 16:49:22 +08:00
ibuler
28f4905a81 pref: 修改 applet host 2022-10-27 16:26:15 +08:00
Jiangjie.Bai
5d37d1b7b1 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-27 15:48:02 +08:00
Jiangjie.Bai
a260da6cec refactor: 修改 ConnectionToken 关联的逻辑(1) 2022-10-27 15:47:05 +08:00
ibuler
1239247b5a pref: 修改删掉 connection token type 2022-10-26 17:56:37 +08:00
ibuler
8f88b898d0 pref: 修改 migrations 2022-10-26 17:38:32 +08:00
ibuler
651228795e pref: 修改 migrations 2022-10-26 17:25:57 +08:00
ibuler
c55f068258 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-26 17:22:39 +08:00
ibuler
99e4836311 pref: 添加 deploy playbook 2022-10-26 17:21:52 +08:00
Aaron3S
3977b81ea1 Merge remote-tracking branch 'origin/v3' into v3 2022-10-26 17:20:55 +08:00
Jiangjie.Bai
bd001bb262 refactor: 修改 ConnectionToken 表结构 2022-10-26 16:16:12 +08:00
Jiangjie.Bai
fb6f51b9cb merge: dev 2022-10-26 16:15:22 +08:00
Jiangjie.Bai
13279c9d2a refactor: 修改 ConnectionToken 表结构 2022-10-26 16:09:07 +08:00
Aaron3S
77436724b4 Merge remote-tracking branch 'origin/v3' into v3 2022-10-25 20:10:06 +08:00
ibuler
e327c97170 pref: 修改迁移文件 2022-10-25 20:09:05 +08:00
Aaron3S
c10d7f554e Merge remote-tracking branch 'origin/v3' into v3 2022-10-25 20:05:47 +08:00
Aaron3S
e7a114a31d feat: celery 任务api 2022-10-25 20:02:23 +08:00
ibuler
c018055d5f pref: 修改migrations 2022-10-25 19:58:14 +08:00
ibuler
350c9e4a80 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-25 19:38:40 +08:00
ibuler
82aca6b843 pref: 修改 applet 2022-10-25 19:31:13 +08:00
Jiangjie.Bai
11eb505c78 refactor: 修改 ConnectionToken 表结构 2022-10-25 19:10:12 +08:00
Jiangjie.Bai
901270e6ad Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-25 18:45:33 +08:00
Jiangjie.Bai
6ed946541d merge: local 2022-10-25 18:45:13 +08:00
feng
4dd4c29e12 perf: gather facts 2022-10-25 18:43:34 +08:00
Aaron3S
2509b801c6 Merge remote-tracking branch 'origin/v3' into v3
# Conflicts:
#	apps/rbac/const.py
2022-10-25 18:09:26 +08:00
feng
a445e47f3d perf: account add platform_id 2022-10-25 15:07:51 +08:00
feng
d95ced5109 fix: 修复change account perm 问题 2022-10-25 14:26:56 +08:00
ibuler
8fd6cabcab Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-25 13:00:20 +08:00
ibuler
5606082ca3 pref: 添加 applet 创建 api 2022-10-25 12:57:34 +08:00
feng
f743dea1fd perf: mysql postgresql 2022-10-24 20:24:56 +08:00
Aaron3S
64e03a4412 feat: 增加异步任务api 2022-10-24 20:14:18 +08:00
ibuler
1372d6322d perf: 合并代码 2022-10-22 11:37:51 +08:00
ibuler
943b130035 feat: 添加远程应用 2022-10-22 11:17:02 +08:00
feng
64daacce63 fix: 修复自动化修改密码bug 2022-10-21 18:19:09 +08:00
feng
091bffa626 perf: automation change secret linux 2022-10-21 11:24:05 +08:00
Jiangjie.Bai
bab4562820 Merge pull request #8980 from jumpserver/dev
v2.27.0
2022-10-20 20:39:39 +08:00
ibuler
3e7004d784 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-20 20:35:34 +08:00
ibuler
c6dfc06003 perf: 修改翻译 2022-10-20 20:34:44 +08:00
feng
7255cf68a9 perf: automation change secret linux 2022-10-20 20:34:15 +08:00
ibuler
168de45da5 pref: 优化 device api 2022-10-20 20:06:58 +08:00
Jiangjie.Bai
104dd9721b perf: 优化smart匹配数据库端口数量失败时的错误提示信息 2022-10-20 17:38:15 +08:00
Jiangjie.Bai
cdcfdeefc5 perf: 优化smart匹配数据库端口数量失败时的错误提示信息 2022-10-20 17:38:15 +08:00
ibuler
a450ceee91 pref: 修改 migrations 名称 2022-10-20 16:44:15 +08:00
ibuler
ef04e6ffcc Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-20 16:39:55 +08:00
ibuler
c55d3c0b6c perf: 添加 histories 2022-10-20 16:39:11 +08:00
Jiangjie.Bai
613a7d63b5 Merge pull request #8973 from jumpserver/dev
v2.27.0-rc5
2022-10-19 20:30:13 +08:00
Jiangjie.Bai
c6a3a141bb perf: 优化Magnus Ports端口映射配置项 2022-10-19 20:14:20 +08:00
feng
26278cc9e0 perf: change secret automation 2022-10-19 18:58:45 +08:00
ibuler
1a2193d091 perf: 资产 api 返回特有属性 2022-10-19 18:56:46 +08:00
Jiangjie.Bai
93e5a0ba5c fix: 修改初始化 DB Port Mapper 时的日志输出 2022-10-19 17:54:10 +08:00
ibuler
eb16e3c7cb perf: 修改翻译 2022-10-19 14:56:27 +08:00
ibuler
076afb2b8b pref: 修改 automations 2022-10-19 11:39:11 +08:00
ibuler
d6e36c873d pref: 修改 filter 2022-10-19 10:21:05 +08:00
Jiangjie.Bai
129c0e1bf4 Merge pull request #8968 from jumpserver/dev
v2.27.0-rc4
2022-10-18 20:48:37 +08:00
ibuler
8c92a9934b Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-18 20:38:03 +08:00
ibuler
9b44ed55c2 pref: 修改 secret encrypt 2022-10-18 20:37:17 +08:00
Jiangjie.Bai
62c57d2fdf fix: 修复创建目录时指定权限为 755 2022-10-18 18:09:57 +08:00
Jiangjie.Bai
4711813af8 fix: 修复创建目录时指定权限为 755 2022-10-18 18:09:57 +08:00
Jiangjie.Bai
152749c872 refactor: 重构资产授权工具、资产授权账号工具类;删除Model中的处理逻辑;增加用户组、资产授权账号的获取方式 2022-10-18 16:42:32 +08:00
Jiangjie.Bai
2c04ad6465 refactor: 重构资产授权工具、资产授权账号工具类 2022-10-18 16:04:45 +08:00
Jiangjie.Bai
c41e0148d9 refactor: 重构资产授权工具、资产授权账号工具类 2022-10-18 15:21:44 +08:00
Jiangjie.Bai
384873b4cb Merge pull request #8964 from jumpserver/dev
v2.27.0-rc3
2022-10-18 11:19:59 +08:00
fit2bot
33860bb955 fix: 修复资产详情 查看授权用户500问题 (#8963)
Co-authored-by: 小冯 <xiaofeng@xiaofengdeMacBook-Pro.local>
2022-10-18 10:51:51 +08:00
feng
1b795791de fix: swagger 500 2022-10-18 10:43:51 +08:00
feng
4f16c1f92c fix: account init 500 2022-10-17 17:56:19 +08:00
ibuler
6a33129349 pref: 完成收集资产信息任务 2022-10-17 11:22:21 +08:00
ibuler
4e8e4e4bb7 pref: 修改添加 gather facts 2022-10-14 19:40:51 +08:00
ibuler
10c0cc7abf Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-14 19:01:15 +08:00
ibuler
75ec9d4173 perf: 添加 gather facts automation 2022-10-14 18:59:28 +08:00
Jiangjie.Bai
6a32ac4699 refactor: 继续授权添加授权账号工具 2022-10-14 17:53:54 +08:00
Jiangjie.Bai
c79c3f8aec Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-14 17:01:44 +08:00
Jiangjie.Bai
0e67739173 refactor: 授权添加授权账号工具,实现获取授权用户某个资产账号的功能 2022-10-14 17:01:36 +08:00
ibuler
37d845390b Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-14 16:34:14 +08:00
ibuler
4e2aebde6c perf: 修改改密 2022-10-14 16:33:24 +08:00
Jiangjie.Bai
2d893c4a6a refactor: 获取授权规则授权的所有账号对象 2022-10-14 14:56:38 +08:00
Jiangjie.Bai
9e410bb389 Merge pull request #8962 from jumpserver/dev
v2.27.0-rc2
2022-10-14 11:00:50 +08:00
吴小白
db2ab1513e fix: 修正龙芯架构缺失依赖包 2022-10-14 10:59:06 +08:00
Jiangjie.Bai
18e525c943 fix: 修改命令过滤器权限 2022-10-14 10:58:06 +08:00
ibuler
f2f75add8e Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-13 20:36:42 +08:00
ibuler
0a65b9de8e perf: 重构 playbook base runner 2022-10-13 20:28:18 +08:00
Jiangjie.Bai
0f8668fee9 refactor: 删除资产授权Model中不使用的方法 2022-10-13 20:14:04 +08:00
Jiangjie.Bai
9337463471 Merge pull request #8957 from jumpserver/dev
v2.27.0-rc1
2022-10-13 19:03:33 +08:00
Jiangjie.Bai
8fdd89e67c fix: 修复初始化DB port mapper的逻辑 2022-10-13 19:01:09 +08:00
fit2bot
c7882a615f perf: 升级依赖 (#8955)
Co-authored-by: feng626 <1304903146@qq.com>
2022-10-13 18:24:57 +08:00
Jiangjie.Bai
d52baf0af5 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-13 18:19:56 +08:00
Jiangjie.Bai
b74ec48393 refacotr: 拆分授权模块的目录结构 2022-10-13 18:19:18 +08:00
ibuler
52fb55e806 pref: 修改改密 2022-10-13 17:52:25 +08:00
ibuler
8c91cd7eb6 perf: 修改改密 2022-10-13 17:47:29 +08:00
Jiangjie.Bai
e6d50cc8b4 Merge pull request #8951 from jumpserver/dev
v2.27.0-rc1
2022-10-13 15:05:53 +08:00
“huailei000”
3bd7410ab8 perf: update jquery 2022-10-13 14:44:36 +08:00
老广
c610ec797f docs: Change README description
Well
2022-10-13 13:55:34 +08:00
ibuler
85a6f29a0a perf: 修改 playbook 任务执行 2022-10-12 18:08:57 +08:00
Jiangjie.Bai
188a2846ed fix: 修复 OAuth2 用户本地被禁用后,页面一直跳转的问题. 2022-10-11 18:46:05 +08:00
Jiangjie.Bai
df99067ee3 perf: 删除消息订阅时 websocket 重连的 redis 断开日志 2022-10-11 16:40:12 +08:00
feng626
22e211625e fix: platform 500 2022-10-11 10:50:39 +08:00
ibuler
21816e3a39 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-10 20:56:55 +08:00
ibuler
9198c93fcf perf: 修改 ansible change password 2022-10-10 20:56:13 +08:00
feng626
6e0d211645 perf: automation migrate 2022-10-10 17:08:06 +08:00
ibuler
1d757ec19a pref: 修改改密 2022-10-10 16:56:32 +08:00
ibuler
9a0bae5bfd perf: 修改 ansible 执行 2022-10-10 16:56:32 +08:00
ibuler
4e5a7a0a25 perf: 修改改密 2022-10-10 16:56:32 +08:00
ibuler
f921f12171 perf: 修改 adhoc 2022-10-10 16:56:32 +08:00
ibuler
a543a2ee37 perf: 基本完成 adhoc runner 2022-10-10 16:56:32 +08:00
ibuler
0fb4b52232 perf: 修改 ansible 表结构 2022-10-10 16:56:32 +08:00
ibuler
df5e63b3be perf: 修改 ansible 逻辑 2022-10-10 16:56:32 +08:00
ibuler
41589c5305 perf: 修改 ansible 2022-10-10 16:56:32 +08:00
feng626
ca17faaf01 fix: 修复创建工单无备注信息bug 2022-10-10 16:55:56 +08:00
Jiangjie.Bai
cd847c483a Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-10-10 16:31:55 +08:00
Jiangjie.Bai
145814f1e8 perf: 统一后台定时任务的crontab表达式, 对于后台定时执行的任务更加清晰 2022-10-10 16:31:45 +08:00
feng626
e330776ab1 fix: ticket nothing comment bug 2022-10-10 15:17:51 +08:00
feng626
a487d30001 perf: 密码首位不包含特殊字符 2022-10-09 20:21:26 +08:00
Jiangjie.Bai
fae5d07df6 feat: 优化命令过滤器支持关联节点; 2022-10-09 19:53:34 +08:00
Jiangjie.Bai
df31f47c68 feat: 命令过滤器支持关联节点; 添加端点规则迁移文件 2022-10-09 19:01:11 +08:00
feng626
cd98ec4cac perf: account history record only secret 2022-10-09 17:52:41 +08:00
evlic
d1acab3aa9 docs: fix README ambiguity 2022-10-08 15:47:11 +08:00
Jiangjie.Bai
237e7b22fb feat: 优化账号actions设置逻辑 2022-09-30 16:28:44 +08:00
Jiangjie.Bai
881c0a6042 feat: 修复获取用户授权的资产账号列表 2022-09-30 16:08:28 +08:00
Jiangjie.Bai
79a21bbc08 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-29 20:42:08 +08:00
Jiangjie.Bai
14f48c459c feat: 授权规则创建 2022-09-29 20:41:40 +08:00
吴小白
15363a7f72 perf: 更新缓存规则 2022-09-29 20:21:15 +08:00
吴小白
d573ade525 fix: 修复使用缓存构建 2022-09-29 20:21:15 +08:00
feng626
b2991362f1 perf: 查看用户授权 2022-09-29 18:01:23 +08:00
Jiangjie.Bai
76747642c4 feat: 删除授权模块中关于系统用户的API 2022-09-29 17:38:27 +08:00
吴小白
7ac00d5fdf perf: 多步骤构建 2022-09-29 17:05:20 +08:00
吴小白
2f6c9f8260 perf: 清理不需要的缓存 2022-09-29 17:05:20 +08:00
吴小白
41732d7a7b perf: 不需要清理缓存 2022-09-29 17:05:20 +08:00
吴小白
28d19fd91f perf: 构建时使用缓存 2022-09-29 17:05:20 +08:00
Jiangjie.Bai
fd0ce0d1c6 feat: 添加一些注释信息 2022-09-29 16:36:28 +08:00
Jiangjie.Bai
ba3af280d5 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-29 16:18:20 +08:00
Jiangjie.Bai
4a1aeefb82 feat: 完成用户、用户组对于授权账号的API获取 2022-09-29 16:18:12 +08:00
feng626
ec0c334acc perf: account search 2022-09-29 14:44:27 +08:00
feng626
da35e931a2 perf: 更新平台username passwd submit selector可为空 2022-09-29 14:19:14 +08:00
Jiangjie.Bai
15c8c035aa Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-28 18:47:44 +08:00
Jiangjie.Bai
351d3b297d fix: 修复用户授权资产账号API及Model处理逻辑 2022-09-28 18:40:33 +08:00
Jiangjie.Bai
65269db849 fix: 修复es存储失效时,会话命令列表页面报错的问题 2022-09-28 17:03:22 +08:00
Jiangjie.Bai
df2858470a fix: 修复命令存储es失效时, 会话、命令记录列表创建和查看失败的问题 2022-09-28 17:03:22 +08:00
吴小白
1c8ad40565 perf: 优化语言包生成方式 2022-09-28 14:49:07 +08:00
吴小白
78de2a2403 feat: 添加 Dockerfile.loong64 2022-09-28 14:49:07 +08:00
ibuler
cf69caaade perf: 修改 ansible runner 版本 2022-09-28 14:17:49 +08:00
ibuler
08bc9c7af8 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-28 12:11:21 +08:00
ibuler
2a9613d90a perf: 修改 asset serializer 2022-09-28 12:10:39 +08:00
Jiangjie.Bai
e3b138be3a Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-27 16:14:48 +08:00
Jiangjie.Bai
0eccd313ff fix: 锁定依赖包版本 pyOpenSSL==22.0.0 2022-09-27 16:14:18 +08:00
Jiangjie.Bai
218f917f69 fix: 锁定依赖包版本 pyOpenSSL==22.0.0 2022-09-27 15:47:23 +08:00
Aaron3S
bb25bf7621 fix: 修改解密异常抛出范围 2022-09-27 15:46:36 +08:00
Aaron3S
f6cc7046a2 fix: 修复空字符串加密报错的问题 2022-09-27 11:28:11 +08:00
ibuler
72b0fb4274 perf: 修改 platform 支持设置 ansible 2022-09-26 18:03:48 +08:00
Aaron3S
1bc6e50b06 perf: 优化去除结尾空字节的写法 2022-09-26 15:29:53 +08:00
吴小白
1d3135d2d7 perf: flower 开启持久化 2022-09-26 14:42:08 +08:00
Aaron3S
308d87d021 feat: 增加PIICO设备配置项 2022-09-26 14:40:48 +08:00
Aaron3S
db04f6ca18 feat: 增加国密配置项 2022-09-26 14:40:48 +08:00
Aaron3S
a7cd0bc0fe fix: 修复密码后空格的问题 2022-09-26 14:39:15 +08:00
ibuler
00e1dd6996 fix: remote gateway filter address 2022-09-26 11:01:21 +08:00
ibuler
6ed3b51928 perf: 优化 serailizer 统一到 drf 目录中 2022-09-26 10:43:18 +08:00
ibuler
f223cf43cc Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-23 19:00:09 +08:00
ibuler
234acd6317 perf: 修改 accounts 2022-09-23 18:59:19 +08:00
Jiangjie.Bai
399c6285f8 feat: 获取 用户、资产授权的所有账号API, 返回@INPUT、@USER等内部账号 2022-09-23 15:59:37 +08:00
Jiangjie.Bai
65b942ffa4 feat: 修改 Permission filter 方法名 2022-09-23 14:45:09 +08:00
ibuler
286d0e4ac1 perf: 修改 migrations 2022-09-23 10:53:44 +08:00
ibuler
3a884388cd perf: 修改名称 2022-09-23 10:38:28 +08:00
ibuler
8f31a25fda perf: 优化迁移文件 2022-09-23 10:15:07 +08:00
Jiangjie.Bai
24708a6c5e feat: 优化 端口范围显示为 30000-30999 2022-09-22 19:23:39 +08:00
Jiangjie.Bai
55a10a8d1d feat: 优化 DBPortManger 处理 port 的数据类型 2022-09-22 19:23:39 +08:00
Jiangjie.Bai
32b6a1f1a4 feat: 修改翻译信息 2022-09-22 19:23:39 +08:00
Jiangjie.Bai
c1c70849e9 feat: 修改 DBPortMapper 异常处理问题; DBListenPort API 迁移至 terminal app 中 2022-09-22 19:23:39 +08:00
Jiangjie.Bai
7a6ed91f62 feat: 添加翻译信息 2022-09-22 19:23:39 +08:00
Jiangjie.Bai
497a52a509 feat: 修改 DBPortManager 处理逻辑 2022-09-22 19:23:39 +08:00
Jiangjie.Bai
57e12256e7 feat: 修改 Endpoint 获取 Manugs DB listen port 的逻辑 2022-09-22 19:23:39 +08:00
Jiangjie.Bai
b8ec60dea1 feat: 优化 DB Listen Port 映射规则逻辑 2022-09-22 19:23:39 +08:00
Jiangjie.Bai
c9afd94714 feat: 优化 DB Listen Port 映射规则逻辑 2022-09-22 19:23:39 +08:00
Jiangjie.Bai
a0c61ab8cb feat: 增加 DB Listen Port 映射规则 2022-09-22 19:23:39 +08:00
ibuler
a35e0c5efa perf: 创建内置 platforms 2022-09-22 16:39:41 +08:00
ibuler
68ed3ac1a8 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-22 15:25:12 +08:00
ibuler
cc859f302a perf: 优化 asset migrations 2022-09-22 15:24:32 +08:00
feng626
33948d614b perf: ip -> address 2022-09-22 15:14:55 +08:00
ibuler
21a60bf55e perf: change cateogory data strucature 2022-09-21 20:13:28 +08:00
ibuler
ea1cb158b5 perf: add charset control 2022-09-21 19:03:06 +08:00
feng626
567b62516a fix: reset ssh url problem 2022-09-21 18:35:06 +08:00
feng626
ffdb3f3b83 perf: ticket 2022-09-21 18:34:51 +08:00
吴小白
404fadd899 fix: 修复 redis 异常后 celery 旧任务不执行的问题 2022-09-21 18:33:35 +08:00
ibuler
ee1ec6aeee fix: 修复 celery 丢失心跳不会重连的问题 2022-09-21 18:33:35 +08:00
老广
783bddf2c7 perf: remove lgtm action
chore: remove lgtm action
2022-09-21 14:34:50 +08:00
ibuler
5ae49295e9 chore: remove lgtm action 2022-09-21 14:32:24 +08:00
老广
8d6d188ac7 perf: update some commit msg
perf: download ipdb if not found (maybe without lfs)
2022-09-21 14:29:56 +08:00
ibuler
912ff3df24 perf: download ipdb if not found (maybe without lfs) 2022-09-21 14:28:01 +08:00
ibuler
995d8cadb9 fix: warning after reboot 2022-09-21 14:27:09 +08:00
ibuler
6e5cea49ae perf: remove unused config 2022-09-21 14:26:05 +08:00
ibuler
a33a452434 chore: add english version secrity info 2022-09-21 14:25:07 +08:00
ibuler
fe2f54fcf6 chore: upgrade GPL to v3 2022-09-21 14:24:25 +08:00
ibuler
1e3154d9b6 pref: add openssh client to dockerfile 2022-09-21 14:23:24 +08:00
ibuler
a1c09591d3 chore: change contributing content 2022-09-21 14:22:31 +08:00
ibuler
d4e0a51a08 perf: set data dir to ignore 2022-09-21 14:21:42 +08:00
ibuler
bba4c15d6d perf: add ipdb to git lfs 2022-09-21 14:20:48 +08:00
ibuler
3e33c74b64 perf: add .git for ignore 2022-09-21 14:20:03 +08:00
ibuler
556d29360e pref: add debug tool bar 2022-09-21 14:18:59 +08:00
ibuler
9329a1563c chore: keep dir git 2022-09-21 14:17:38 +08:00
老广
8bf11c9ade perf: some commit tips
perf: some commit tips
2022-09-21 14:13:12 +08:00
ibuler
bbb802d894 Merge branch 'dev' of github.com:jumpserver/jumpserver into dev 2022-09-21 14:09:57 +08:00
ibuler
8e7226d9dc pref: change run_server script 2022-09-21 14:09:28 +08:00
ibuler
2bd889e505 chore: add english readme 2022-09-21 14:07:23 +08:00
ibuler
3dcfd0035a chore: add code of conduct 2022-09-21 14:06:46 +08:00
ibuler
edfda5825c chore: keep dir on git 2022-09-21 14:05:47 +08:00
ibuler
3a196f0814 chore: keep log dir on git 2022-09-21 14:05:04 +08:00
ibuler
a4a671afd4 docs: redirect to doc site 2022-09-21 14:04:16 +08:00
ibuler
c337bbff8f perf: remove old warning msg 2022-09-21 14:02:47 +08:00
ibuler
e498a645d3 perf: 修改文案 2022-09-21 14:01:24 +08:00
ibuler
584ce0afe3 perf: 修改迁移文件 2022-09-21 13:42:12 +08:00
ibuler
1b0195cb82 perf: 修改 asset 结构 2022-09-21 11:17:14 +08:00
ibuler
cf5c50b343 perf: 优化平台协议 2022-09-20 21:19:05 +08:00
ibuler
79ce1215f5 merge: with remote branch 2022-09-20 17:47:40 +08:00
ibuler
d0999dd1ef perf: 优化平台创建约束 2022-09-20 17:33:15 +08:00
feng626
615f36c6f6 perf: 收集账号 2022-09-20 16:18:23 +08:00
ibuler
8c72bab82d perf: 优化 account 结构 2022-09-20 13:54:25 +08:00
ibuler
9e84989bbe merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-19 20:12:23 +08:00
ibuler
5d48d1ab15 perf: stash it 2022-09-19 20:11:55 +08:00
feng626
7b4c2ce97e perf: xpack problem 2022-09-19 19:04:57 +08:00
feng626
108ccf5a8b perf: 账号管理api 2022-09-19 17:00:03 +08:00
老广
863140e185 Merge pull request #8733 from jumpserver/dependabot/pip/requirements/django-3.2.15
build(deps): bump django from 3.2.14 to 3.2.15 in /requirements
2022-09-19 10:14:54 +08:00
老广
ad0d264c2a Merge pull request #8859 from jumpserver/dependabot/pip/requirements/flower-1.2.0
build(deps): bump flower from 1.0.0 to 1.2.0 in /requirements
2022-09-19 10:14:26 +08:00
老广
7f85e503d5 Merge pull request #8870 from QuentinM-Hilbtec/saml_fix
Fix issue #8287 with blank SAML's RelayState
2022-09-19 10:13:22 +08:00
ibuler
762d84b5c3 merge: with remote 2022-09-19 09:59:43 +08:00
ibuler
fa28bfc659 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-19 09:55:41 +08:00
ibuler
b50d28ff9c perf: 暂存修改 2022-09-19 09:52:09 +08:00
ibuler
65331e13ac pref: 优化平台 2022-09-19 00:07:59 +08:00
Quentin Machu
61ff3db0f1 fix: address issue #8287 with blank SAML's RelayState 2022-09-16 13:51:40 -04:00
feng626
389094f615 perf: 账号备份 2022-09-16 17:24:27 +08:00
ibuler
a86d5c1456 perf: 修改 models 2022-09-16 11:45:50 +08:00
ibuler
1d1b252e58 perf: 解决冲突 2022-09-15 21:23:00 +08:00
ibuler
9b2acfe4a4 perf: 优化平台 2022-09-15 21:20:56 +08:00
feng626
a4d0ef3706 perf: verify ansible linux 2022-09-15 21:14:14 +08:00
feng626
139540fafe perf: 修改change password linux ansible yaml 2022-09-15 19:53:26 +08:00
ibuler
e0e14a2fe1 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-15 16:44:29 +08:00
ibuler
9edd786bb4 perf: 修改 platform 表结构 2022-09-15 16:22:01 +08:00
Jiangjie.Bai
572f03d844 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-15 10:47:05 +08:00
Jiangjie.Bai
d23446016d refactor: 添加授权相关的获取资产账号API、Model method 2022-09-15 10:46:57 +08:00
ibuler
37bbf75f66 perf: 修改数据库迁移文件 2022-09-14 20:55:14 +08:00
dependabot[bot]
ca965aca9e build(deps): bump flower from 1.0.0 to 1.2.0 in /requirements
Bumps [flower](https://github.com/mher/flower) from 1.0.0 to 1.2.0.
- [Release notes](https://github.com/mher/flower/releases)
- [Commits](https://github.com/mher/flower/compare/v1.0.0...v1.2.0)

---
updated-dependencies:
- dependency-name: flower
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-13 23:07:48 +00:00
ibuler
ae189ebdfe perf: 修改 account serializer 2022-09-13 21:18:04 +08:00
ibuler
4fcbdfa3f4 perf: 优化 account 添加 name 2022-09-13 21:07:20 +08:00
ibuler
c1ad072736 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-13 16:39:49 +08:00
Jiangjie.Bai
a2c006f01b perf: 整理用户授权资产的API 2022-09-13 15:41:39 +08:00
Jiangjie.Bai
4a21f86cd1 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-13 14:23:35 +08:00
ibuler
9a734e7069 perf: 修改结构 2022-09-13 14:06:25 +08:00
ibuler
3e794ec41a perf: 修改 serializer 2022-09-13 10:41:49 +08:00
ibuler
6bf7f7cb48 perf: 修改 migrations 2022-09-09 19:17:25 +08:00
ibuler
910eaf1228 perf: 修改 web 表结构 2022-09-09 19:07:45 +08:00
ibuler
f6fdc258b1 perf: 修改 playbook 目录结构 2022-09-09 15:47:40 +08:00
ibuler
894f153638 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-09 11:00:18 +08:00
ibuler
aed7b32d6c perf: 修改 assets api 2022-09-09 11:00:09 +08:00
Jiangjie.Bai
6f71989553 perf: 下一步整理授权模块所有 API 的继承关系 2022-09-08 20:46:56 +08:00
Jiangjie.Bai
da772b572a fix: 授权 API 顺序整理 2022-09-08 20:31:57 +08:00
ibuler
25bded69ab perf: 修改平台和资产 2022-09-08 20:31:04 +08:00
Jiangjie.Bai
ca6b8ee960 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-08 10:43:29 +08:00
ibuler
706488d293 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-08 10:04:32 +08:00
ibuler
50cf40eaeb perf: 完美解决 accounts 创建 2022-09-07 20:24:48 +08:00
ibuler
e9bb5223eb perf: 修改 platforms 2022-09-07 20:01:04 +08:00
feng626
b910180a12 自动化策略 表 2022-09-07 19:49:42 +08:00
Jiangjie.Bai
746c6e4242 fix: 修改资产、授权创建时的小问题 2022-09-07 18:33:34 +08:00
Jiangjie.Bai
f633a50f8e Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-07 17:36:24 +08:00
Jiangjie.Bai
a27aeca2fd refactor: 修改授权相关Model,Serializer,API结构 2022-09-07 17:35:23 +08:00
ibuler
56abf0da23 pref: 修改平台协议配置 2022-09-07 17:12:53 +08:00
ibuler
585ce6b46a perf: 修改表结构 2022-09-06 19:57:03 +08:00
dependabot[bot]
7bd7be78a4 build(deps): bump django from 3.2.14 to 3.2.15 in /requirements
Bumps [django](https://github.com/django/django) from 3.2.14 to 3.2.15.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.2.14...3.2.15)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-06 07:50:20 +00:00
ibuler
984b8dfb28 perf: 修改 m2m 日志记录 2022-09-06 13:27:47 +08:00
ibuler
deba0c9057 feat: 支持 py3.9 2022-09-05 20:25:37 +08:00
ibuler
0011823789 perf: 去掉 pymysql, mysqlclie已支持 m1 2022-09-05 20:06:41 +08:00
广宏伟
4276ddc2cc perf: 修改脚步 2022-09-05 18:50:33 +08:00
ibuler
d9663036f8 perf: revert csrf token project 2022-09-05 13:07:20 +08:00
ibuler
305e9bd0ea Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-09-05 12:49:49 +08:00
ibuler
2354650b82 perf: 暂时去掉 csrf token 2022-09-05 12:47:01 +08:00
feng626
757e688ab3 账号备份优化 2022-09-04 16:33:36 +08:00
ibuler
7ae395f7e8 perf: 修改 metadata 2022-09-01 21:00:04 +08:00
ibuler
81219e1e7c pref: 添加各种 field 2022-09-01 17:42:48 +08:00
ibuler
d7d9fe2718 perf: 修改 model 2022-09-01 14:46:31 +08:00
ibuler
4947b0d8fd Merge remote-tracking branch 'origin/v3' into v3 2022-09-01 10:41:23 +08:00
feng626
94f898b55d login asset acl 2022-09-01 10:37:22 +08:00
ibuler
2ede152663 Merge remote-tracking branch 'origin/v3' into v3
# Conflicts:
#	apps/assets/api/platform.py
2022-08-31 11:55:30 +08:00
feng626
60eb385c1e 账号过滤 2022-08-31 11:42:20 +08:00
ibuler
728dc43b6c perf: 修改 fields 支持 display choices 2022-08-31 10:06:16 +08:00
ibuler
ffd08eef74 Merge remote-tracking branch 'origin/v3' into v3 2022-08-30 19:48:10 +08:00
feng626
d5c13df6be 补全资产api 2022-08-30 17:29:54 +08:00
ibuler
8020881e22 Merge remote-tracking branch 'origin/v3' into v3 2022-08-30 16:09:43 +08:00
Jiangjie.Bai
f81805f361 fix: 删除perms application多余文件 2022-08-30 15:43:29 +08:00
ibuler
9e7435f1c0 perf: 解决冲突 2022-08-30 14:15:41 +08:00
ibuler
5c73cb9b4e perf: 修改 v3 2022-08-30 14:13:33 +08:00
feng626
62f8fac392 修复迁移文件 2022-08-30 14:09:45 +08:00
ibuler
b16e8ef1a5 Merge remote-tracking branch 'origin/v3' into v3
# Conflicts:
#	apps/tickets/migrations/0018_applyapplicationticket_apply_actions.py
#	apps/tickets/migrations/0018_auto_20220728_1125.py
2022-08-30 14:09:42 +08:00
feng626
28541c48f7 修复迁移文件 2022-08-30 14:00:20 +08:00
ibuler
8921dc9ac3 Merge remote-tracking branch 'origin/v3' into v3 2022-08-30 13:33:08 +08:00
feng626
3ee8cdbe88 修复迁移文件 2022-08-30 12:50:01 +08:00
ibuler
585f0c64cd perf: 修改 v3 2022-08-30 11:56:56 +08:00
ibuler
951d4e4e0d perf: 合并冲突 2022-08-30 10:07:03 +08:00
ibuler
c950508873 Merge remote-tracking branch 'origin/v3' into v3 2022-08-29 20:11:21 +08:00
feng626
794ec39446 修复备份bug 2022-08-29 19:59:00 +08:00
feng626
ca3d2271a8 merge v3 2022-08-29 19:53:04 +08:00
feng626
3e1c832964 账号备份 2022-08-29 19:49:45 +08:00
ibuler
f35cef7abb perf: 修改校验方式 2022-08-29 16:19:37 +08:00
ibuler
a0b6849ccb perf: 优化 platform 2022-08-29 15:50:25 +08:00
ibuler
5358f35c08 perf: 修改 host info 2022-08-29 10:49:53 +08:00
ibuler
b7075b5378 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-08-24 19:34:32 +08:00
ibuler
bb6b9e6f6e pref: 修改创建 platform 2022-08-24 19:32:49 +08:00
feng626
d441f04a6c Merge remote-tracking branch 'origin/v3' into v3 2022-08-24 16:39:25 +08:00
feng626
76390d013e 账号模版 2022-08-24 16:36:42 +08:00
ibuler
063c42b94d perf: 修改 terminal session 2022-08-24 16:14:32 +08:00
ibuler
dca1388a67 perf: 修改依赖 2022-08-24 14:23:42 +08:00
ibuler
cd8adc6d3d perf: 修改 migrations 2022-08-24 10:57:44 +08:00
ibuler
83bd8b600e perf: 添加 __init__.py 2022-08-23 19:26:47 +08:00
ibuler
b1c563b309 fix: 修改 perms tasks 引用的 application 2022-08-23 19:15:48 +08:00
ibuler
1e57a0eb1f perf: merge v3 2022-08-23 10:26:43 +08:00
ibuler
ab46194039 perf: 修改 导入 2022-08-23 10:23:48 +08:00
feng626
97c6e2c0b2 修复migrate bug 2022-08-22 18:48:07 +08:00
ibuler
09607a1885 perf: 修改 perms 2022-08-22 18:32:33 +08:00
ibuler
f0c9c2b1ad perf: 添加生成 platform 2022-08-22 15:23:28 +08:00
ibuler
dd0b8e988c perf: stash it 2022-08-22 13:25:57 +08:00
feng626
a7d193464e 添加 choices 获取 label方法 2022-08-22 11:47:45 +08:00
feng626
fe4df4b179 fix: 修复swagger 2022-08-19 19:01:26 +08:00
ibuler
05f913ab18 perf: 修改 platform 2022-08-18 17:58:59 +08:00
ibuler
a9bf4eddea perf: 修改 migrations 2022-08-18 13:02:10 +08:00
ibuler
2c3239e238 perf: 修改数据库 migrations 2022-08-18 11:15:17 +08:00
ibuler
8282a6869a perf: remove system users 2022-08-17 15:44:59 +08:00
ibuler
3f47e63080 perf: remove system user 2022-08-17 11:54:18 +08:00
ibuler
2948d5af7f perf: 删除一部分 system user 2022-08-16 16:34:16 +08:00
ibuler
b8f8c2a264 perf: remove application permission 2022-08-16 16:05:08 +08:00
ibuler
34c8cfc20a perf: 迁移 app permission 2022-08-16 15:51:19 +08:00
ibuler
85acd4b2ac perf: 修改 command filter 2022-08-16 11:09:30 +08:00
ibuler
31eadd3dc9 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3
t po v3# 以 '#' 开始的行将被忽略,而空的提交说明将终止提交。
2022-08-15 18:45:56 +08:00
ibuler
0bf8878228 perf: 添加 token 2022-08-15 18:31:57 +08:00
feng626
a748f5d57d account template model 2022-08-11 17:39:44 +08:00
ibuler
d402ba5d92 perf: 修改资产名称 2022-08-11 15:45:03 +08:00
ibuler
4021baf758 Merge branch 'v3' of github.com:jumpserver/jumpserver into v3 2022-08-11 14:10:01 +08:00
ibuler
497204d777 perf: account remove protocol 2022-08-11 14:05:45 +08:00
ibuler
9d4a828c53 perf: 修改平台 2022-08-10 19:27:08 +08:00
Jiangjie.Bai
839099c97c perf: 资产授权Model整理 2022-08-10 17:58:30 +08:00
ibuler
1ca0bdf843 perf: 修改 category 2022-08-09 16:53:43 +08:00
ibuler
3011b18eaa perf: 干掉 applications 2022-08-09 15:42:06 +08:00
Jiangjie.Bai
05e2f8aaf6 fix: 修改 EncryptMixin get_prep_value 和 默认关闭 XPACK 2022-08-09 10:42:35 +08:00
feng626
a7c82f94cc perf: 修复接口文档 修复迁移文件 2022-08-08 19:18:45 +08:00
ibuler
87df92ea92 perf: 修改脚本 2022-08-08 14:34:57 +08:00
ibuler
11d9a0e9cc perf: 支持嵌套创建 2022-08-08 11:39:55 +08:00
ibuler
c0cb58c001 perf: 添加 tree api 2022-08-08 10:41:37 +08:00
ibuler
698ea3f2ea perf: 添加 category node view 2022-08-05 19:11:17 +08:00
ibuler
8dfb8eeb75 perf: 修改权限 2022-08-05 18:31:57 +08:00
ibuler
88d4bf932c perf: change asset 2022-08-05 16:17:45 +08:00
ibuler
196e38897f perf: 修改 protcols 2022-08-05 15:46:36 +08:00
ibuler
6c57db0897 stash it 2022-08-04 10:44:11 +08:00
ibuler
d43acd8612 perf: v3 2022-08-03 16:21:34 +08:00
ibuler
65423ea893 perf: 优化migrations 2022-08-03 15:58:06 +08:00
ibuler
109db8886b perf: 还原回 model 2022-07-28 19:27:42 +08:00
ibuler
0dc3d43ee5 perf: 修改系统用户 2022-07-28 19:12:27 +08:00
ibuler
fb0fb71ea3 perf: 修改系统用户 2022-07-28 18:50:58 +08:00
ibuler
43d3791ddc stash 2022-07-27 16:51:39 +08:00
ibuler
d176ccde4b perf: stash 2022-07-20 16:52:01 +08:00
ibuler
c9becca633 stash 2022-07-20 12:56:41 +08:00
ibuler
b961d1f9ee perf: 修改 accounts 2022-07-18 11:12:21 +08:00
ibuler
93a89509d6 perf: merge with dev 2022-07-17 14:28:55 +08:00
ibuler
fd94713583 Merge branch 'dev' into pr@dev@refactor_system_user_account 2022-07-17 14:17:18 +08:00
ibuler
8b188f020d perf: 修改备注 2022-07-17 14:17:16 +08:00
ibuler
008b18eced perf: 修改为账号模版 2022-07-17 13:57:13 +08:00
ibuler
0d46834fbf pref: 修改暂存 2022-07-15 18:57:52 +08:00
ibuler
29c9c6d680 perf: 优化 accounts 2022-07-15 18:03:32 +08:00
ibuler
d3c67d2f04 perf: 暂存一下 2022-07-14 10:56:09 +08:00
ibuler
dac0b44b99 perf: 优化重构 2022-07-13 16:36:49 +08:00
ibuler
e89765a9ad refactor: 重构系统用户 2022-07-12 10:54:23 +08:00
ibuler
e2f199606e stash it 2022-06-16 11:32:36 +08:00
ibuler
cc167f1b49 xxx 2022-06-14 19:49:07 +08:00
ibuler
e53aa9696b perf: 修改 serializer 2022-05-05 16:18:05 +08:00
ibuler
8de57773aa stash it 2022-05-04 09:57:45 +08:00
ibuler
7025d46070 perf: 控制平台创建 2022-05-02 21:37:42 +08:00
ibuler
7e6964e0fc perf: 修改 platform 2022-04-30 23:19:43 +08:00
ibuler
246710128e perf: stash 2022-04-29 18:28:12 +08:00
ibuler
69f3c85195 perf: 添加 category api 2022-04-28 22:54:18 +08:00
ibuler
e3f2878b0f perf: 修改迁移 2022-04-28 12:50:41 +08:00
ibuler
ba0a017aa4 perf: 修改迁移 2022-04-28 12:47:39 +08:00
ibuler
770d2508d7 perf: 其他 asset model 2022-04-26 21:30:11 +08:00
ibuler
0a2b2ad127 perf: 其他 asset model 2022-04-26 21:30:01 +08:00
ibuler
44d192cbe7 perf: stash 2022-04-26 11:24:08 +08:00
ibuler
54e772741b perf: 修改 base 2022-04-20 10:15:20 +08:00
ibuler
832228e184 stash 2022-04-19 15:30:56 +08:00
ibuler
5101aae5ae perf: 修改.. 2022-04-12 19:24:59 +08:00
ibuler
9f927f9703 stash 2022-04-12 17:53:56 +08:00
ibuler
d418c28e98 perf: 修改 base 2022-04-07 18:51:35 +08:00
ibuler
1b9efff6c7 perf: 添加 types 2022-04-06 18:14:51 +08:00
ibuler
ce13b194a5 perf: 修改 asset info 2022-04-06 11:29:16 +08:00
ibuler
8688781e15 perf: 修改 asset 结构 2022-04-06 10:15:06 +08:00
ibuler
3de881fa19 perf: 打算重构 asset application 2022-04-02 18:35:46 +08:00
1044 changed files with 38542 additions and 25770 deletions

View File

@@ -7,4 +7,5 @@ django.db
celerybeat.pid
### Vagrant ###
.vagrant/
apps/xpack/.git
apps/xpack/.git

1
.gitattributes vendored
View File

@@ -1,3 +1,4 @@
*.mmdb filter=lfs diff=lfs merge=lfs -text
*.mo filter=lfs diff=lfs merge=lfs -text
*.ipdb filter=lfs diff=lfs merge=lfs -text

View File

@@ -41,4 +41,5 @@ version-resolver:
default: patch
template: |
## 版本变化 Whats Changed
$CHANGES
$CHANGES

35
.github/workflows/jms-build-test.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: "Run Build Test"
on:
push:
branches:
- pr@*
- repr@*
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- uses: docker/build-push-action@v3
with:
context: .
push: false
tags: jumpserver/core:test
file: Dockerfile
build-args: |
APT_MIRROR=http://deb.debian.org
PIP_MIRROR=https://pypi.org/simple
cache-from: type=gha
cache-to: type=gha,mode=max
- uses: LouisBrunner/checks-action@v1.5.0
if: always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Check Build
conclusion: ${{ job.status }}

View File

@@ -21,7 +21,7 @@ jobs:
TAG=$(basename ${GITHUB_REF})
VERSION=${TAG/v/}
wget https://raw.githubusercontent.com/jumpserver/installer/master/quick_start.sh
sed -i "s@Version=.*@Version=v${VERSION}@g" quick_start.sh
sed -i "s@VERSION=dev@VERSION=v${VERSION}@g" quick_start.sh
echo "::set-output name=TAG::$TAG"
echo "::set-output name=VERSION::$VERSION"
- name: Create Release

2
.gitignore vendored
View File

@@ -16,6 +16,7 @@ dump.rdb
.cache/
.idea/
.vscode/
.fleet/
db.sqlite3
config.py
config.yml
@@ -41,3 +42,4 @@ release/*
releashe
/apps/script.py
data/*
test.py

3
.isort.cfg Normal file
View File

@@ -0,0 +1,3 @@
[settings]
line_length=120
known_first_party=common,users,assets,perms,authentication,jumpserver,notification,ops,orgs,rbac,settings,terminal,tickets

View File

@@ -126,3 +126,4 @@ enforcement ladder](https://github.com/mozilla/diversity).
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@@ -23,3 +23,4 @@ When reporting issues, always include:
Because the issues are open to the public, when submitting files, be sure to remove any sensitive information, e.g. user name, password, IP address, and company name. You can
replace those parts with "REDACTED" or other strings like "****".

View File

@@ -1,65 +1,77 @@
FROM python:3.8-slim
FROM python:3.9-slim as stage-build
ARG TARGETARCH
ARG VERSION
ENV VERSION=$VERSION
WORKDIR /opt/jumpserver
ADD . .
RUN cd utils && bash -ixeu build.sh
FROM python:3.9-slim
ARG TARGETARCH
MAINTAINER JumpServer Team <ibuler@qq.com>
ARG BUILD_DEPENDENCIES=" \
g++ \
make \
pkg-config"
g++ \
make \
pkg-config"
ARG DEPENDENCIES=" \
default-libmysqlclient-dev \
freetds-dev \
libpq-dev \
libffi-dev \
libldap2-dev \
libsasl2-dev \
libxml2-dev \
libxmlsec1-dev \
libxmlsec1-openssl \
libaio-dev \
openssh-client \
sshpass"
freetds-dev \
libpq-dev \
libffi-dev \
libjpeg-dev \
libldap2-dev \
libsasl2-dev \
libxml2-dev \
libxmlsec1-dev \
libxmlsec1-openssl \
libaio-dev"
ARG TOOLS=" \
curl \
default-mysql-client \
iproute2 \
iputils-ping \
locales \
procps \
redis-tools \
telnet \
vim \
unzip \
wget"
ca-certificates \
curl \
default-libmysqlclient-dev \
default-mysql-client \
locales \
openssh-client \
procps \
sshpass \
telnet \
unzip \
vim \
git \
wget"
RUN sed -i 's@http://.*.debian.org@http://mirrors.ustc.edu.cn@g' /etc/apt/sources.list \
ARG APT_MIRROR=http://mirrors.ustc.edu.cn
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=core \
sed -i "s@http://.*.debian.org@${APT_MIRROR}@g" /etc/apt/sources.list \
&& rm -f /etc/apt/apt.conf.d/docker-clean \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apt-get update \
&& apt-get -y install --no-install-recommends ${BUILD_DEPENDENCIES} \
&& apt-get -y install --no-install-recommends ${DEPENDENCIES} \
&& apt-get -y install --no-install-recommends ${TOOLS} \
&& localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& mkdir -p /root/.ssh/ \
&& echo "Host *\n\tStrictHostKeyChecking no\n\tUserKnownHostsFile /dev/null" > /root/.ssh/config \
&& sed -i "s@# alias l@alias l@g" ~/.bashrc \
&& echo "set mouse-=a" > ~/.vimrc \
&& echo "no" | dpkg-reconfigure dash \
&& echo "zh_CN.UTF-8" | dpkg-reconfigure locales \
&& sed -i "s@# export @export @g" ~/.bashrc \
&& sed -i "s@# alias @alias @g" ~/.bashrc \
&& rm -rf /var/lib/apt/lists/*
ARG TARGETARCH
ARG ORACLE_LIB_MAJOR=19
ARG ORACLE_LIB_MINOR=10
ENV ORACLE_FILE="instantclient-basiclite-linux.${TARGETARCH:-amd64}-${ORACLE_LIB_MAJOR}.${ORACLE_LIB_MINOR}.0.0.0dbru.zip"
ARG DOWNLOAD_URL=https://download.jumpserver.org
RUN mkdir -p /opt/oracle/ \
&& cd /opt/oracle/ \
&& wget https://download.jumpserver.org/files/oracle/${ORACLE_FILE} \
&& unzip instantclient-basiclite-linux.${TARGETARCH-amd64}-19.10.0.0.0dbru.zip \
&& mv instantclient_${ORACLE_LIB_MAJOR}_${ORACLE_LIB_MINOR} instantclient \
&& echo "/opt/oracle/instantclient" > /etc/ld.so.conf.d/oracle-instantclient.conf \
&& wget ${DOWNLOAD_URL}/public/instantclient-basiclite-linux.${TARGETARCH}-19.10.0.0.0.zip \
&& unzip instantclient-basiclite-linux.${TARGETARCH}-19.10.0.0.0.zip \
&& sh -c "echo /opt/oracle/instantclient_19_10 > /etc/ld.so.conf.d/oracle-instantclient.conf" \
&& ldconfig \
&& rm -f ${ORACLE_FILE}
&& rm -f instantclient-basiclite-linux.${TARGETARCH}-19.10.0.0.0.zip
WORKDIR /tmp/build
COPY ./requirements ./requirements
@@ -68,21 +80,18 @@ ARG PIP_MIRROR=https://pypi.douban.com/simple
ENV PIP_MIRROR=$PIP_MIRROR
ARG PIP_JMS_MIRROR=https://pypi.douban.com/simple
ENV PIP_JMS_MIRROR=$PIP_JMS_MIRROR
# 因为以 jms 或者 jumpserver 开头的 mirror 上可能没有
RUN pip install --upgrade pip==20.2.4 setuptools==49.6.0 wheel==0.34.2 -i ${PIP_MIRROR} \
&& pip install --no-cache-dir $(grep -E 'jms|jumpserver' requirements/requirements.txt) -i ${PIP_JMS_MIRROR} \
&& pip install --no-cache-dir -r requirements/requirements.txt -i ${PIP_MIRROR} \
&& rm -rf ~/.cache/pip
ARG VERSION
ENV VERSION=$VERSION
RUN --mount=type=cache,target=/root/.cache/pip \
set -ex \
&& pip config set global.index-url ${PIP_MIRROR} \
&& pip install --upgrade pip \
&& pip install --upgrade setuptools wheel \
&& pip install $(grep -E 'jms|jumpserver' requirements/requirements.txt) -i ${PIP_JMS_MIRROR} \
&& pip install -r requirements/requirements.txt
ADD . .
RUN cd utils \
&& bash -ixeu build.sh \
&& mv ../release/jumpserver /opt/jumpserver \
&& rm -rf /tmp/build \
&& echo > /opt/jumpserver/config.yml
COPY --from=stage-build /opt/jumpserver/release/jumpserver /opt/jumpserver
RUN echo > /opt/jumpserver/config.yml \
&& rm -rf /tmp/build
WORKDIR /opt/jumpserver
VOLUME /opt/jumpserver/data
@@ -90,6 +99,6 @@ VOLUME /opt/jumpserver/logs
ENV LANG=zh_CN.UTF-8
EXPOSE 8070
EXPOSE 8080
ENTRYPOINT ["./entrypoint.sh"]

10
Dockerfile-ee Normal file
View File

@@ -0,0 +1,10 @@
ARG VERSION
FROM registry.fit2cloud.com/jumpserver/xpack:${VERSION} as build-xpack
FROM jumpserver/core:${VERSION}
COPY --from=build-xpack /opt/xpack /opt/jumpserver/apps/xpack
WORKDIR /opt/jumpserver
RUN --mount=type=cache,target=/root/.cache/pip \
set -ex \
&& pip install -r requirements/requirements_xpack.txt

96
Dockerfile.loong64 Normal file
View File

@@ -0,0 +1,96 @@
FROM python:3.9-slim as stage-build
ARG TARGETARCH
ARG VERSION
ENV VERSION=$VERSION
WORKDIR /opt/jumpserver
ADD . .
RUN cd utils && bash -ixeu build.sh
FROM python:3.9-slim
ARG TARGETARCH
MAINTAINER JumpServer Team <ibuler@qq.com>
ARG BUILD_DEPENDENCIES=" \
g++ \
make \
pkg-config"
ARG DEPENDENCIES=" \
freetds-dev \
libpq-dev \
libffi-dev \
libjpeg-dev \
libldap2-dev \
libsasl2-dev \
libssl-dev \
libxml2-dev \
libxmlsec1-dev \
libxmlsec1-openssl \
libaio-dev"
ARG TOOLS=" \
ca-certificates \
curl \
default-libmysqlclient-dev \
default-mysql-client \
locales \
openssh-client \
procps \
sshpass \
telnet \
unzip \
vim \
git \
wget"
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=core \
set -ex \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apt-get update \
&& apt-get -y install --no-install-recommends ${BUILD_DEPENDENCIES} \
&& apt-get -y install --no-install-recommends ${DEPENDENCIES} \
&& apt-get -y install --no-install-recommends ${TOOLS} \
&& mkdir -p /root/.ssh/ \
&& echo "Host *\n\tStrictHostKeyChecking no\n\tUserKnownHostsFile /dev/null" > /root/.ssh/config \
&& echo "set mouse-=a" > ~/.vimrc \
&& echo "no" | dpkg-reconfigure dash \
&& echo "zh_CN.UTF-8" | dpkg-reconfigure locales \
&& sed -i "s@# export @export @g" ~/.bashrc \
&& sed -i "s@# alias @alias @g" ~/.bashrc \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /tmp/build
COPY ./requirements ./requirements
ARG PIP_MIRROR=https://pypi.douban.com/simple
ENV PIP_MIRROR=$PIP_MIRROR
ARG PIP_JMS_MIRROR=https://pypi.douban.com/simple
ENV PIP_JMS_MIRROR=$PIP_JMS_MIRROR
RUN --mount=type=cache,target=/root/.cache/pip \
set -ex \
&& pip config set global.index-url ${PIP_MIRROR} \
&& pip install --upgrade pip \
&& pip install --upgrade setuptools wheel \
&& pip install https://download.jumpserver.org/pypi/simple/cryptography/cryptography-38.0.4-cp39-cp39-linux_loongarch64.whl \
&& pip install https://download.jumpserver.org/pypi/simple/greenlet/greenlet-1.1.2-cp39-cp39-linux_loongarch64.whl \
&& pip install $(grep 'PyNaCl' requirements/requirements.txt) \
&& GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=true pip install grpcio \
&& pip install $(grep -E 'jms|jumpserver' requirements/requirements.txt) -i ${PIP_JMS_MIRROR} \
&& pip install -r requirements/requirements.txt
COPY --from=stage-build /opt/jumpserver/release/jumpserver /opt/jumpserver
RUN echo > /opt/jumpserver/config.yml \
&& rm -rf /tmp/build
WORKDIR /opt/jumpserver
VOLUME /opt/jumpserver/data
VOLUME /opt/jumpserver/logs
ENV LANG=zh_CN.UTF-8
EXPOSE 8080
ENTRYPOINT ["./entrypoint.sh"]

1
GITSHA Normal file
View File

@@ -0,0 +1 @@
86dab4fc6ea6b683efbe384a0694af4edb9f6716

View File

@@ -671,4 +671,5 @@ into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
<https://www.gnu.org/licenses/why-not-lgpl.html>.

142
README.md
View File

@@ -1,99 +1,52 @@
<p align="center">
<a href="https://jumpserver.org"><img src="https://download.jumpserver.org/images/jumpserver-logo.svg" alt="JumpServer" width="300" /></a>
</p>
<h3 align="center">多云环境下更好用的堡垒机</h3>
<h3 align="center">广受欢迎的开源堡垒机</h3>
<p align="center">
<a href="https://www.gnu.org/licenses/gpl-3.0.html"><img src="https://img.shields.io/github/license/jumpserver/jumpserver" alt="License: GPLv3"></a>
<a href="https://shields.io/github/downloads/jumpserver/jumpserver/total"><img src="https://shields.io/github/downloads/jumpserver/jumpserver/total" alt=" release"></a>
<a href="https://hub.docker.com/u/jumpserver"><img src="https://img.shields.io/docker/pulls/jumpserver/jms_all.svg" alt="Codacy"></a>
<a href="https://github.com/jumpserver/jumpserver/commits"><img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/jumpserver/jumpserver.svg" /></a>
<a href="https://hub.docker.com/u/jumpserver"><img src="https://img.shields.io/docker/pulls/jumpserver/jms_all.svg" alt="Docker pulls"></a>
<a href="https://github.com/jumpserver/jumpserver/releases/latest"><img src="https://img.shields.io/github/v/release/jumpserver/jumpserver" alt="Latest release"></a>
<a href="https://github.com/jumpserver/jumpserver"><img src="https://img.shields.io/github/stars/jumpserver/jumpserver?color=%231890FF&style=flat-square" alt="Stars"></a>
</p>
--------------------------
- [ENGLISH](https://github.com/jumpserver/jumpserver/blob/master/README_EN.md)
JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。
JumpServer 使用 Python 开发,配备了业界领先的 Web Terminal 方案,交互界面美观、用户体验好。
## 产品特色
JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向扩展,无资产数量及并发限制。
- **开源**: 零门槛,线上快速获取和安装;
- **无插件**: 仅需浏览器,极致的 Web Terminal 使用体验;
- **分布式**: 支持分布式部署和横向扩展,轻松支持大规模并发访问;
- **多云支持**: 一套系统,同时管理不同云上面的资产;
- **多租户**: 一套系统,多个子公司或部门同时使用;
- **云端存储**: 审计录像云端存储,永不丢失;
- **多应用支持**: 全面支持各类资产包括服务器、数据库、Windows RemoteApp、Kubernetes 等;
- **安全可靠**: 被广泛使用、验证和信赖,连续 9 年的持续研发投入和产品更新升级。
改变世界,从一点点开始 ...
> 如需进一步了解 JumpServer 开源项目,推荐阅读 [JumpServer 的初心和使命](https://mp.weixin.qq.com/s/S6q_2rP_9MwaVwyqLQnXzA)
### 特色优势
- 开源: 零门槛,线上快速获取和安装;
- 分布式: 轻松支持大规模并发访问;
- 无插件: 仅需浏览器,极致的 Web Terminal 使用体验;
- 多租户: 一套系统,多个子公司或部门同时使用;
- 多云支持: 一套系统,同时管理不同云上面的资产;
- 云端存储: 审计录像云端存储,永不丢失;
- 多应用支持: 数据库Windows远程应用Kubernetes。
### UI 展示
## UI 展示
![UI展示](https://www.jumpserver.org/images/screenshot/1.png)
### 在线体验
## 在线体验
- 环境地址:<https://demo.jumpserver.org/>
- 环境地址:<https://demo.jumpserver.org/>
| :warning: 注意 |
| :--------------------------- |
|:-----------------------------|
| 该环境仅作体验目的使用,我们会定时清理、重置数据! |
| 请勿修改体验环境用户的密码! |
| 请勿在环境中添加业务生产环境地址、用户名密码等敏感信息! |
### 快速开始
## 快速开始
- [极速安装](https://docs.jumpserver.org/zh/master/install/setup_by_fast/)
- [完整文档](https://docs.jumpserver.org)
- [演示视频](https://www.bilibili.com/video/BV1ZV41127GB)
- [手动安装](https://github.com/jumpserver/installer)
- [产品文档](https://docs.jumpserver.org)
- [知识库](https://kb.fit2cloud.com/categories/jumpserver)
### 组件项目
| 项目 | 状态 | 描述 |
| --------------------------------------------------------------------------- | ------------------- | ---------------------------------------- |
| [Lina](https://github.com/jumpserver/lina) | <a href="https://github.com/jumpserver/lina/releases"><img alt="Lina release" src="https://img.shields.io/github/release/jumpserver/lina.svg" /></a> | JumpServer Web UI 项目 |
| [Luna](https://github.com/jumpserver/luna) | <a href="https://github.com/jumpserver/luna/releases"><img alt="Luna release" src="https://img.shields.io/github/release/jumpserver/luna.svg" /></a> | JumpServer Web Terminal 项目 |
| [KoKo](https://github.com/jumpserver/koko) | <a href="https://github.com/jumpserver/koko/releases"><img alt="Koko release" src="https://img.shields.io/github/release/jumpserver/koko.svg" /></a> | JumpServer 字符协议 Connector 项目,替代原来 Python 版本的 [Coco](https://github.com/jumpserver/coco) |
| [Lion](https://github.com/jumpserver/lion-release) | <a href="https://github.com/jumpserver/lion-release/releases"><img alt="Lion release" src="https://img.shields.io/github/release/jumpserver/lion-release.svg" /></a> | JumpServer 图形协议 Connector 项目,依赖 [Apache Guacamole](https://guacamole.apache.org/) |
| [Magnus](https://github.com/jumpserver/magnus-release) | <a href="https://github.com/jumpserver/magnus-release/releases"><img alt="Magnus release" src="https://img.shields.io/github/release/jumpserver/magnus-release.svg" /> | JumpServer 数据库代理 Connector 项目 |
| [Clients](https://github.com/jumpserver/clients) | <a href="https://github.com/jumpserver/clients/releases"><img alt="Clients release" src="https://img.shields.io/github/release/jumpserver/clients.svg" /> | JumpServer 客户端 项目 |
| [Installer](https://github.com/jumpserver/installer)| <a href="https://github.com/jumpserver/installer/releases"><img alt="Installer release" src="https://img.shields.io/github/release/jumpserver/installer.svg" /> | JumpServer 安装包 项目 |
### 社区
如果您在使用过程中有任何疑问或对建议,欢迎提交 [GitHub Issue](https://github.com/jumpserver/jumpserver/issues/new/choose) 或加入到我们的社区当中进行进一步交流沟通。
#### 微信交流群
<img src="https://download.jumpserver.org/images/wecom-group.jpeg" alt="微信群二维码" width="200"/>
### 贡献
如果有你好的想法创意,或者帮助我们修复了 Bug, 欢迎提交 Pull Request
感谢以下贡献者,让 JumpServer 更加完善
<a href="https://github.com/jumpserver/jumpserver/graphs/contributors"><img src="https://opencollective.com/jumpserver/contributors.svg?width=890&button=false" /></a>
### 致谢
- [Apache Guacamole](https://guacamole.apache.org/) Web页面连接 RDP, SSH, VNC 协议设备JumpServer 图形化组件 Lion 依赖
- [OmniDB](https://omnidb.org/) Web 页面连接使用数据库JumpServer Web 数据库依赖
### JumpServer 企业版
- [申请企业版试用](https://jinshuju.net/f/kyOYpi)
### 案例研究
## 案例研究
- [腾讯海外游戏基于JumpServer构建游戏安全运营能力](https://blog.fit2cloud.com/?p=3704)
- [万华化学通过JumpServer管理全球化分布式IT资产并且实现与云管平台的联动](https://blog.fit2cloud.com/?p=3504)
@@ -102,28 +55,61 @@ JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向
- [沐瞳游戏通过JumpServer管控多项目分布式资产](https://blog.fit2cloud.com/?p=3213)
- [携程JumpServer 堡垒机部署与运营实战](https://blog.fit2cloud.com/?p=851)
- [大智慧JumpServer 堡垒机让“大智慧”的混合 IT 运维更智慧](https://blog.fit2cloud.com/?p=882)
- [小红书:JumpServer堡垒机大规模资产跨版本迁移之路](https://blog.fit2cloud.com/?p=516)
- [小红书JumpServer 堡垒机大规模资产跨版本迁移之路](https://blog.fit2cloud.com/?p=516)
- [中手游JumpServer堡垒机助力中手游提升多云环境下安全运维能力](https://blog.fit2cloud.com/?p=732)
- [中通快递JumpServer主机安全运维实践](https://blog.fit2cloud.com/?p=708)
- [东方明珠JumpServer高效管控异构化、分布式云端资产](https://blog.fit2cloud.com/?p=687)
- [江苏农信JumpServer堡垒机助力行业云安全运维](https://blog.fit2cloud.com/?p=666)
### 安全说明
## 社区
JumpServer是一款安全产品请参考 [基本安全建议](https://docs.jumpserver.org/zh/master/install/install_security/) 部署安装.
如果您在使用过程中有任何疑问或对建议,欢迎提交 [GitHub Issue](https://github.com/jumpserver/jumpserver/issues/new/choose)
或加入到我们的社区当中进行进一步交流沟通。
如果你发现安全问题,可以直接联系我们:
### 微信交流群
- ibuler@fit2cloud.com
- support@fit2cloud.com
- 400-052-0755
<img src="https://download.jumpserver.org/images/wecom-group.jpeg" alt="微信群二维码" width="200"/>
### License & Copyright
### 参与贡献
Copyright (c) 2014-2022 飞致云 FIT2CLOUD, All rights reserved.
欢迎提交 PR 参与贡献。感谢以下贡献者,他们让 JumpServer 变的越来越好。
Licensed under The GNU General Public License version 3 (GPLv3) (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
<a href="https://github.com/jumpserver/jumpserver/graphs/contributors"><img src="https://opencollective.com/jumpserver/contributors.svg?width=890&button=false" /></a>
## 组件项目
| 项目 | 状态 | 描述 |
|--------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| [Lina](https://github.com/jumpserver/lina) | <a href="https://github.com/jumpserver/lina/releases"><img alt="Lina release" src="https://img.shields.io/github/release/jumpserver/lina.svg" /></a> | JumpServer Web UI 项目 |
| [Luna](https://github.com/jumpserver/luna) | <a href="https://github.com/jumpserver/luna/releases"><img alt="Luna release" src="https://img.shields.io/github/release/jumpserver/luna.svg" /></a> | JumpServer Web Terminal 项目 |
| [KoKo](https://github.com/jumpserver/koko) | <a href="https://github.com/jumpserver/koko/releases"><img alt="Koko release" src="https://img.shields.io/github/release/jumpserver/koko.svg" /></a> | JumpServer 字符协议 Connector 项目,替代原来 Python 版本的 [Coco](https://github.com/jumpserver/coco) |
| [Lion](https://github.com/jumpserver/lion-release) | <a href="https://github.com/jumpserver/lion-release/releases"><img alt="Lion release" src="https://img.shields.io/github/release/jumpserver/lion-release.svg" /></a> | JumpServer 图形协议 Connector 项目,依赖 [Apache Guacamole](https://guacamole.apache.org/) |
| [Magnus](https://github.com/jumpserver/magnus-release) | <a href="https://github.com/jumpserver/magnus-release/releases"><img alt="Magnus release" src="https://img.shields.io/github/release/jumpserver/magnus-release.svg" /> | JumpServer 数据库代理 Connector 项目 |
| [Clients](https://github.com/jumpserver/clients) | <a href="https://github.com/jumpserver/clients/releases"><img alt="Clients release" src="https://img.shields.io/github/release/jumpserver/clients.svg" /> | JumpServer 客户端 项目 |
| [Installer](https://github.com/jumpserver/installer) | <a href="https://github.com/jumpserver/installer/releases"><img alt="Installer release" src="https://img.shields.io/github/release/jumpserver/installer.svg" /> | JumpServer 安装包 项目 |
## 安全说明
JumpServer是一款安全产品请参考 [基本安全建议](https://docs.jumpserver.org/zh/master/install/install_security/)
进行安装部署。如果您发现安全相关问题,请直接联系我们:
- 邮箱support@fit2cloud.com
- 电话400-052-0755
## 致谢
- [Apache Guacamole](https://guacamole.apache.org/) Web 页面连接 RDP、SSH、VNC 等协议资产JumpServer Lion 组件使用到该项目;
- [OmniDB](https://omnidb.org/) Web 页面连接使用数据库JumpServer Web 数据库组件使用到该项目。
## License & Copyright
Copyright (c) 2014-2023 飞致云 FIT2CLOUD, All rights reserved.
Licensed under The GNU General Public License version 3 (GPLv3) (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
https://www.gnu.org/licenses/gpl-3.0.html
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "
AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License.

View File

@@ -92,4 +92,3 @@ Licensed under The GNU General Public License version 3 (GPLv3) (the "License")
https://www.gnu.org/licenses/gpl-3.0.htmll
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

View File

@@ -18,3 +18,4 @@ All security bugs should be reported to the contact as below:
- ibuler@fit2cloud.com
- support@fit2cloud.com
- 400-052-0755

56
Vagrantfile vendored
View File

@@ -1,56 +0,0 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box_check_update = false
config.vm.box = "centos/7"
config.vm.hostname = "jumpserver"
config.vm.network "private_network", ip: "172.17.8.101"
config.vm.provider "virtualbox" do |vb|
vb.memory = "4096"
vb.cpus = 2
vb.name = "jumpserver"
end
config.vm.synced_folder ".", "/vagrant", type: "rsync",
rsync__verbose: true,
rsync__exclude: ['.git*', 'node_modules*','*.log','*.box','Vagrantfile']
config.vm.provision "shell", inline: <<-SHELL
## 设置yum的阿里云源
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
sudo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sudo yum makecache
## 安装依赖包
sudo yum install -y python36 python36-devel python36-pip \
libtiff-devel libjpeg-devel libzip-devel freetype-devel \
lcms2-devel libwebp-devel tcl-devel tk-devel sshpass \
openldap-devel mariadb-devel mysql-devel libffi-devel \
openssh-clients telnet openldap-clients gcc
## 配置pip阿里云源
mkdir /home/vagrant/.pip
cat << EOF | sudo tee -a /home/vagrant/.pip/pip.conf
[global]
timeout = 6000
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
use-mirrors = true
mirrors = https://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com
EOF
python3.6 -m venv /home/vagrant/venv
source /home/vagrant/venv/bin/activate
echo 'source /home/vagrant/venv/bin/activate' >> /home/vagrant/.bash_profile
SHELL
end

View File

@@ -0,0 +1,2 @@
from .account import *
from .automations import *

View File

@@ -0,0 +1,3 @@
from .account import *
from .task import *
from .template import *

View File

@@ -0,0 +1,112 @@
from django.shortcuts import get_object_or_404
from rest_framework.decorators import action
from rest_framework.generics import ListAPIView
from rest_framework.response import Response
from accounts import serializers
from accounts.filters import AccountFilterSet
from accounts.models import Account
from assets.models import Asset, Node
from common.permissions import UserConfirmation, ConfirmType
from common.views.mixins import RecordViewLogMixin
from orgs.mixins.api import OrgBulkModelViewSet
from rbac.permissions import RBACPermission
__all__ = [
'AccountViewSet', 'AccountSecretsViewSet',
'AccountHistoriesSecretAPI'
]
class AccountViewSet(OrgBulkModelViewSet):
model = Account
search_fields = ('username', 'asset__address', 'name')
filterset_class = AccountFilterSet
serializer_classes = {
'default': serializers.AccountSerializer,
}
rbac_perms = {
'partial_update': ['accounts.change_account'],
'su_from_accounts': 'accounts.view_account',
'username_suggestions': 'accounts.view_account',
}
@action(methods=['get'], detail=False, url_path='su-from-accounts')
def su_from_accounts(self, request, *args, **kwargs):
account_id = request.query_params.get('account')
asset_id = request.query_params.get('asset')
if account_id:
account = get_object_or_404(Account, pk=account_id)
accounts = account.get_su_from_accounts()
elif asset_id:
asset = get_object_or_404(Asset, pk=asset_id)
accounts = asset.accounts.all()
else:
accounts = []
accounts = self.filter_queryset(accounts)
serializer = serializers.AccountSerializer(accounts, many=True)
return Response(data=serializer.data)
@action(methods=['get'], detail=False, url_path='username-suggestions')
def username_suggestions(self, request, *args, **kwargs):
asset_ids = request.query_params.get('assets')
node_keys = request.query_params.get('keys')
username = request.query_params.get('username')
assets = Asset.objects.all()
if asset_ids:
assets = assets.filter(id__in=asset_ids.split(','))
if node_keys:
patten = Node.get_node_all_children_key_pattern(node_keys.split(','))
assets = assets.filter(nodes__key__regex=patten)
accounts = Account.objects.filter(asset__in=assets)
if username:
accounts = accounts.filter(username__icontains=username)
usernames = list(accounts.values_list('username', flat=True).distinct()[:10])
usernames.sort()
common = [i for i in usernames if i in usernames if i.lower() in ['root', 'admin', 'administrator']]
others = [i for i in usernames if i not in common]
usernames = common + others
return Response(data=usernames)
class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
"""
因为可能要导出所有账号,所以单独建立了一个 viewset
"""
serializer_classes = {
'default': serializers.AccountSecretSerializer,
}
http_method_names = ['get', 'options']
permission_classes = [RBACPermission, UserConfirmation.require(ConfirmType.MFA)]
rbac_perms = {
'list': 'accounts.view_accountsecret',
'retrieve': 'accounts.view_accountsecret',
}
class AccountHistoriesSecretAPI(RecordViewLogMixin, ListAPIView):
model = Account.history.model
serializer_class = serializers.AccountHistorySerializer
http_method_names = ['get', 'options']
permission_classes = [RBACPermission, UserConfirmation.require(ConfirmType.MFA)]
rbac_perms = {
'GET': 'accounts.view_accountsecret',
}
def get_object(self):
return get_object_or_404(Account, pk=self.kwargs.get('pk'))
def get_queryset(self):
account = self.get_object()
histories = account.history.all()
last_history = account.history.first()
if not last_history:
return histories
if account.secret == last_history.secret \
and account.secret_type == last_history.secret_type:
histories = histories.exclude(history_id=last_history.history_id)
return histories

View File

@@ -0,0 +1,48 @@
from rest_framework.generics import CreateAPIView
from rest_framework.response import Response
from accounts import serializers
from accounts.tasks import verify_accounts_connectivity_task, push_accounts_to_assets_task
from assets.exceptions import NotSupportedTemporarilyError
__all__ = [
'AccountsTaskCreateAPI',
]
class AccountsTaskCreateAPI(CreateAPIView):
serializer_class = serializers.AccountTaskSerializer
def check_permissions(self, request):
act = request.data.get('action')
if act == 'push':
code = 'accounts.push_account'
else:
code = 'accounts.verify_account'
return request.user.has_perm(code)
def perform_create(self, serializer):
data = serializer.validated_data
accounts = data.get('accounts', [])
account_ids = [str(a.id) for a in accounts]
if data['action'] == 'push':
task = push_accounts_to_assets_task.delay(account_ids)
else:
account = accounts[0]
asset = account.asset
if not asset.auto_info['ansible_enabled'] or \
not asset.auto_info['ping_enabled']:
raise NotSupportedTemporarilyError()
task = verify_accounts_connectivity_task.delay(account_ids)
data = getattr(serializer, '_data', {})
data["task"] = task.id
setattr(serializer, '_data', data)
return task
def get_exception_handler(self):
def handler(e, context):
return Response({"error": str(e)}, status=400)
return handler

View File

@@ -0,0 +1,28 @@
from rbac.permissions import RBACPermission
from common.permissions import UserConfirmation, ConfirmType
from common.views.mixins import RecordViewLogMixin
from orgs.mixins.api import OrgBulkModelViewSet
from accounts import serializers
from accounts.models import AccountTemplate
class AccountTemplateViewSet(OrgBulkModelViewSet):
model = AccountTemplate
filterset_fields = ("username", 'name')
search_fields = ('username', 'name')
serializer_classes = {
'default': serializers.AccountTemplateSerializer
}
class AccountTemplateSecretsViewSet(RecordViewLogMixin, AccountTemplateViewSet):
serializer_classes = {
'default': serializers.AccountTemplateSecretSerializer,
}
http_method_names = ['get', 'options']
permission_classes = [RBACPermission, UserConfirmation.require(ConfirmType.MFA)]
rbac_perms = {
'list': 'accounts.view_accounttemplatesecret',
'retrieve': 'accounts.view_accounttemplatesecret',
}

View File

@@ -0,0 +1,5 @@
from .backup import *
from .base import *
from .change_secret import *
from .gather_accounts import *
from .push_account import *

View File

@@ -3,12 +3,13 @@
from rest_framework import status, viewsets
from rest_framework.response import Response
from orgs.mixins.api import OrgBulkModelViewSet
from .. import serializers
from ..tasks import execute_account_backup_plan
from ..models import (
AccountBackupPlan, AccountBackupPlanExecution
from accounts import serializers
from accounts.models import (
AccountBackupAutomation, AccountBackupExecution
)
from accounts.tasks import execute_account_backup_task
from common.const.choices import Trigger
from orgs.mixins.api import OrgBulkModelViewSet
__all__ = [
'AccountBackupPlanViewSet', 'AccountBackupPlanExecutionViewSet'
@@ -16,12 +17,11 @@ __all__ = [
class AccountBackupPlanViewSet(OrgBulkModelViewSet):
model = AccountBackupPlan
model = AccountBackupAutomation
filter_fields = ('name',)
search_fields = filter_fields
ordering_fields = ('name',)
ordering = ('name',)
serializer_class = serializers.AccountBackupPlanSerializer
serializer_class = serializers.AccountBackupSerializer
class AccountBackupPlanExecutionViewSet(viewsets.ModelViewSet):
@@ -31,19 +31,12 @@ class AccountBackupPlanExecutionViewSet(viewsets.ModelViewSet):
http_method_names = ['get', 'post', 'options']
def get_queryset(self):
queryset = AccountBackupPlanExecution.objects.all()
queryset = AccountBackupExecution.objects.all()
return queryset
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
pid = serializer.data.get('plan')
task = execute_account_backup_plan.delay(
pid=pid, trigger=AccountBackupPlanExecution.Trigger.manual
)
task = execute_account_backup_task.delay(pid=str(pid), trigger=Trigger.manual)
return Response({'task': task.id}, status=status.HTTP_201_CREATED)
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
queryset = queryset.order_by('-date_start')
return queryset

View File

@@ -0,0 +1,115 @@
from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext_lazy as _
from rest_framework import status, mixins, viewsets
from rest_framework.response import Response
from accounts.models import AutomationExecution
from accounts.tasks import execute_account_automation_task
from assets import serializers
from assets.models import BaseAutomation
from common.const.choices import Trigger
from orgs.mixins import generics
__all__ = [
'AutomationAssetsListApi', 'AutomationRemoveAssetApi',
'AutomationAddAssetApi', 'AutomationNodeAddRemoveApi',
'AutomationExecutionViewSet',
]
class AutomationAssetsListApi(generics.ListAPIView):
model = BaseAutomation
serializer_class = serializers.AutomationAssetsSerializer
filter_fields = ("name", "address")
search_fields = filter_fields
def get_object(self):
pk = self.kwargs.get('pk')
return get_object_or_404(self.model, pk=pk)
def get_queryset(self):
instance = self.get_object()
assets = instance.get_all_assets().only(
*self.serializer_class.Meta.only_fields
)
return assets
class AutomationRemoveAssetApi(generics.RetrieveUpdateAPIView):
model = BaseAutomation
serializer_class = serializers.UpdateAssetSerializer
def update(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.serializer_class(data=request.data)
if not serializer.is_valid():
return Response({'error': serializer.errors})
assets = serializer.validated_data.get('assets')
if assets:
instance.assets.remove(*tuple(assets))
return Response({'msg': 'ok'})
class AutomationAddAssetApi(generics.RetrieveUpdateAPIView):
model = BaseAutomation
serializer_class = serializers.UpdateAssetSerializer
def update(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
assets = serializer.validated_data.get('assets')
if assets:
instance.assets.add(*tuple(assets))
return Response({"msg": "ok"})
else:
return Response({"error": serializer.errors})
class AutomationNodeAddRemoveApi(generics.RetrieveUpdateAPIView):
model = BaseAutomation
serializer_class = serializers.UpdateNodeSerializer
def update(self, request, *args, **kwargs):
action_params = ['add', 'remove']
action = request.query_params.get('action')
if action not in action_params:
err_info = _("The parameter 'action' must be [{}]".format(','.join(action_params)))
return Response({"error": err_info})
instance = self.get_object()
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
nodes = serializer.validated_data.get('nodes')
if nodes:
# eg: plan.nodes.add(*tuple(assets))
getattr(instance.nodes, action)(*tuple(nodes))
return Response({"msg": "ok"})
else:
return Response({"error": serializer.errors})
class AutomationExecutionViewSet(
mixins.CreateModelMixin, mixins.ListModelMixin,
mixins.RetrieveModelMixin, viewsets.GenericViewSet
):
search_fields = ('trigger',)
filterset_fields = ('trigger', 'automation_id')
serializer_class = serializers.AutomationExecutionSerializer
tp: str
def get_queryset(self):
queryset = AutomationExecution.objects.all()
return queryset
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
automation = serializer.validated_data.get('automation')
task = execute_account_automation_task.delay(
pid=str(automation.pk), trigger=Trigger.manual, tp=self.tp
)
return Response({'task': task.id}, status=status.HTTP_201_CREATED)

View File

@@ -0,0 +1,81 @@
# -*- coding: utf-8 -*-
#
from rest_framework import mixins
from accounts import serializers
from accounts.const import AutomationTypes
from accounts.models import ChangeSecretAutomation, ChangeSecretRecord, AutomationExecution
from common.utils import get_object_or_none
from orgs.mixins.api import OrgBulkModelViewSet, OrgGenericViewSet
from .base import (
AutomationAssetsListApi, AutomationRemoveAssetApi, AutomationAddAssetApi,
AutomationNodeAddRemoveApi, AutomationExecutionViewSet
)
__all__ = [
'ChangeSecretAutomationViewSet', 'ChangeSecretRecordViewSet',
'ChangSecretExecutionViewSet', 'ChangSecretAssetsListApi',
'ChangSecretRemoveAssetApi', 'ChangSecretAddAssetApi',
'ChangSecretNodeAddRemoveApi'
]
class ChangeSecretAutomationViewSet(OrgBulkModelViewSet):
model = ChangeSecretAutomation
filter_fields = ('name', 'secret_type', 'secret_strategy')
search_fields = filter_fields
serializer_class = serializers.ChangeSecretAutomationSerializer
class ChangeSecretRecordViewSet(mixins.ListModelMixin, OrgGenericViewSet):
serializer_class = serializers.ChangeSecretRecordSerializer
filter_fields = ['asset', 'execution_id']
search_fields = ['asset__hostname']
def get_queryset(self):
return ChangeSecretRecord.objects.filter(
execution__automation__type=AutomationTypes.change_secret
)
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
eid = self.request.query_params.get('execution_id')
execution = get_object_or_none(AutomationExecution, pk=eid)
if execution:
queryset = queryset.filter(execution=execution)
return queryset
class ChangSecretExecutionViewSet(AutomationExecutionViewSet):
rbac_perms = (
("list", "accounts.view_changesecretexecution"),
("retrieve", "accounts.view_changesecretexecution"),
("create", "accounts.add_changesecretexecution"),
)
tp = AutomationTypes.change_secret
def get_queryset(self):
queryset = super().get_queryset()
queryset = queryset.filter(automation__type=self.tp)
return queryset
class ChangSecretAssetsListApi(AutomationAssetsListApi):
model = ChangeSecretAutomation
class ChangSecretRemoveAssetApi(AutomationRemoveAssetApi):
model = ChangeSecretAutomation
serializer_class = serializers.ChangeSecretUpdateAssetSerializer
class ChangSecretAddAssetApi(AutomationAddAssetApi):
model = ChangeSecretAutomation
serializer_class = serializers.ChangeSecretUpdateAssetSerializer
class ChangSecretNodeAddRemoveApi(AutomationNodeAddRemoveApi):
model = ChangeSecretAutomation
serializer_class = serializers.ChangeSecretUpdateNodeSerializer

View File

@@ -0,0 +1,71 @@
# -*- coding: utf-8 -*-
#
from django.utils.translation import ugettext_lazy as _
from rest_framework import status
from rest_framework.decorators import action
from rest_framework.response import Response
from accounts import serializers
from accounts.const import AutomationTypes
from accounts.const import Source
from accounts.filters import GatheredAccountFilterSet
from accounts.models import GatherAccountsAutomation
from accounts.models import GatheredAccount
from orgs.mixins.api import OrgBulkModelViewSet
from .base import AutomationExecutionViewSet
__all__ = [
'GatherAccountsAutomationViewSet', 'GatherAccountsExecutionViewSet',
'GatheredAccountViewSet'
]
class GatherAccountsAutomationViewSet(OrgBulkModelViewSet):
model = GatherAccountsAutomation
filter_fields = ('name',)
search_fields = filter_fields
serializer_class = serializers.GatherAccountAutomationSerializer
class GatherAccountsExecutionViewSet(AutomationExecutionViewSet):
rbac_perms = (
("list", "accounts.view_gatheraccountsexecution"),
("retrieve", "accounts.view_gatheraccountsexecution"),
("create", "accounts.add_gatheraccountsexecution"),
)
tp = AutomationTypes.gather_accounts
def get_queryset(self):
queryset = super().get_queryset()
queryset = queryset.filter(automation__type=self.tp)
return queryset
class GatheredAccountViewSet(OrgBulkModelViewSet):
model = GatheredAccount
search_fields = ('username',)
filterset_class = GatheredAccountFilterSet
serializer_classes = {
'default': serializers.GatheredAccountSerializer,
}
rbac_perms = {
'sync_account': 'assets.add_gatheredaccount',
}
@action(methods=['post'], detail=True, url_path='sync')
def sync_account(self, request, *args, **kwargs):
gathered_account = super().get_object()
asset = gathered_account.asset
username = gathered_account.username
accounts = asset.accounts.filter(username=username)
if accounts.exists():
accounts.update(source=Source.COLLECTED)
else:
asset.accounts.model.objects.create(
asset=asset, username=username,
name=f'{username}-{_("Collected")}',
source=Source.COLLECTED
)
return Response(status=status.HTTP_201_CREATED)

View File

@@ -0,0 +1,68 @@
# -*- coding: utf-8 -*-
#
from accounts import serializers
from accounts.const import AutomationTypes
from accounts.models import PushAccountAutomation, ChangeSecretRecord
from orgs.mixins.api import OrgBulkModelViewSet
from .base import (
AutomationAssetsListApi, AutomationRemoveAssetApi, AutomationAddAssetApi,
AutomationNodeAddRemoveApi, AutomationExecutionViewSet
)
from .change_secret import ChangeSecretRecordViewSet
__all__ = [
'PushAccountAutomationViewSet', 'PushAccountAssetsListApi', 'PushAccountRemoveAssetApi',
'PushAccountAddAssetApi', 'PushAccountNodeAddRemoveApi', 'PushAccountExecutionViewSet',
'PushAccountRecordViewSet'
]
class PushAccountAutomationViewSet(OrgBulkModelViewSet):
model = PushAccountAutomation
filter_fields = ('name', 'secret_type', 'secret_strategy')
search_fields = filter_fields
serializer_class = serializers.PushAccountAutomationSerializer
class PushAccountExecutionViewSet(AutomationExecutionViewSet):
rbac_perms = (
("list", "accounts.view_pushaccountexecution"),
("retrieve", "accounts.view_pushaccountexecution"),
("create", "accounts.add_pushaccountexecution"),
)
tp = AutomationTypes.push_account
def get_queryset(self):
queryset = super().get_queryset()
queryset = queryset.filter(automation__type=self.tp)
return queryset
class PushAccountRecordViewSet(ChangeSecretRecordViewSet):
serializer_class = serializers.ChangeSecretRecordSerializer
def get_queryset(self):
return ChangeSecretRecord.objects.filter(
execution__automation__type=AutomationTypes.push_account
)
class PushAccountAssetsListApi(AutomationAssetsListApi):
model = PushAccountAutomation
class PushAccountRemoveAssetApi(AutomationRemoveAssetApi):
model = PushAccountAutomation
serializer_class = serializers.PushAccountUpdateAssetSerializer
class PushAccountAddAssetApi(AutomationAddAssetApi):
model = PushAccountAutomation
serializer_class = serializers.PushAccountUpdateAssetSerializer
class PushAccountNodeAddRemoveApi(AutomationNodeAddRemoveApi):
model = PushAccountAutomation
serializer_class = serializers.PushAccountUpdateNodeSerializer

11
apps/accounts/apps.py Normal file
View File

@@ -0,0 +1,11 @@
from django.apps import AppConfig
class AccountsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'accounts'
def ready(self):
from . import signal_handlers
from . import tasks
__all__ = signal_handlers

View File

@@ -0,0 +1,2 @@
from .endpoint import ExecutionManager
from .methods import platform_automation_methods

View File

@@ -5,15 +5,12 @@ from collections import defaultdict, OrderedDict
from django.conf import settings
from django.db.models import F
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from assets.models import AuthBook, SystemUser, Asset
from assets.serializers import AccountBackUpSerializer
from assets.notifications import AccountBackupExecutionTaskMsg
from applications.models import Account, Application
from applications.const import AppType
from applications.serializers import AppAccountBackUpSerializer
from accounts.models import Account
from assets.const import AllTypes
from accounts.serializers import AccountSecretSerializer
from accounts.notifications import AccountBackupExecutionTaskMsg
from users.models import User
from common.utils import get_logger
from common.utils.timezone import local_now_display
@@ -39,7 +36,7 @@ class BaseAccountHandler:
@classmethod
def get_header_fields(cls, serializer: serializers.Serializer):
try:
backup_fields = getattr(serializer, 'Meta').fields
backup_fields = getattr(serializer, 'Meta').fields_backup
except AttributeError:
backup_fields = serializer.fields.keys()
header_fields = {}
@@ -52,23 +49,6 @@ class BaseAccountHandler:
header_fields[field] = str(v.label)
return header_fields
@staticmethod
def load_auth(tp, value, system_user):
if value:
return value
if system_user:
return getattr(system_user, tp, '')
return ''
@classmethod
def replace_auth(cls, account, system_user_dict):
system_user = system_user_dict.get(account.systemuser_id)
account.username = cls.load_auth('username', account.username, system_user)
account.password = cls.load_auth('password', account.password, system_user)
account.private_key = cls.load_auth('private_key', account.private_key, system_user)
account.public_key = cls.load_auth('public_key', account.public_key, system_user)
return account
@classmethod
def create_row(cls, data, header_fields):
data = cls.unpack_data(data)
@@ -92,84 +72,37 @@ class AssetAccountHandler(BaseAccountHandler):
@staticmethod
def get_filename(plan_name):
filename = os.path.join(
PATH, f'{plan_name}-{_("Asset")}-{local_now_display()}-{time.time()}.xlsx'
PATH, f'{plan_name}-{local_now_display()}-{time.time()}.xlsx'
)
return filename
@classmethod
def replace_account_info(cls, account, asset_dict, system_user_dict):
asset = asset_dict.get(account.asset_id)
account.ip = asset.ip if asset else ''
account.hostname = asset.hostname if asset else ''
account = cls.replace_auth(account, system_user_dict)
return account
def create_data_map(cls, accounts):
data_map = defaultdict(list)
@classmethod
def create_data_map(cls, system_user_dict):
sheet_name = AuthBook._meta.verbose_name
assets = Asset.objects.only('id', 'hostname', 'ip')
asset_dict = {asset.id: asset for asset in assets}
accounts = AuthBook.objects.all()
if not accounts.exists():
return
return data_map
header_fields = cls.get_header_fields(AccountBackUpSerializer(accounts.first()))
for account in accounts:
cls.replace_account_info(account, asset_dict, system_user_dict)
data = AccountBackUpSerializer(accounts, many=True).data
data_map = cls.add_rows(data, header_fields, sheet_name)
logger.info('\n\033[33m- 共收集 {} 条资产账号\033[0m'.format(accounts.count()))
return data_map
class AppAccountHandler(BaseAccountHandler):
@staticmethod
def get_filename(plan_name):
filename = os.path.join(
PATH, f'{plan_name}-{_("Application")}-{local_now_display()}-{time.time()}.xlsx'
)
return filename
@classmethod
def replace_account_info(cls, account, app_dict, system_user_dict):
app = app_dict.get(account.app_id)
account.type = app.type if app else ''
account.app_display = app.name if app else ''
account.category = app.category if app else ''
account = cls.replace_auth(account, system_user_dict)
return account
@classmethod
def create_data_map(cls, system_user_dict):
apps = Application.objects.only('id', 'type', 'name', 'category')
app_dict = {app.id: app for app in apps}
qs = Account.objects.all().annotate(app_type=F('app__type'))
if not qs.exists():
return
type_dict = {}
for i in AllTypes.grouped_choices_to_objs():
for j in i['children']:
type_dict[j['value']] = j['display_name']
header_fields = cls.get_header_fields(AccountSecretSerializer(accounts.first()))
account_type_map = defaultdict(list)
for i in qs:
account_type_map[i.app_type].append(i)
for account in accounts:
account_type_map[account.type].append(account)
data_map = {}
for app_type, accounts in account_type_map.items():
sheet_name = AppType.get_label(app_type)
header_fields = cls.get_header_fields(AppAccountBackUpSerializer(tp=app_type))
if not accounts:
continue
for account in accounts:
cls.replace_account_info(account, app_dict, system_user_dict)
data = AppAccountBackUpSerializer(accounts, many=True, tp=app_type).data
for tp, _accounts in account_type_map.items():
sheet_name = type_dict.get(tp, tp)
data = AccountSecretSerializer(_accounts, many=True).data
data_map.update(cls.add_rows(data, header_fields, sheet_name))
logger.info('\n\033[33m- 共收集{}条应用账号\033[0m'.format(qs.count()))
logger.info('\n\033[33m- 共备份 {} 条账号\033[0m'.format(accounts.count()))
return data_map
handler_map = {
'asset': AssetAccountHandler,
'application': AppAccountHandler
}
class AccountBackupHandler:
def __init__(self, execution):
self.execution = execution
@@ -185,28 +118,20 @@ class AccountBackupHandler:
# Print task start date
time_start = time.time()
files = []
system_user_qs = SystemUser.objects.only(
'id', 'username', 'password', 'private_key', 'public_key'
)
system_user_dict = {i.id: i for i in system_user_qs}
for account_type in self.execution.types:
handler = handler_map.get(account_type)
if not handler:
continue
accounts = self.execution.backup_accounts
data_map = AssetAccountHandler.create_data_map(accounts)
if not data_map:
return files
data_map = handler.create_data_map(system_user_dict)
if not data_map:
continue
filename = AssetAccountHandler.get_filename(self.plan_name)
filename = handler.get_filename(self.plan_name)
wb = Workbook(filename)
for sheet, data in data_map.items():
ws = wb.create_sheet(str(sheet))
for row in data:
ws.append(row)
wb.save(filename)
files.append(filename)
wb = Workbook(filename)
for sheet, data in data_map.items():
ws = wb.create_sheet(str(sheet))
for row in data:
ws.append(row)
wb.save(filename)
files.append(filename)
timedelta = round((time.time() - time_start), 2)
logger.info('步骤完成: 用时 {}s'.format(timedelta))
return files

View File

@@ -12,7 +12,7 @@ from .handlers import AccountBackupHandler
logger = get_logger(__name__)
class AccountBackupExecutionManager:
class AccountBackupManager:
def __init__(self, execution):
self.execution = execution
self.date_start = timezone.now()

View File

@@ -0,0 +1,14 @@
## all connection vars
hostname asset_name=name asset_type=type asset_primary_protocol=ssh asset_primary_port=22 asset_protocols=[]
## local connection
hostname ansible_connection=local
## local connection with gateway
hostname ansible_connection=ssh ansible_user=gateway.username ansible_port=gateway.port ansible_host=gateway.host ansible_ssh_private_key_file=gateway.key
## ssh connection for windows
hostname ansible_connection=ssh ansible_shell_type=powershell/cmd ansible_user=windows.username ansible_port=windows.port ansible_host=windows.host ansible_ssh_private_key_file=windows.key
## ssh connection
hostname ansible_user=user ansible_password=pass ansible_host=host ansible_port=port ansible_ssh_private_key_file=key ssh_args="-o StrictHostKeyChecking=no"

View File

@@ -0,0 +1,12 @@
from accounts.automations.methods import platform_automation_methods
from assets.automations.base.manager import BasePlaybookManager
from common.utils import get_logger
logger = get_logger(__name__)
class AccountBasePlaybookManager(BasePlaybookManager):
@property
def platform_automation_methods(self):
return platform_automation_methods

View File

@@ -0,0 +1,58 @@
- hosts: mongodb
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Test MongoDB connection
mongodb_ping:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
ssl: "{{ jms_asset.spec_info.use_ssl }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key }}"
connection_options:
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert}}"
register: db_info
- name: Display MongoDB version
debug:
var: db_info.server_version
when: db_info is succeeded
- name: Change MongoDB password
mongodb_user:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
ssl: "{{ jms_asset.spec_info.use_ssl }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key }}"
connection_options:
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert}}"
db: "{{ jms_asset.spec_info.db_name }}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
when: db_info is succeeded
register: change_info
- name: Verify password
mongodb_ping:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
ssl: "{{ jms_asset.spec_info.use_ssl }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key }}"
connection_options:
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert}}"
when:
- db_info is succeeded
- change_info is succeeded

View File

@@ -0,0 +1,6 @@
id: change_secret_mongodb
name: Change secret for MongoDB
category: database
type:
- mongodb
method: change_secret

View File

@@ -0,0 +1,43 @@
- hosts: mysql
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
db_name: "{{ jms_asset.spec_info.db_name }}"
tasks:
- name: Test MySQL connection
community.mysql.mysql_info:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
filter: version
register: db_info
- name: MySQL version
debug:
var: db_info.version.full
- name: Change MySQL password
community.mysql.mysql_user:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
host: "%"
priv: "{{ account.username + '.*:USAGE' if db_name == '' else db_name + '.*:ALL' }}"
when: db_info is succeeded
register: change_info
- name: Verify password
community.mysql.mysql_info:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
filter: version
when:
- db_info is succeeded
- change_info is succeeded

View File

@@ -0,0 +1,7 @@
id: change_secret_mysql
name: Change secret for MySQL
category: database
type:
- mysql
- mariadb
method: change_secret

View File

@@ -0,0 +1,44 @@
- hosts: oracle
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Test Oracle connection
oracle_ping:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
mode: "{{ jms_account.mode }}"
register: db_info
- name: Display Oracle version
debug:
var: db_info.server_version
when: db_info is succeeded
- name: Change Oracle password
oracle_user:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
mode: "{{ jms_account.mode }}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
when: db_info is succeeded
register: change_info
- name: Verify password
oracle_ping:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
when:
- db_info is succeeded
- change_info is succeeded

View File

@@ -0,0 +1,6 @@
id: change_secret_oracle
name: Change secret for Oracle
category: database
type:
- oracle
method: change_secret

View File

@@ -0,0 +1,46 @@
- hosts: postgre
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Test PostgreSQL connection
community.postgresql.postgresql_ping:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_db: "{{ jms_asset.spec_info.db_name }}"
register: result
failed_when: not result.is_available
- name: Display PostgreSQL version
debug:
var: result.server_version.full
when: result is succeeded
- name: Change PostgreSQL password
community.postgresql.postgresql_user:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
db: "{{ jms_asset.spec_info.db_name }}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
role_attr_flags: LOGIN
when: result is succeeded
register: change_info
- name: Verify password
community.postgresql.postgresql_ping:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
db: "{{ jms_asset.spec_info.db_name }}"
when:
- result is succeeded
- change_info is succeeded
register: result
failed_when: not result.is_available

View File

@@ -0,0 +1,6 @@
id: change_secret_postgresql
name: Change secret for PostgreSQL
category: database
type:
- postgresql
method: change_secret

View File

@@ -0,0 +1,69 @@
- hosts: sqlserver
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Test SQLServer connection
community.general.mssql_script:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
script: |
SELECT @@version
register: db_info
- name: SQLServer version
set_fact:
info:
version: "{{ db_info.query_results[0][0][0][0].splitlines()[0] }}"
- debug:
var: info
- name: Check whether SQLServer User exist
community.general.mssql_script:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
script: "SELECT 1 from sys.sql_logins WHERE name='{{ account.username }}';"
when: db_info is succeeded
register: user_exist
- name: Change SQLServer password
community.general.mssql_script:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
script: "ALTER LOGIN {{ account.username }} WITH PASSWORD = '{{ account.secret }}'; select @@version"
when: user_exist.query_results[0] | length != 0
register: change_info
- name: Add SQLServer user
community.general.mssql_script:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
script: "CREATE LOGIN {{ account.username }} WITH PASSWORD = '{{ account.secret }}'; select @@version"
when: user_exist.query_results[0] | length == 0
register: change_info
- name: Verify password
community.general.mssql_script:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
script: |
SELECT @@version
when:
- db_info is succeeded
- change_info is succeeded

View File

@@ -0,0 +1,6 @@
id: change_secret_sqlserver
name: Change secret for SQLServer
category: database
type:
- sqlserver
method: change_secret

View File

@@ -0,0 +1,2 @@
# all base inventory in base/base_inventory.txt
asset_name(ip)_account_username account={"username": "", "password": "xxx"} ...base_inventory_vars

View File

@@ -0,0 +1,54 @@
- hosts: demo
gather_facts: no
tasks:
- name: Test privileged account
ansible.builtin.ping:
- name: Change password
ansible.builtin.user:
name: "{{ account.username }}"
password: "{{ account.secret | password_hash('des') }}"
update_password: always
when: secret_type == "password"
- name: create user If it already exists, no operation will be performed
ansible.builtin.user:
name: "{{ account.username }}"
when: secret_type == "ssh_key"
- name: remove jumpserver ssh key
ansible.builtin.lineinfile:
dest: "{{ kwargs.dest }}"
regexp: "{{ kwargs.regexp }}"
state: absent
when:
- secret_type == "ssh_key"
- kwargs.strategy == "set_jms"
- name: Change SSH key
ansible.builtin.authorized_key:
user: "{{ account.username }}"
key: "{{ account.secret }}"
exclusive: "{{ kwargs.exclusive }}"
when: secret_type == "ssh_key"
- name: Refresh connection
ansible.builtin.meta: reset_connection
- name: Verify password
ansible.builtin.ping:
become: no
vars:
ansible_user: "{{ account.username }}"
ansible_password: "{{ account.secret }}"
ansible_become: no
when: secret_type == "password"
- name: Verify SSH key
ansible.builtin.ping:
become: no
vars:
ansible_user: "{{ account.username }}"
ansible_ssh_private_key_file: "{{ account.private_key_path }}"
ansible_become: no
when: secret_type == "ssh_key"

View File

@@ -0,0 +1,6 @@
id: change_secret_aix
name: Change secret for aix
category: host
type:
- AIX
method: change_secret

View File

@@ -0,0 +1,54 @@
- hosts: demo
gather_facts: no
tasks:
- name: Test privileged account
ansible.builtin.ping:
- name: Change password
ansible.builtin.user:
name: "{{ account.username }}"
password: "{{ account.secret | password_hash('sha512') }}"
update_password: always
when: secret_type == "password"
- name: create user If it already exists, no operation will be performed
ansible.builtin.user:
name: "{{ account.username }}"
when: secret_type == "ssh_key"
- name: remove jumpserver ssh key
ansible.builtin.lineinfile:
dest: "{{ kwargs.dest }}"
regexp: "{{ kwargs.regexp }}"
state: absent
when:
- secret_type == "ssh_key"
- kwargs.strategy == "set_jms"
- name: Change SSH key
ansible.builtin.authorized_key:
user: "{{ account.username }}"
key: "{{ account.secret }}"
exclusive: "{{ kwargs.exclusive }}"
when: secret_type == "ssh_key"
- name: Refresh connection
ansible.builtin.meta: reset_connection
- name: Verify password
ansible.builtin.ping:
become: no
vars:
ansible_user: "{{ account.username }}"
ansible_password: "{{ account.secret }}"
ansible_become: no
when: secret_type == "password"
- name: Verify SSH key
ansible.builtin.ping:
become: no
vars:
ansible_user: "{{ account.username }}"
ansible_ssh_private_key_file: "{{ account.private_key_path }}"
ansible_become: no
when: secret_type == "ssh_key"

View File

@@ -0,0 +1,7 @@
id: change_secret_posix
name: Change secret for posix
category: host
type:
- unix
- linux
method: change_secret

View File

@@ -0,0 +1,34 @@
- hosts: demo
gather_facts: no
tasks:
- name: Test privileged account
ansible.windows.win_ping:
# - name: Print variables
# debug:
# msg: "Username: {{ account.username }}, Password: {{ account.secret }}"
- name: Get groups of a Windows user
ansible.windows.win_user:
name: "{{ jms_account.username }}"
register: user_info
- name: Change password
ansible.windows.win_user:
name: "{{ account.username }}"
password: "{{ account.secret }}"
groups: "{{ user_info.groups[0].name }}"
groups_action: add
update_password: always
when: account.secret_type == "password"
- name: Refresh connection
ansible.builtin.meta: reset_connection
- name: Verify password
ansible.windows.win_ping:
vars:
ansible_user: "{{ account.username }}"
ansible_password: "{{ account.secret }}"
when: account.secret_type == "password"

View File

@@ -0,0 +1,7 @@
id: change_secret_local_windows
name: Change secret local account for Windows
version: 1
method: change_secret
category: host
type:
- windows

View File

@@ -0,0 +1,219 @@
import os
import time
from collections import defaultdict
from copy import deepcopy
from django.conf import settings
from django.utils import timezone
from openpyxl import Workbook
from accounts.const import AutomationTypes, SecretType, SSHKeyStrategy, SecretStrategy
from accounts.models import ChangeSecretRecord
from accounts.notifications import ChangeSecretExecutionTaskMsg
from accounts.serializers import ChangeSecretRecordBackUpSerializer
from assets.const import HostTypes
from common.utils import get_logger, lazyproperty
from common.utils.file import encrypt_and_compress_zip_file
from common.utils.timezone import local_now_display
from users.models import User
from ..base.manager import AccountBasePlaybookManager
from ...utils import SecretGenerator
logger = get_logger(__name__)
class ChangeSecretManager(AccountBasePlaybookManager):
ansible_account_prefer = ''
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.method_hosts_mapper = defaultdict(list)
self.secret_type = self.execution.snapshot['secret_type']
self.secret_strategy = self.execution.snapshot.get(
'secret_strategy', SecretStrategy.custom
)
self.ssh_key_change_strategy = self.execution.snapshot.get(
'ssh_key_change_strategy', SSHKeyStrategy.add
)
self.snapshot_account_usernames = self.execution.snapshot['accounts']
self.name_recorder_mapper = {} # 做个映射,方便后面处理
@classmethod
def method_type(cls):
return AutomationTypes.change_secret
def get_kwargs(self, account, secret):
kwargs = {}
if self.secret_type != SecretType.SSH_KEY:
return kwargs
kwargs['strategy'] = self.ssh_key_change_strategy
kwargs['exclusive'] = 'yes' if kwargs['strategy'] == SSHKeyStrategy.set else 'no'
if kwargs['strategy'] == SSHKeyStrategy.set_jms:
kwargs['dest'] = '/home/{}/.ssh/authorized_keys'.format(account.username)
kwargs['regexp'] = '.*{}$'.format(secret.split()[2].strip())
return kwargs
@lazyproperty
def secret_generator(self):
return SecretGenerator(
self.secret_strategy, self.secret_type,
self.execution.snapshot.get('password_rules')
)
def get_secret(self):
if self.secret_strategy == SecretStrategy.custom:
return self.execution.snapshot['secret']
else:
return self.secret_generator.get_secret()
def host_callback(
self, host, asset=None, account=None,
automation=None, path_dir=None, **kwargs
):
host = super().host_callback(
host, asset=asset, account=account, automation=automation,
path_dir=path_dir, **kwargs
)
if host.get('error'):
return host
accounts = asset.accounts.all()
if account:
accounts = accounts.exclude(username=account.username)
if '*' not in self.snapshot_account_usernames:
accounts = accounts.filter(username__in=self.snapshot_account_usernames)
accounts = accounts.filter(secret_type=self.secret_type)
if not accounts:
print('没有发现待改密账号: %s 用户名: %s 类型: %s' % (
asset.name, self.snapshot_account_usernames, self.secret_type
))
return []
method_attr = getattr(automation, self.method_type() + '_method')
method_hosts = self.method_hosts_mapper[method_attr]
method_hosts = [h for h in method_hosts if h != host['name']]
inventory_hosts = []
records = []
host['secret_type'] = self.secret_type
if asset.type == HostTypes.WINDOWS and self.secret_type == SecretType.SSH_KEY:
print(f'Windows {asset} does not support ssh key push \n')
return inventory_hosts
for account in accounts:
h = deepcopy(host)
h['name'] += '(' + account.username + ')'
new_secret = self.get_secret()
recorder = ChangeSecretRecord(
asset=asset, account=account, execution=self.execution,
old_secret=account.secret, new_secret=new_secret,
)
records.append(recorder)
self.name_recorder_mapper[h['name']] = recorder
private_key_path = None
if self.secret_type == SecretType.SSH_KEY:
private_key_path = self.generate_private_key_path(new_secret, path_dir)
new_secret = self.generate_public_key(new_secret)
h['kwargs'] = self.get_kwargs(account, new_secret)
h['account'] = {
'name': account.name,
'username': account.username,
'secret_type': account.secret_type,
'secret': new_secret,
'private_key_path': private_key_path
}
if asset.platform.type == 'oracle':
h['account']['mode'] = 'sysdba' if account.privileged else None
inventory_hosts.append(h)
method_hosts.append(h['name'])
self.method_hosts_mapper[method_attr] = method_hosts
ChangeSecretRecord.objects.bulk_create(records)
return inventory_hosts
def on_host_success(self, host, result):
recorder = self.name_recorder_mapper.get(host)
if not recorder:
return
recorder.status = 'success'
recorder.date_finished = timezone.now()
recorder.save()
account = recorder.account
if not account:
print("Account not found, deleted ?")
return
account.secret = recorder.new_secret
account.save(update_fields=['secret'])
def on_host_error(self, host, error, result):
recorder = self.name_recorder_mapper.get(host)
if not recorder:
return
recorder.status = 'failed'
recorder.date_finished = timezone.now()
recorder.error = error
recorder.save()
def on_runner_failed(self, runner, e):
logger.error("Change secret error: ", e)
def check_secret(self):
if self.secret_strategy == SecretStrategy.custom \
and not self.execution.snapshot['secret']:
print('Custom secret is empty')
return False
return True
def run(self, *args, **kwargs):
if not self.check_secret():
return
super().run(*args, **kwargs)
recorders = self.name_recorder_mapper.values()
recorders = list(recorders)
self.send_recorder_mail(recorders)
def send_recorder_mail(self, recorders):
recipients = self.execution.recipients
if not recorders or not recipients:
return
recipients = User.objects.filter(id__in=list(recipients.keys()))
name = self.execution.snapshot['name']
path = os.path.join(os.path.dirname(settings.BASE_DIR), 'tmp')
filename = os.path.join(path, f'{name}-{local_now_display()}-{time.time()}.xlsx')
if not self.create_file(recorders, filename):
return
for user in recipients:
attachments = []
if user.secret_key:
password = user.secret_key.encode('utf8')
attachment = os.path.join(path, f'{name}-{local_now_display()}-{time.time()}.zip')
encrypt_and_compress_zip_file(attachment, password, [filename])
attachments = [attachment]
ChangeSecretExecutionTaskMsg(name, user).publish(attachments)
os.remove(filename)
@staticmethod
def create_file(recorders, filename):
serializer_cls = ChangeSecretRecordBackUpSerializer
serializer = serializer_cls(recorders, many=True)
header = [str(v.label) for v in serializer.child.fields.values()]
rows = [[str(i) for i in row.values()] for row in serializer.data]
if not rows:
return False
rows.insert(0, header)
wb = Workbook(filename)
ws = wb.create_sheet('Sheet1')
for row in rows:
ws.append(row)
wb.save(filename)
return True

View File

@@ -0,0 +1,26 @@
from .push_account.manager import PushAccountManager
from .change_secret.manager import ChangeSecretManager
from .verify_account.manager import VerifyAccountManager
from .backup_account.manager import AccountBackupManager
from .gather_accounts.manager import GatherAccountsManager
from .verify_gateway_account.manager import VerifyGatewayAccountManager
from ..const import AutomationTypes
class ExecutionManager:
manager_type_mapper = {
AutomationTypes.push_account: PushAccountManager,
AutomationTypes.change_secret: ChangeSecretManager,
AutomationTypes.verify_account: VerifyAccountManager,
AutomationTypes.gather_accounts: GatherAccountsManager,
AutomationTypes.verify_gateway_account: VerifyGatewayAccountManager,
# TODO 后期迁移到自动化策略中
'backup_account': AccountBackupManager,
}
def __init__(self, execution):
self.execution = execution
self._runner = self.manager_type_mapper[execution.manager_type](execution)
def run(self, *args, **kwargs):
return self._runner.run(*args, **kwargs)

View File

@@ -0,0 +1,27 @@
- hosts: mongodb
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Get info
community.mongodb.mongodb_info:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
ssl: "{{ jms_asset.spec_info.use_ssl }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key }}"
connection_options:
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert}}"
filter: users
register: db_info
- name: Define info by set_fact
set_fact:
info: "{{ db_info.users }}"
- debug:
var: info

View File

@@ -0,0 +1,6 @@
id: gather_accounts_mongodb
name: Gather account from MongoDB
category: database
type:
- mongodb
method: gather_accounts

View File

@@ -0,0 +1,21 @@
- hosts: mysql
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Get info
community.mysql.mysql_info:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
filter: users
register: db_info
- name: Define info by set_fact
set_fact:
info: "{{ db_info.users }}"
- debug:
var: info

View File

@@ -0,0 +1,7 @@
id: gather_accounts_mysql
name: Gather account from MySQL
category: database
type:
- mysql
- mariadb
method: gather_accounts

View File

@@ -0,0 +1,23 @@
- hosts: oralce
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Get info
oracle_info:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
mode: "{{ jms_account.mode }}"
filter: users
register: db_info
- name: Define info by set_fact
set_fact:
info: "{{ db_info.users }}"
- debug:
var: info

View File

@@ -0,0 +1,6 @@
id: gather_accounts_oracle
name: Gather account from Oracle
category: database
type:
- oracle
method: gather_accounts

View File

@@ -0,0 +1,22 @@
- hosts: postgresql
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Get info
community.postgresql.postgresql_info:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_db: "{{ jms_asset.spec_info.db_name }}"
filter: "roles"
register: db_info
- name: Define info by set_fact
set_fact:
info: "{{ db_info.roles }}"
- debug:
var: info

View File

@@ -0,0 +1,6 @@
id: gather_accounts_postgresql
name: Gather account for PostgreSQL
category: database
type:
- postgresql
method: gather_accounts

View File

@@ -0,0 +1,63 @@
from django.utils import timezone
__all__ = ['GatherAccountsFilter']
# TODO 后期会挪到playbook中
class GatherAccountsFilter:
def __init__(self, tp):
self.tp = tp
@staticmethod
def mysql_filter(info):
result = {}
for _, user_dict in info.items():
for username, data in user_dict.items():
if data.get('account_locked') == 'N':
result[username] = {}
return result
@staticmethod
def postgresql_filter(info):
result = {}
for username in info:
result[username] = {}
return result
@staticmethod
def posix_filter(info):
result = {}
for line in info:
data = line.split('@')
if len(data) == 1:
result[line] = {}
continue
if len(data) != 3:
continue
username, address, dt = data
date = timezone.datetime.strptime(f'{dt} +0800', '%b %d %H:%M:%S %Y %z')
result[username] = {'address': address, 'date': date}
return result
@staticmethod
def windows_filter(info):
info = info[4:-2]
result = {}
for i in info:
for username in i.split():
result[username] = {}
return result
def run(self, method_id_meta_mapper, info):
run_method_name = None
for k, v in method_id_meta_mapper.items():
if self.tp not in v['type']:
continue
run_method_name = k.replace(f'{v["method"]}_', '')
if not run_method_name:
return info
return getattr(self, f'{run_method_name}_filter')(info)

View File

@@ -0,0 +1,21 @@
- hosts: demo
gather_facts: no
tasks:
- name: Gather posix account
ansible.builtin.shell:
cmd: >
users=$(getent passwd | grep -v nologin | grep -v shutdown | awk -F":" '{ print $1 }');for i in $users;
do k=$(last -w -F $i -1 | head -1 | grep -v ^$ | awk '{ print $1"@"$3"@"$5,$6,$7,$8 }')
if [ -n "$k" ]; then
echo $k
else
echo $i
fi;done
register: result
- name: Define info by set_fact
ansible.builtin.set_fact:
info: "{{ result.stdout_lines }}"
- debug:
var: info

View File

@@ -0,0 +1,7 @@
id: gather_accounts_posix
name: Gather posix account
category: host
type:
- linux
- unix
method: gather_accounts

View File

@@ -0,0 +1,13 @@
- hosts: demo
gather_facts: no
tasks:
- name: Gather posix account
ansible.builtin.win_shell: net user
register: result
- name: Define info by set_fact
ansible.builtin.set_fact:
info: "{{ result.stdout_lines }}"
- debug:
var: info

View File

@@ -0,0 +1,7 @@
id: gather_accounts_windows
name: Gather account windows
version: 1
method: gather_accounts
category: host
type:
- windows

View File

@@ -0,0 +1,50 @@
from accounts.const import AutomationTypes
from accounts.models import GatheredAccount
from common.utils import get_logger
from orgs.utils import tmp_to_org
from .filter import GatherAccountsFilter
from ..base.manager import AccountBasePlaybookManager
logger = get_logger(__name__)
class GatherAccountsManager(AccountBasePlaybookManager):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.host_asset_mapper = {}
@classmethod
def method_type(cls):
return AutomationTypes.gather_accounts
def host_callback(self, host, asset=None, **kwargs):
super().host_callback(host, asset=asset, **kwargs)
self.host_asset_mapper[host['name']] = asset
return host
def filter_success_result(self, host, result):
result = GatherAccountsFilter(host).run(self.method_id_meta_mapper, result)
return result
@staticmethod
def update_or_create_gathered_accounts(asset, result):
with tmp_to_org(asset.org_id):
GatheredAccount.objects.filter(asset=asset, present=True).update(present=False)
for username, data in result.items():
d = {'asset': asset, 'username': username, 'present': True}
if data.get('date'):
d['date_last_login'] = data['date']
if data.get('address'):
d['address_last_login'] = data['address'][:32]
GatheredAccount.objects.update_or_create(
defaults=d, asset=asset, username=username,
)
def on_host_success(self, host, result):
info = result.get('debug', {}).get('res', {}).get('info', {})
asset = self.host_asset_mapper.get(host)
if asset and info:
result = self.filter_success_result(asset.type, info)
self.update_or_create_gathered_accounts(asset, result)
else:
logger.error("Not found info".format(host))

View File

@@ -0,0 +1,30 @@
import os
import copy
from accounts.const import AutomationTypes
from assets.automations.methods import get_platform_automation_methods
def copy_change_secret_to_push_account(methods):
push_account = AutomationTypes.push_account
change_secret = AutomationTypes.change_secret
copy_methods = copy.deepcopy(methods)
for method in copy_methods:
if not method['id'].startswith(change_secret):
continue
copy_method = copy.deepcopy(method)
copy_method['method'] = push_account.value
copy_method['id'] = copy_method['id'].replace(
change_secret, push_account
)
copy_method['name'] = copy_method['name'].replace(
'Change secret', 'Push account'
)
methods.append(copy_method)
return methods
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
automation_methods = get_platform_automation_methods(BASE_DIR)
platform_automation_methods = copy_change_secret_to_push_account(automation_methods)

View File

@@ -0,0 +1,178 @@
from copy import deepcopy
from django.db.models import QuerySet
from accounts.const import AutomationTypes, SecretType
from accounts.models import Account
from assets.const import HostTypes
from common.utils import get_logger
from ..base.manager import AccountBasePlaybookManager
from ..change_secret.manager import ChangeSecretManager
logger = get_logger(__name__)
class PushAccountManager(ChangeSecretManager, AccountBasePlaybookManager):
ansible_account_prefer = ''
@classmethod
def method_type(cls):
return AutomationTypes.push_account
def create_nonlocal_accounts(self, accounts, snapshot_account_usernames, asset):
secret_type = self.secret_type
usernames = accounts.filter(secret_type=secret_type).values_list(
'username', flat=True
)
create_usernames = set(snapshot_account_usernames) - set(usernames)
create_account_objs = [
Account(
name=f'{username}-{secret_type}', username=username,
secret_type=secret_type, asset=asset,
)
for username in create_usernames
]
Account.objects.bulk_create(create_account_objs)
def get_accounts(self, privilege_account, accounts: QuerySet):
if not privilege_account:
print(f'not privilege account')
return []
snapshot_account_usernames = self.execution.snapshot['accounts']
if '*' in snapshot_account_usernames:
return accounts.exclude(username=privilege_account.username)
asset = privilege_account.asset
self.create_nonlocal_accounts(accounts, snapshot_account_usernames, asset)
accounts = asset.accounts.exclude(username=privilege_account.username).filter(
username__in=snapshot_account_usernames, secret_type=self.secret_type
)
return accounts
def host_callback(self, host, asset=None, account=None, automation=None, path_dir=None, **kwargs):
host = super(ChangeSecretManager, self).host_callback(
host, asset=asset, account=account, automation=automation,
path_dir=path_dir, **kwargs
)
if host.get('error'):
return host
accounts = asset.accounts.all()
accounts = self.get_accounts(account, accounts)
inventory_hosts = []
host['secret_type'] = self.secret_type
if asset.type == HostTypes.WINDOWS and self.secret_type == SecretType.SSH_KEY:
msg = f'Windows {asset} does not support ssh key push \n'
print(msg)
return inventory_hosts
for account in accounts:
h = deepcopy(host)
h['name'] += '(' + account.username + ')'
new_secret = self.get_secret()
self.name_recorder_mapper[h['name']] = {
'account': account, 'new_secret': new_secret,
}
private_key_path = None
if self.secret_type == SecretType.SSH_KEY:
private_key_path = self.generate_private_key_path(new_secret, path_dir)
new_secret = self.generate_public_key(new_secret)
h['kwargs'] = self.get_kwargs(account, new_secret)
h['account'] = {
'name': account.name,
'username': account.username,
'secret_type': account.secret_type,
'secret': new_secret,
'private_key_path': private_key_path
}
if asset.platform.type == 'oracle':
h['account']['mode'] = 'sysdba' if account.privileged else None
inventory_hosts.append(h)
return inventory_hosts
def on_host_success(self, host, result):
account_info = self.name_recorder_mapper.get(host)
if not account_info:
return
account = account_info['account']
new_secret = account_info['new_secret']
if not account:
return
account.secret = new_secret
account.save(update_fields=['secret'])
def on_host_error(self, host, error, result):
pass
def on_runner_failed(self, runner, e):
logger.error("Pust account error: ", e)
def run(self, *args, **kwargs):
if not self.check_secret():
return
super().run(*args, **kwargs)
# @classmethod
# def trigger_by_asset_create(cls, asset):
# automations = PushAccountAutomation.objects.filter(
# triggers__contains=TriggerChoice.on_asset_create
# )
# account_automation_map = {auto.username: auto for auto in automations}
#
# util = AssetPermissionUtil()
# permissions = util.get_permissions_for_assets([asset], with_node=True)
# account_permission_map = defaultdict(list)
# for permission in permissions:
# for account in permission.accounts:
# account_permission_map[account].append(permission)
#
# username_automation_map = {}
# for username, automation in account_automation_map.items():
# if username != '@USER':
# username_automation_map[username] = automation
# continue
#
# asset_permissions = account_permission_map.get(username)
# if not asset_permissions:
# continue
# asset_permissions = util.get_permissions([p.id for p in asset_permissions])
# usernames = asset_permissions.values_list('users__username', flat=True).distinct()
# for _username in usernames:
# username_automation_map[_username] = automation
#
# asset_usernames_exists = asset.accounts.values_list('username', flat=True)
# accounts_to_create = []
# accounts_to_push = []
# for username, automation in username_automation_map.items():
# if username in asset_usernames_exists:
# continue
#
# if automation.secret_strategy != SecretStrategy.custom:
# secret_generator = SecretGenerator(
# automation.secret_strategy, automation.secret_type,
# automation.password_rules
# )
# secret = secret_generator.get_secret()
# else:
# secret = automation.secret
#
# account = Account(
# username=username, secret=secret,
# asset=asset, secret_type=automation.secret_type,
# comment='Create by account creation {}'.format(automation.name),
# )
# accounts_to_create.append(account)
# if automation.action == 'create_and_push':
# accounts_to_push.append(account)
# else:
# accounts_to_create.append(account)
#
# logger.debug(f'Create account {account} for asset {asset}')
# @classmethod
# def trigger_by_permission_accounts_change(cls):
# pass

View File

@@ -0,0 +1,18 @@
- hosts: mongdb
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Verify account
mongodb_ping:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
ssl: "{{ jms_asset.spec_info.use_ssl }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key }}"
connection_options:
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert}}"

View File

@@ -0,0 +1,6 @@
id: verify_account_mongodb
name: Verify account from MongoDB
category: database
type:
- mongodb
method: verify_account

View File

@@ -0,0 +1,13 @@
- hosts: mysql
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Verify account
community.mysql.mysql_info:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
filter: version

View File

@@ -0,0 +1,7 @@
id: verify_account_mysql
name: Verify account from MySQL
category: database
type:
- mysql
- mariadb
method: verify_account

View File

@@ -0,0 +1,14 @@
- hosts: oracle
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Verify account
oracle_ping:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
mode: "{{ account.mode }}"

View File

@@ -0,0 +1,6 @@
id: verify_account_oracle
name: Verify account from Oracle
category: database
type:
- oracle
method: verify_account

View File

@@ -0,0 +1,16 @@
- hosts: postgresql
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Verify account
community.postgresql.postgresql_ping:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
db: "{{ jms_asset.spec_info.db_name }}"
register: result
failed_when: not result.is_available

View File

@@ -0,0 +1,6 @@
id: verify_account_postgresql
name: Verify account for PostgreSQL
category: database
type:
- postgresql
method: verify_account

View File

@@ -0,0 +1,15 @@
- hosts: sqlserver
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
tasks:
- name: Verify account
community.general.mssql_script:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
script: |
SELECT @@version

View File

@@ -0,0 +1,6 @@
id: verify_account_sqlserver
name: Verify account from SQLServer
category: database
type:
- sqlserver
method: verify_account

View File

@@ -0,0 +1,11 @@
- hosts: demo
gather_facts: no
tasks:
- name: Verify account connectivity
become: no
ansible.builtin.ping:
vars:
ansible_become: no
ansible_user: "{{ account.username }}"
ansible_password: "{{ account.secret }}"
ansible_ssh_private_key_file: "{{ account.private_key_path }}"

View File

@@ -0,0 +1,7 @@
id: verify_account_posix
name: Verify posix account
category: host
type:
- linux
- unix
method: verify_account

View File

@@ -0,0 +1,8 @@
- hosts: windows
gather_facts: no
tasks:
- name: Verify account
ansible.windows.win_ping:
vars:
ansible_user: "{{ account.username }}"
ansible_password: "{{ account.secret }}"

View File

@@ -0,0 +1,7 @@
id: verify_account_windows
name: Verify account windows
version: 1
method: verify_account
category: host
type:
- windows

View File

@@ -0,0 +1,81 @@
import os
from copy import deepcopy
from django.db.models import QuerySet
from accounts.const import AutomationTypes, Connectivity, SecretType
from common.utils import get_logger
from ..base.manager import AccountBasePlaybookManager
logger = get_logger(__name__)
class VerifyAccountManager(AccountBasePlaybookManager):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.host_account_mapper = {}
def prepare_runtime_dir(self):
path = super().prepare_runtime_dir()
ansible_config_path = os.path.join(path, 'ansible.cfg')
with open(ansible_config_path, 'w') as f:
f.write('[ssh_connection]\n')
f.write('ssh_args = -o ControlMaster=no -o ControlPersist=no\n')
return path
def host_callback(self, host, asset=None, account=None, automation=None, path_dir=None, **kwargs):
host = super().host_callback(
host, asset=asset, account=account,
automation=automation, path_dir=path_dir, **kwargs
)
if host.get('error'):
return host
# host['ssh_args'] = '-o ControlMaster=no -o ControlPersist=no'
accounts = asset.accounts.all()
accounts = self.get_accounts(account, accounts)
inventory_hosts = []
for account in accounts:
h = deepcopy(host)
h['name'] += '(' + account.username + ')'
self.host_account_mapper[h['name']] = account
secret = account.secret
private_key_path = None
if account.secret_type == SecretType.SSH_KEY:
private_key_path = self.generate_private_key_path(secret, path_dir)
secret = self.generate_public_key(secret)
h['secret_type'] = account.secret_type
h['account'] = {
'name': account.name,
'username': account.username,
'secret_type': account.secret_type,
'secret': secret,
'private_key_path': private_key_path
}
if account.platform.type == 'oracle':
h['account']['mode'] = 'sysdba' if account.privileged else None
inventory_hosts.append(h)
return inventory_hosts
@classmethod
def method_type(cls):
return AutomationTypes.verify_account
def get_accounts(self, privilege_account, accounts: QuerySet):
snapshot_account_usernames = self.execution.snapshot['accounts']
if '*' not in snapshot_account_usernames:
accounts = accounts.filter(username__in=snapshot_account_usernames)
return accounts
def on_host_success(self, host, result):
account = self.host_account_mapper.get(host)
account.set_connectivity(Connectivity.OK)
def on_host_error(self, host, error, result):
account = self.host_account_mapper.get(host)
account.set_connectivity(Connectivity.ERR)

View File

@@ -0,0 +1,21 @@
from common.utils import get_logger
from accounts.const import AutomationTypes
from assets.automations.ping_gateway.manager import PingGatewayManager
logger = get_logger(__name__)
class VerifyGatewayAccountManager(PingGatewayManager):
@classmethod
def method_type(cls):
return AutomationTypes.verify_gateway_account
@staticmethod
def before_runner_start():
logger.info(">>> 开始执行测试网关账号可连接性任务")
def get_accounts(self, gateway):
usernames = self.execution.snapshot['accounts']
accounts = gateway.accounts.filter(username__in=usernames)
return accounts

View File

@@ -0,0 +1,2 @@
from .account import *
from .automation import *

View File

@@ -0,0 +1,20 @@
from django.db.models import TextChoices
from django.utils.translation import ugettext_lazy as _
class SecretType(TextChoices):
PASSWORD = 'password', _('Password')
SSH_KEY = 'ssh_key', _('SSH key')
ACCESS_KEY = 'access_key', _('Access key')
TOKEN = 'token', _('Token')
class AliasAccount(TextChoices):
ALL = '@ALL', _('All')
INPUT = '@INPUT', _('Manual input')
USER = '@USER', _('Dynamic user')
class Source(TextChoices):
LOCAL = 'local', _('Local')
COLLECTED = 'collected', _('Collected')

View File

@@ -0,0 +1,95 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from assets.const import Connectivity
from common.db.fields import TreeChoices
string_punctuation = '!#$%&()*+,-.:;<=>?@[]^_~'
DEFAULT_PASSWORD_LENGTH = 30
DEFAULT_PASSWORD_RULES = {
'length': DEFAULT_PASSWORD_LENGTH,
'symbol_set': string_punctuation
}
__all__ = [
'AutomationTypes', 'SecretStrategy', 'SSHKeyStrategy', 'Connectivity',
'DEFAULT_PASSWORD_LENGTH', 'DEFAULT_PASSWORD_RULES', 'TriggerChoice',
'PushAccountActionChoice',
]
class AutomationTypes(models.TextChoices):
push_account = 'push_account', _('Push account')
change_secret = 'change_secret', _('Change secret')
verify_account = 'verify_account', _('Verify account')
gather_accounts = 'gather_accounts', _('Gather accounts')
verify_gateway_account = 'verify_gateway_account', _('Verify gateway account')
@classmethod
def get_type_model(cls, tp):
from accounts.models import (
PushAccountAutomation, ChangeSecretAutomation,
VerifyAccountAutomation, GatherAccountsAutomation,
)
type_model_dict = {
cls.push_account: PushAccountAutomation,
cls.change_secret: ChangeSecretAutomation,
cls.verify_account: VerifyAccountAutomation,
cls.gather_accounts: GatherAccountsAutomation,
}
return type_model_dict.get(tp)
class SecretStrategy(models.TextChoices):
custom = 'specific', _('Specific password')
random = 'random', _('Random')
class SSHKeyStrategy(models.TextChoices):
add = 'add', _('Append SSH KEY')
set = 'set', _('Empty and append SSH KEY')
set_jms = 'set_jms', _('Replace (The key generated by JumpServer) ')
class TriggerChoice(models.TextChoices, TreeChoices):
# 当资产创建时,直接创建账号,如果是动态账号,需要从授权中查询该资产被授权过的用户,已用户用户名为账号,创建
on_asset_create = 'on_asset_create', _('On asset create')
# 授权变化包含,用户加入授权,用户组加入授权,资产加入授权,节点加入授权,账号变化
# 当添加用户到授权时,查询所有同名账号 automation, 把本授权上的用户 (用户组), 创建到本授权的资产(节点)上
on_perm_add_user = 'on_perm_add_user', _('On perm add user')
# 当添加用户组到授权时,查询所有同名账号 automation, 把本授权上的用户 (用户组), 创建到本授权的资产(节点)上
on_perm_add_user_group = 'on_perm_add_user_group', _('On perm add user group')
# 当添加资产到授权时,查询授权的所有账号 automation, 创建到本授权的资产上
on_perm_add_asset = 'on_perm_add_asset', _('On perm add asset')
# 当添加节点到授权时,查询授权的所有账号 automation, 创建到本授权的节点的资产上
on_perm_add_node = 'on_perm_add_node', _('On perm add node')
# 当授权的账号变化时,查询授权的所有账号 automation, 创建到本授权的资产(节点)上
on_perm_add_account = 'on_perm_add_account', _('On perm add account')
# 当资产添加到节点时,查询节点的授权规则,查询授权的所有账号 automation, 创建到本授权的资产(节点)上
on_asset_join_node = 'on_asset_join_node', _('On asset join node')
# 当用户加入到用户组时,查询用户组的授权规则,查询授权的所有账号 automation, 创建到本授权的资产(节点)上
on_user_join_group = 'on_user_join_group', _('On user join group')
@classmethod
def branches(cls):
# 和用户和用户组相关的都是动态账号
#
return [
cls.on_asset_create,
(_("On perm change"), [
cls.on_perm_add_user,
cls.on_perm_add_user_group,
cls.on_perm_add_asset,
cls.on_perm_add_node,
cls.on_perm_add_account,
]),
(_("Inherit from group or node"), [
cls.on_asset_join_node,
cls.on_user_join_group,
])
]
class PushAccountActionChoice(models.TextChoices):
create_and_push = 'create_and_push', _('Create and push')
only_create = 'only_create', _('Only create')

61
apps/accounts/filters.py Normal file
View File

@@ -0,0 +1,61 @@
# -*- coding: utf-8 -*-
#
from django.db.models import Q
from django_filters import rest_framework as drf_filters
from assets.models import Node
from common.drf.filters import BaseFilterSet
from .models import Account, GatheredAccount
class AccountFilterSet(BaseFilterSet):
ip = drf_filters.CharFilter(field_name='address', lookup_expr='exact')
hostname = drf_filters.CharFilter(field_name='name', lookup_expr='exact')
username = drf_filters.CharFilter(field_name="username", lookup_expr='exact')
address = drf_filters.CharFilter(field_name="asset__address", lookup_expr='exact')
asset = drf_filters.CharFilter(field_name="asset_id", lookup_expr='exact')
assets = drf_filters.CharFilter(field_name='asset_id', lookup_expr='exact')
nodes = drf_filters.CharFilter(method='filter_nodes')
node_id = drf_filters.CharFilter(method='filter_nodes')
has_secret = drf_filters.BooleanFilter(method='filter_has_secret')
platform = drf_filters.CharFilter(field_name='asset__platform_id', lookup_expr='exact')
category = drf_filters.CharFilter(field_name='asset__platform__category', lookup_expr='exact')
type = drf_filters.CharFilter(field_name='asset__platform__type', lookup_expr='exact')
@staticmethod
def filter_has_secret(queryset, name, has_secret):
q = Q(secret__isnull=True) | Q(secret='')
if has_secret:
return queryset.exclude(q)
else:
return queryset.filter(q)
@staticmethod
def filter_nodes(queryset, name, value):
nodes = Node.objects.filter(id=value)
if not nodes:
return queryset
node_qs = Node.objects.none()
for node in nodes:
node_qs |= node.get_all_children(with_self=True)
node_ids = list(node_qs.values_list('id', flat=True))
queryset = queryset.filter(asset__nodes__in=node_ids)
return queryset
class Meta:
model = Account
fields = ['id', 'asset_id']
class GatheredAccountFilterSet(BaseFilterSet):
node_id = drf_filters.CharFilter(method='filter_nodes')
@staticmethod
def filter_nodes(queryset, name, value):
return AccountFilterSet.filter_nodes(queryset, name, value)
class Meta:
model = GatheredAccount
fields = ['id', 'asset_id', 'username']

View File

@@ -0,0 +1,111 @@
# Generated by Django 3.2.14 on 2022-12-28 07:29
import common.db.encoder
import common.db.fields
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import simple_history.models
import uuid
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('assets', '0098_auto_20220430_2126'),
]
operations = [
migrations.CreateModel(
name='Account',
fields=[
('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')),
('updated_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Updated by')),
('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')),
('date_updated', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('org_id',
models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')),
('connectivity', models.CharField(choices=[('-', 'Unknown'), ('ok', 'Ok'), ('err', 'Error')], default='-', max_length=16, verbose_name='Connectivity')),
('date_verified', models.DateTimeField(null=True, verbose_name='Date verified')),
('name', models.CharField(max_length=128, verbose_name='Name')),
('username', models.CharField(blank=True, db_index=True, max_length=128, verbose_name='Username')),
('secret_type', models.CharField(
choices=[('password', 'Password'), ('ssh_key', 'SSH key'), ('access_key', 'Access key'),
('token', 'Token')], default='password', max_length=16, verbose_name='Secret type')),
('secret', common.db.fields.EncryptTextField(blank=True, null=True, verbose_name='Secret')),
('privileged', models.BooleanField(default=False, verbose_name='Privileged')),
('is_active', models.BooleanField(default=True, verbose_name='Is active')),
('version', models.IntegerField(default=0, verbose_name='Version')),
('source', models.CharField(default='local', max_length=30, verbose_name='Source')),
('asset', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='accounts',
to='assets.asset', verbose_name='Asset')),
('su_from',
models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='su_to',
to='accounts.account', verbose_name='Su from')),
],
options={
'verbose_name': 'Account',
'permissions': [('view_accountsecret', 'Can view asset account secret'),
('view_historyaccount', 'Can view asset history account'),
('view_historyaccountsecret', 'Can view asset history account secret')],
'unique_together': {('username', 'asset', 'secret_type'), ('name', 'asset')},
},
),
migrations.CreateModel(
name='HistoricalAccount',
fields=[
('id', models.UUIDField(db_index=True, default=uuid.uuid4)),
('secret_type', models.CharField(
choices=[('password', 'Password'), ('ssh_key', 'SSH key'), ('access_key', 'Access key'),
('token', 'Token')], default='password', max_length=16, verbose_name='Secret type')),
('secret', common.db.fields.EncryptTextField(blank=True, null=True, verbose_name='Secret')),
('version', models.IntegerField(default=0, verbose_name='Version')),
('history_id', models.AutoField(primary_key=True, serialize=False)),
('history_date', models.DateTimeField(db_index=True)),
('history_change_reason', models.CharField(max_length=100, null=True)),
('history_type',
models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
('history_user',
models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+',
to=settings.AUTH_USER_MODEL)),
],
options={
'verbose_name': 'historical Account',
'verbose_name_plural': 'historical Accounts',
'ordering': ('-history_date', '-history_id'),
'get_latest_by': ('history_date', 'history_id'),
},
bases=(simple_history.models.HistoricalChanges, models.Model),
),
migrations.CreateModel(
name='AccountTemplate',
fields=[
('created_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Created by')),
('updated_by', models.CharField(blank=True, max_length=128, null=True, verbose_name='Updated by')),
('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')),
('date_updated', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('org_id',
models.CharField(blank=True, db_index=True, default='', max_length=36, verbose_name='Organization')),
('name', models.CharField(max_length=128, verbose_name='Name')),
('username', models.CharField(blank=True, db_index=True, max_length=128, verbose_name='Username')),
('secret_type', models.CharField(
choices=[('password', 'Password'), ('ssh_key', 'SSH key'), ('access_key', 'Access key'),
('token', 'Token')], default='password', max_length=16, verbose_name='Secret type')),
('secret', common.db.fields.EncryptTextField(blank=True, null=True, verbose_name='Secret')),
('privileged', models.BooleanField(default=False, verbose_name='Privileged')),
('is_active', models.BooleanField(default=True, verbose_name='Is active')),
],
options={
'verbose_name': 'Account template',
'permissions': [('view_accounttemplatesecret', 'Can view asset account template secret'),
('change_accounttemplatesecret', 'Can change asset account template secret')],
'unique_together': {('name', 'org_id')},
},
),
]

Some files were not shown because too many files have changed in this diff Show More