Archery Versions Save

SQL 审核查询平台

v1.10.0

8 months ago

Release date: 2023年8月17日

安全修复

此次更新修复了多个 SQL 注入漏洞, 影响所有历史版本, 建议所有用户升级

新功能

  1. 支持两种新登录方式, 钉钉登录和 oidc 登录
  2. oracle engine 优化, 支持创建函数, 存储过程等
  3. 支持 oracle 会话管理
  4. 新增 cassandra 支持, 可以查询, 上线
  5. 数据库管理和账号管理支持 MongoDB

详细 changelist

代码变更: https://github.com/hhyo/Archery/compare/v1.9.1...v1.9.2 贡献者: @LeoQuote, @Yebolin, @allen12921, @bobfantansy, @chenyu1st, @cyqxyy, @czxin788, @delphid, @dengjili229, @dependabot, @dependabot[bot], @hhyo, @nick2wang, @peng19832, @quanbisen, @shing6326, @songtao12, @summingyu, @te87037, @weideguo and @woshiyanghai

  • delete unused dependency @LeoQuote (#2243)
  • 默认不显示传统登录 @LeoQuote (#2241)
  • fix cassandra frontend bug @LeoQuote (#2240)
  • add cassandra support @LeoQuote (#2230)
  • Bump django from 4.1.9 to 4.1.10 @dependabot (#2203)
  • sql advisor sql 注入修复 @LeoQuote (#2229)
  • add numberlong type support to mongo @cyqxyy (#2224)
  • add ssl conn support to redis @bobfantansy (#2215)
  • 修复之前的commit带入的bug @weideguo (#2197)
  • 将阿里云RDS的功能抽到单独engine @weideguo (#2087)
  • 查询超时也要记录日志 @woshiyanghai (#2110)
  • 调整instance_account唯一索引 @nick2wang (#2179)
  • allow client customize their own filename @te87037 (#2188)
  • fixed thirdparty auth priority @quanbisen (#2180)
  • Bump requests from 2.28.0 to 2.31.0 @dependabot (#2166)
  • 新增钉钉认证登录 Feature/dingding login @quanbisen (#2171)
  • 增加sql变更语句 @hhyo (#2116)
  • Bump django from 4.1.7 to 4.1.9 @dependabot (#2152)
  • 解决平台报错:'NoneType' object is not subscriptable @songtao12 (#2132)
  • 解决会话管理表格可能加载错误的问题 @hhyo (#2113)
  • engine查询增加参数化选项,修改sql参数化方式 @hhyo (#2112)
  • 数据库管理和账号管理支持MongoDB @quanbisen (#2108)
  • Revert "engine增加escape_string用于处理字符串参数转义" @hhyo (#2109)
  • engine增加escape_string用于处理字符串参数转义 @hhyo (#2107)
  • 修复开启2fa登录后无法更新ding_user_id的问题 @nick2wang (#2104)
  • 修复表格服务端分页导出数据不全问题 @nick2wang (#2093)
  • 自动识别Oracle SQL上线文本中的PLSQL程序块 @songtao12 (#2071)
  • 修复mongo会话管理报错 @nick2wang (#2079)
  • Revert "add parameters in clickhouse and mysql engine to avoid sql injection" @hhyo (#2077)
  • add parameters in clickhouse and mysql engine to avoid sql injection @LeoQuote (#2062)
  • fix: 支持使用create or replace创建函数、存储过程、视图以及包等语句 @songtao12 (#2066)
  • Bump django from 4.1.2 to 4.1.7 @dependabot (#2054)
  • feat(mysql): 添加ddl_dml不能同时提交的逻辑 @summingyu (#2060)
  • upgrade ace.js==1.15.0 @Yebolin (#2045)
  • fix black check @LeoQuote (#2046)
  • add config for ban_self_audit @delphid (#2040)
  • do not use tsinghua source @LeoQuote (#2041)
  • 更新dockerfile @peng19832 (#2037)
  • 变更dockerfile-base @peng19832 (#2021)
  • :sparkles: 增加OIDC登入功能 @shing6326 (#2028)
  • mongo engine优化 @nick2wang (#2018)
  • Bump django from 4.1.1 to 4.1.2 @dependabot (#1979)
  • update coverage upload @LeoQuote (#2035)
  • use 3.10 instead of 3.10.0 @LeoQuote (#2030)
  • Bump pillow from 9.0.1 to 9.3.0 @dependabot (#1976)
  • 修复mongo正则匹配与method取值问题 @nick2wang (#1973)
  • 修复非Chrome浏览器登录配置2FA未保存问题 @nick2wang (#1964)
  • 支持Oracle会话管理 @nick2wang (#1954)
  • 给aggregate查询加limit行数限制,防止返回结果过多导致archery挂掉 @czxin788 (#1948)
  • 增强用于匹配INSER语句的正则 @allen12921 (#1944)
  • 修复 oracle 包含创建表和创建索引提示表不存在 (#1697) @dengjili229 (#1837)
  • 更改默认postgres的数据库被过滤的逻辑 @chenyu1st (#1905)
  • fix redis rows @chenyu1st (#1907)
  • ClickHouse支持with开头的查询语句 @allen12921 (#1915)

升级步骤

v1.9.1

1 year ago

Release date: 2022年10月07日

代码变更: https://github.com/hhyo/Archery/compare/v1.9.0...v1.9.1 贡献者: @0ck0, @czxin788, @hhyo and @nick2wang

变更

  • 修复 is_ajax() 判断失效的问题 @hhyo (#1896)
  • 解决SQL工单提交人信息缺失的问题 fix #1881 @hhyo (#1883)
  • 补充工单日志接口校验 @nick2wang (#1887)
  • 允许管理员重置用户登录失败次数 @nick2wang (#1880)
  • Update docker my.cnf @0ck0 (#1853)
  • 修复云mongodb不能同时提交多条创建索引语句的bug @czxin788 (#1845)

升级步骤

  • https://github.com/hhyo/archery/wiki/upgrade
  • django4.0开始新增了origin host检查,请注意参数配置,否则会出现403错误,参考https://docs.djangoproject.com/en/4.0/ref/settings/#csrf-trusted-origins

v1.9.0

1 year ago

Release date: 2022年09月21日

代码变更: https://github.com/hhyo/Archery/compare/v1.8.5...v1.9.0 贡献者: @LeoQuote, @LuckyClover1, @MQMMMQM, @afghanistanyn, @czxin788, @dependabot, @dependabot[bot], @gj19910723, @hhyo, @nick2wang, @unknowissue and @weideguo

Django版本提升至4.1.1,仅支持python3.8及以上版本,修复安全漏洞

此版本存在一个SQL工单相关的问题,请更新至v1.9.1,并参考PR修复数据:https://github.com/hhyo/Archery/pull/1883

新增

  • 2FA支持短信验证 & 同时开启多种验证方式 @nick2wang (#1625)
  • 支持mongodb进程状态查看 @weideguo (#1563)

优化

  • 支持使用环境变量设置部分 django settings @LeoQuote (#1543)
  • 优化my2sql解析范围控制 @nick2wang (#1653)
  • SQL检测和提交接入api方法 @hhyo (#1668)
  • mysql表空间查看支持所有的表 @weideguo (#1672)
  • 允许提交sql工单api选择是否备份 @nick2wang (#1808)
  • mysql查询支持将Binary格式转换为HEX展示 @hhyo (#1839)
  • 归档工单提单时默认选择保留数据 (#1693)

修复

  • 修复api创建/更新用户多对多字段bug @nick2wang (#1776)
  • fix mongo query skip() does not work @afghanistanyn (#1782)
  • 解决mysql密码包含!时my2sql认证报错问题 @nick2wang (#1709)
  • 新增test_connection方法,用于检测实例连接,解决aws redis检测失败问题 @hhyo (#1670)
  • 修复my2sql基于时间恢复报错 @gj19910723 (#1651)
  • 兼容AWS DocumentDB @nick2wang (#1647)
  • 修复utils.js报错 @nick2wang (#1572)
  • 修复mongodb不能执行长sql的问题 @czxin788 (#1556)
  • fix-1516 @unknowissue (#1550)
  • 归档任务执行时关闭schema_object创建的连接 (#1155)
  • 解决数据查询中列表类型无法正常展示的问题 (#1645)
  • 兼容某些异常场景下语法树解析返回格式为审核结果的问题 (#1826)
  • 修复快速查询时语句没有填充的问题

安全性修复

  • OS远程代码执行问题修复 @hhyo (#1840)
  • SQL注入问题修复 @hhyo#1841
  • 屏蔽/admin/login登录入口 @nick2wang (#1541)

其他

  • mysql会话管理相关函数迁移到engine @weideguo (#1661)
  • base镜像中mysql client版本升级至5.7 @nick2wang (#1660)
  • 移除binlog2sql插件支持 @hhyo (#1636)
  • 使用black做代码格式化 @hhyo (#1675)

升级步骤

  • https://github.com/hhyo/archery/wiki/upgrade
  • django4.0开始新增了origin host检查,请注意参数配置,否则会出现403错误,参考https://docs.djangoproject.com/en/4.0/ref/settings/#csrf-trusted-origins

v1.8.5

1 year ago

Release date: 2022年05月21日

代码变更: https://github.com/hhyo/Archery/compare/v1.8.4...v1.8.5 贡献者: @hhyo, @nick2wang and @thcoffee

  • 解决action构建失败的问题 @hhyo (#1534)
  • 处理clickhouse特殊数据类型序列化问题 @nick2wang (#1525)
  • 修复密码含特殊字符使用plugins报错问题 @nick2wang (#1519)
  • 更新docker settings @nick2wang (#1502)
  • 修复已登录用户不能配置2FA问题 @nick2wang (#1500)
  • 修复获取oracle回退sql时,有概率在拼合sql函数格式校验时抛出异常。 @thcoffee (#1499)
  • 修复开启LDAP后2FA认证报错问题 @nick2wang (#1494)
  • 新增强制全局2FA开关 @nick2wang (#1490)
  • 修复oracle的sql上线,单条回退sql超过4000长度被强制截断成多条的问题 @thcoffee (#1488)

升级步骤

v1.8.4

1 year ago

Release date: 2022年05月04日

代码变更: https://github.com/hhyo/Archery/compare/v1.8.3...v1.8.4 贡献者: @cpzt, @cslingjun, @gj19910723, @hhyo, @nick2wang, @unknowissue, @peng19832 and @weideguo

新增

  • Archery Restful API @nick2wang (#1475)
  • 新增水印功能 @cslingjun (#1466)
  • 登录支持2FA @nick2wang (#1481)

优化

  • 脱敏解析替换为goInception,移除Inception依赖 @unknowissue (#1483)
  • 支持配置自动审核数据库类型 @nick2wang (#1452)
  • mysql账号管理优化,新增锁定/解锁账号 @nick2wang (#1436)
  • 允许提交人在任何时候取消执行工单@hhyo(#1470)

修复

  • 修复binlog2sql中使用日期过滤报错 @gj19910723 (#1485)
  • 修复odps查询不可用问题, 实例测试无效问题, 添加odps测试用例 @cpzt (#1454)
  • 规避oracle对象名大小写敏感 @peng19832 (#1438)
  • 修复下载权限名字错误 @weideguo (#1440)
  • 修复查询结果缺失空格问题 @nick2wang (#1449)
  • 修复clickhouse上线审核版本兼容性问题 @nick2wang (#1428)
  • 解决部分审核没有统计错误和警告数量的问题@hhyo(#1462)

升级步骤

  • https://github.com/hhyo/archery/wiki/upgrade
  • settings.py 文件有更新,请注意替换,参考#1475,https://github.com/hhyo/Archery/issues/1489#issuecomment-1118129642
  • 脱敏解析依赖的goInception版本需要>=v1.2.5-29

v1.8.3

2 years ago

Release date: 2022年03月27日

代码变更: https://github.com/hhyo/Archery/compare/v1.8.2...v1.8.3 贡献者: @AceAttorney, @CrusM, @LeoQuote, @blylei, @cpzt, @dependabot, @dependabot[bot], @heisaman, @hhyo, @issacmark, @lijingeng, @nick2wang, @ningyu1, @ocpeng, @quanbisen, @unknowissue and @weideguo

新增

  • 支持ClickHouse上线、查询 @nick2wang (#1384 #1403)
  • 支持ODPS查询 @cpzt (#1363)
  • 新增独立的审计模块 @weideguo (#1251 #1342)
  • 新增my2sql工具插件模块 #1224 @nick2wang (#1314)
  • 新增mssql、oracle的数据字典支持 (#1351 #1402)
  • mysql账号管理支持回收权限(REVOKE) @nick2wang (#1341)
  • redis支持集群模式 @nick2wang (#1392)

优化

  • SQL工单通知支持分阶段控制 @nick2wang (#1406)
  • 增加数据查询下载的权限(hhyo#1367) @weideguo (#1369)
  • 为ajax请求的返回错误进行分类报错 (hhyo#1346) @weideguo (#1365)
  • Archery Kubernetes Helm Chart 维护 @AceAttorney (#1334)
  • oracle执行DDL时备份原始定义 @unknowissue (#1332)
  • oracle查看表结构增加注释列 @unknowissue (#1320)
  • oracle脱敏更换函数 @unknowissue (#1306)
  • 对实例列表进行排序(支持汉字排序) #1290 @nick2wang (#1322)
  • 添加redis/pg创建连接时的超时参数 (hhyo#1311) @weideguo (#1321)
  • redis查询结果json格式化显示 #1376 @nick2wang (#1382)
  • SSH隧道连接新增选择本地文件上传密钥,上传后将密钥信息保存到数据库,连接时从数据库读取 @issacmark (#1303)
  • SQL上线时可执行时间范围前端优化,要求时间间隔必须大于60分钟 (hhyo#1259) @weideguo (#1279)

修复

  • 修复实例检测返回连接状态错误bug fix #1179 @nick2wang (#1407)
  • 修复mongodb表名带-和.符号无法申请上线的问题 @CrusM (#1372 #1381)
  • 修复调用shell执行mongodb命令时出现WARNING的问题 (hhyo#1237) @weideguo (#1348)
  • 修复插件shell命令注入漏洞 @nick2wang (#1316)
  • 修复Redis hgetall结果不展示的问题 @cpzt (#1315)
  • 修复手动执行完成的工单没有发送通知的问题#1284 @nick2wang (#1304)
  • 修复缩略SQL乱码问题 @ocpeng (#1305)
  • 修复会话管理存在的sql注入风险 #1299 @nick2wang (#1300)
  • 修复创建mongodb原生连接时的错误 (hhyo#1291) @weideguo (#1294)
  • 修复pgsql获取表结构没有增加schame过滤的问题 @lijingeng (#1285)
  • 修复admin.sh中SQL路径错误的问题 @blylei (#1276)

升级步骤

  • https://github.com/hhyo/archery/wiki/upgrade
  • 本次升级涉及较多的数据模型变更,升级前请注意数据备份
  • ssh隧道管理连接存在不兼容的变更,请参考:https://github.com/hhyo/Archery/pull/1303#discussion_r779257350

v1.8.2

2 years ago

Release date: 2021年12月05日

代码变更: https://github.com/hhyo/Archery/compare/v1.8.1...v1.8.2 贡献者: @DB-wang2, @GloomyNAN, @LeoQuote, @Linuxgt, @Nexpro, @cpzt, @dependabot, @dependabot[bot], @hhyo, @mxlxm, @nick2wang, @swords1999, @txmzzl, @weideguo and taochao

变更说明

  • 修复oracle审核正则匹配问题 #1169 @nick2wang (#1194)
  • mongodb查询优化 (hhyo#1252) @weideguo (#1253)
  • 发送企业微信消息带有url的优化 (hhyo#1244) @weideguo (#1247)
  • 禁止普通账号查询mysql.user (hhyo#1202) @weideguo (#1222)
  • 问题:表名带-符号无法正常解析,原因:\w只匹配[a-zA-Z0-9_],修正:(\w*) -> ([\w-]*) @txmzzl (#1197)
  • mongdb查询的结果集中缺少字段 @cpzt (#1192)
  • docker安装默认映射出goinception的4000端口 @DB-wang2 (#1186)
  • 解决查询DECIMAL类型展示精度丢失的问题 fix #1250
  • Bump django from 3.1.12 to 3.1.13 @dependabot (#1185)
  • support offset @mxlxm (#1172)
  • fix sql.trx_view and MaskingColumns column_comment @GloomyNAN (#1175)
  • 修改快捷键绕过表单验证问题 @DB-wang2 (#1178)
  • fix mongo connction @LeoQuote (#1168)
  • Update extend_json_encoder.py @Nexpro (#1131)
  • Bump django from 3.1.9 to 3.1.12 @dependabot (#1114)
  • donnot set auto_now_add for ArchiveLog.start_time @swords1999 (#1113)
  • Bump django from 3.1.8 to 3.1.9 @dependabot (#1111)
  • Update docs.md @Linuxgt (#1103)
  • Bump django from 3.1.6 to 3.1.8 @dependabot (#1070)

升级步骤

v1.8.1

3 years ago

Release date: 2021年03月27日

代码变更: https://github.com/hhyo/Archery/compare/v1.8.0...v1.8.1 贡献者: @LeoQuote, @calfzhou, @dependabot, @dependabot[bot], @hhyo, @learn0208, @lesteryou, @lvhejin and @wineejam

变更说明

  • 移除对 Inception 的审核支持,仅作为脱敏语句解析使用 (https://github.com/hhyo/Archery/commit/dd143e42cd297eda899ea8ab1e30bfa8cd9c7456)
  • 在线查询,pg数据库增加会话超时设定,支持查询脱敏 @learn0208 (#963)
  • 慢查日志和明细列表支持按表头字段进行服务端排序 @lvhejin (#482 )
  • 默认资源组、权限组支持多选,优化系统配置下拉选项 (#961)

修复说明

  • 解决数据库区分大小写时查看事务信息报错的问题 (#967)
  • 解决查询memoryview is not JSON serializable (#971)
  • 解决查询结果不展示json对象的问题 ( #982)
  • 调整启动方式为wsgi,解决上版本出现访问阻塞的问题 (#1002)
  • 企业微信消息推送,如果消息接受者ID为空,则不会调用企业微信官方API. @lesteryou (#1004)
  • fix(sendmsg/feishu): fix #1016 支持新版飞书 webhook 接口 @calfzhou (#1029)
  • Bump django from 3.1.2 to 3.1.6 @dependabot (#1049)
  • add pycryptodome to requirements @LeoQuote (#1050)

易用性调整

  • 手动执行按钮改名为“已手动完成” @wineejam (#960)

安全性调整

升级步骤

v1.8.0

3 years ago

Release date: 2020年11月01日

代码变更: https://github.com/hhyo/Archery/compare/v1.7.13...v1.8.0 贡献者: @Alenx58, @LeoQuote, @dongqianzheng, @exqlnet, @fancy-lee, @hhyo, @johnliu2008, @lidaobing and @yuandajn578

注意事项

本次版本变更,Django 版本由 2.2 升级为 3.1,容器镜像中的 Python 版本由 3.6.5 升级为 3.8.6(ci测试结果显示兼容3.6、3.7、3.8),还涉及其他依赖库的更新,请在本地充分测试后进行升级,升级注意事项请查看下方升级说明

变更说明

  • 升级 Django 版本至 3.1.2,增加 python 3.7、3.8 的构建测试,以及其他依赖库的升级 4da9c5f
  • 加入 mongodb 审核和上线支持,重写 mongodb 查询,支持原生语法 @fancy-lee (#900 )
  • 移除配置信息的缓存依赖,直接读取 DB 7fd62b2
  • SQL 工单列表默认只展示最近 30 天的记录 #940

修复说明

  • 解决 mysql 跨库查询时表权限的校验问题 fix #864
  • 修复会话管理-事务信息页面不显示阻塞源事务内容的问题 fix #896 #909
  • 调整整 sql 查询 mysql 表信息解析方法,支持嵌套子查询 fix #861
  • goInception 默认配置 lock_wait_timeout=10,避免长时间的元数据锁对生产环境造成影响 #902
  • 指定 pymysql==0.9.3,修复binlog2sql不可用的问题 fix #899
  • 解决检查 pg 连接提示数据库不存在的问题 fix #925
  • 修复初始化脚本中的慢日志 @Alenx58 (#944)
  • 解决 DML语句包含头部注释会绕过自动审批判断的问题 fix #949
  • 解決 SQL 分析页面,当 SQL 中包含 != 的时候,会导致查看按钮显示异常,无法展示相应的 SQL 建议的问题 1c427f9
  • fix: typo in helm charts values @exqlnet (#894)
  • Update docs.md @lidaobing (#938)

易用性调整

  • 没有查询权限时,增加申请链接 @dongqianzheng (#904)
  • 注册用户默认打开管理后台权限,支持修改密码 fix #908
  • 通过 goInception 执行时,增对阿里云 RDS 自动开启aliyun_rds参数 #880
  • 实例连接隧道信息在后台管理编辑时加密展示 9ac89f2
  • 使企业微信机器人推送的消息中的工单地址支持超链接 ce2d805

升级步骤

  • Django和Django-q的版本升级涉及数据migrate,请在服务部署完成后执行 python manage.py migrate
  • 其他注意事项查看:https://github.com/hhyo/archery/wiki/upgrade

v1.7.13

3 years ago

Release date: 2020年08月30日

代码变更: https://github.com/hhyo/Archery/compare/v1.7.12...v1.7.13 贡献者: @EliasChiang, @LeoQuote, @MagMongoing, @dongqianzheng, @hhyo, @xxlrr

变更说明

  • 添加隧道管理页面 @EliasChiang (#844)
  • redis支持zset相关命令 @dongqianzheng (#846)
  • dashboard增加最近24小时慢查询统计 @MagMongoing (#838)
  • 实例编辑时隐藏密码信息 (#851)
  • fix field name error @LeoQuote (#828)

修复说明

  • 修复sql优化不支持转义符的问题 (#829)
  • 解决 MySQL 数据库区分大小写时,SQL优化解析表信息失败的问题 (#843)
  • 修复inception/goinception 连接ssh隧道bug @EliasChiang (#858)
  • 移除sql_completer,修复ci @hhyo (#839)
  • 解决 ios 横向滚动失效的问题

升级步骤