SQL 审核查询平台
This report presents the forensic synthetic code analysis of hhyo/Archery, a Python project with 6,991 GitHub stars. SynthScan v2.0 examined 130,765 lines of code across 461 source files, recording 1195 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 10.6 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1195 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 145 | def fake_generate_audit_setting(mocker: MockFixture, super_user, create_auth_group): | CODE |
| LOW⚡ | sql_api/test_permission_model.py | 11 | def test_normal_user_cannot_access_non_query_api(api_client, normal_user): | CODE |
| LOW⚡ | sql_api/test_permission_model.py | 18 | def test_superuser_can_access_non_query_api(api_client, super_user): | CODE |
| LOW⚡ | sql_api/test_permission_model.py | 25 | def test_normal_user_can_access_query_api(api_client, normal_user, monkeypatch): | CODE |
| LOW | sql_api/test_permission_model.py | 40 | def test_normal_user_can_access_table_locator(api_client, normal_user, monkeypatch): | CODE |
| LOW | sql_api/test_api_instance.py | 68 | def test_instance_resource_database( | CODE |
| LOW | sql_api/test_api_instance.py | 91 | def test_instance_resource_schema( | CODE |
| LOW | sql_api/test_api_instance.py | 110 | def test_instance_resource_table( | CODE |
| LOW | sql_api/test_api_instance.py | 134 | def test_instance_resource_column( | CODE |
| LOW | sql_api/test_api_instance.py | 159 | def test_instance_resource_server_info( | CODE |
| LOW | sql_api/test_api_instance.py | 178 | def test_instance_resource_server_info_no_fork( | CODE |
| LOW | sql_api/test_api_instance.py | 204 | def test_instance_resource_invalid_params( | CODE |
| LOW | sql_api/test_api_instance.py | 221 | def test_instance_resource_invalid_type( | CODE |
| LOW | sql_api/test_api_instance.py | 238 | def test_instance_resource_missing_args( | CODE |
| LOW | sql_api/test_api_instance.py | 256 | def test_instance_resource_engine_exception( | CODE |
| LOW | sql_api/test_api_instance.py | 275 | def test_instance_resource_engine_error_resource( | CODE |
| LOW | sql_api/test_table_instance_locator.py | 48 | def test_default_table_instance_locator_found(monkeypatch, db_instance): | CODE |
| LOW | sql_api/test_table_instance_locator.py | 63 | def test_resolve_table_instances_with_custom_locator(settings, db_instance): | CODE |
| LOW | sql_api/test_table_instance_locator.py | 75 | def test_resolve_table_instances_custom_locator_must_return_list(settings, db_instance): | CODE |
| LOW | sql_api/test_table_instance_locator.py | 85 | def test_resolve_table_instances_custom_locator_can_return_minimal_dict( | CODE |
| LOW | sql_api/test_table_instance_locator.py | 149 | def test_instance_outside_resource_group_excluded(api_user, db_instance, monkeypatch): | CODE |
| LOW | sql_api/test_sqlquery_api.py | 30 | def test_instances_returns_expected_shape(monkeypatch, api_client, authenticated_user): | CODE |
| LOW | sql_api/test_sqlquery_api.py | 46 | def test_resources_returns_expected_shape(monkeypatch, api_client, authenticated_user): | CODE |
| LOW | sql_api/test_sqlquery_api.py | 63 | def test_describetable_returns_expected_shape( | CODE |
| LOW | sql_api/test_sqlquery_api.py | 91 | def test_execute_requires_query_permission_or_superuser(api_client, authenticated_user): | CODE |
| LOW | sql_api/test_sqlquery_api.py | 106 | def test_execute_calls_service(monkeypatch, api_client, privileged_user): | CODE |
| LOW | sql_api/test_sqlquery_api.py | 160 | def test_logs_returns_bootstrap_table_shape(monkeypatch, api_client, privileged_user): | CODE |
| LOW | sql_api/test_sqlquery_api.py | 174 | def test_favorite_returns_expected_shape(monkeypatch, api_client, privileged_user): | CODE |
| LOW | sql_api/tests.py | 77 | def test_user_not_in_whitelist(self): | CODE |
| LOW⚡ | sql_api/tests.py | 150 | def test_get_resource_group_list(self): | CODE |
| LOW⚡ | sql_api/tests.py | 156 | def test_create_resource_group(self): | CODE |
| LOW⚡ | sql_api/tests.py | 166 | def test_update_resource_group(self): | CODE |
| LOW | sql_api/tests.py | 178 | def test_delete_resource_group(self): | CODE |
| LOW | sql_api/tests.py | 347 | def test_lookup_table_instances(self, mock_resolve): | CODE |
| LOW | sql_api/tests.py | 368 | def test_lookup_table_instances_bad_request(self): | CODE |
| LOW | sql_api/tests.py | 378 | def test_lookup_table_instances_error(self, mock_resolve): | CODE |
| LOW | sql_api/tests.py | 525 | def test_get_sql_workflow_list(self): | CODE |
| LOW | sql_api/tests.py | 538 | def test_get_workflow_log_list(self): | CODE |
| LOW | sql_api/tests.py | 653 | def test_submit_workflow_super(self): | CODE |
| LOW | sql_api/tests.py | 680 | def test_submit_workflow_auto_pass(self, mock_generate_settings): | CODE |
| LOW | sql_api/tests.py | 700 | def test_submit_offline_export_uses_can_read_and_disables_backup( | CODE |
| LOW | sql_api/tests.py | 741 | def test_submit_workflow_still_requires_can_write(self): | CODE |
| LOW | sql_api/table_instance_locator.py | 24 | def default_table_instance_locator( | CODE |
| LOW | common/tests.py | 571 | def test_superuser_required_false(self): | CODE |
| LOW | common/tests.py | 576 | def test_superuser_required_true(self): | CODE |
| LOW | common/authenticate/test_oidc_auth.py | 76 | def test_default_attribute_mapping(self): | CODE |
| LOW | common/authenticate/test_oidc_auth.py | 93 | def test_create_user_custom_mapping(self): | CODE |
| LOW⚡ | common/authenticate/test_oidc_auth.py | 108 | def test_create_user_string_config(self): | CODE |
| LOW⚡ | common/authenticate/test_oidc_auth.py | 115 | def test_create_user_missing_email(self): | CODE |
| LOW⚡ | common/authenticate/test_oidc_auth.py | 123 | def test_create_user_missing_username(self): | CODE |
| LOW⚡ | common/authenticate/test_oidc_auth.py | 131 | def test_create_user_missing_display(self): | CODE |
| LOW⚡ | common/authenticate/test_oidc_auth.py | 139 | def test_describe_user_by_claims(self): | CODE |
| LOW⚡ | common/authenticate/test_oidc_auth.py | 144 | def test_filter_users_by_claims_success(self): | CODE |
| LOW⚡ | common/authenticate/test_oidc_auth.py | 151 | def test_filter_users_by_claims_not_found(self): | CODE |
| LOW⚡ | common/authenticate/test_oidc_auth.py | 156 | def test_filter_users_by_claims_admin_block(self): | CODE |
| LOW | common/utils/ding_api.py | 60 | def get_dept_list_id_fetch_child(token, parent_dept_id): | CODE |
| LOW | common/utils/chart_dao.py | 85 | def querylog_effect_row_by_date(self, start_date, end_date): | CODE |
| LOW | common/utils/chart_dao.py | 109 | def querylog_effect_row_by_user(self, start_date, end_date): | CODE |
| LOW | common/utils/chart_dao.py | 122 | def querylog_effect_row_by_db(self, start_date, end_date): | CODE |
| LOW | common/utils/chart_dao.py | 135 | def slow_query_review_history_by_cnt(self, checksum): | CODE |
| 665 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sql_api/api_workflow.py | 73 | except Exception as e: | CODE |
| LOW | sql_api/serializers.py | 241 | except Exception as e: | CODE |
| LOW | sql_api/serializers.py | 507 | except Exception as e: | CODE |
| LOW | sql_api/serializers.py | 542 | except Exception as e: | CODE |
| MEDIUM | sql_api/serializers.py | 46 | def validate_password(self, password): | CODE |
| MEDIUM | sql_api/serializers.py | 402 | def validate_instance_id(self, instance_id): | CODE |
| LOW | sql_api/api_instance.py | 240 | except Exception as msg: | CODE |
| LOW | sql_api/api_instance.py | 280 | except Exception as e: | CODE |
| MEDIUM | sql_api/api_instance.py | 73 | def get_object(self, pk): | CODE |
| LOW | sql_api/table_instance_locator.py | 88 | except Exception as e: | CODE |
| LOW | sql_api/views.py | 65 | except Exception as e: | CODE |
| LOW | sql_api/views.py | 113 | except Exception as e: | CODE |
| LOW | sql_api/views.py | 152 | except Exception as e: | CODE |
| LOW | sql_api/views.py | 168 | except Exception as e: | CODE |
| LOW | sql_api/views.py | 234 | except Exception as msg: | CODE |
| LOW | common/config.py | 31 | except Exception as m: | CODE |
| LOW | common/config.py | 86 | except Exception as e: | CODE |
| LOW | common/config.py | 100 | except Exception as m: | CODE |
| MEDIUM | common/config.py | 19 | def get_all_config(self): | CODE |
| LOW | common/check.py | 43 | except Exception as e: | CODE |
| LOW | common/check.py | 62 | except Exception as e: | CODE |
| LOW | common/check.py | 130 | except Exception as e: | CODE |
| LOW | common/check.py | 204 | except Exception as e: | CODE |
| LOW | common/workflow.py | 85 | except Exception: | CODE |
| LOW | common/twofa/totp.py | 61 | except Exception as msg: | CODE |
| LOW | common/twofa/totp.py | 95 | except Exception as msg: | CODE |
| LOW | common/twofa/sms.py | 93 | except Exception as msg: | CODE |
| LOW | common/utils/global_info.py | 20 | except Exception: | CODE |
| LOW | common/utils/aliyun_sms.py | 45 | except Exception as e: | CODE |
| LOW | common/utils/sendmsg.py | 133 | except Exception: | CODE |
| LOW | common/utils/openai.py | 39 | except Exception as e: | CODE |
| LOW | common/utils/wx_api.py | 15 | except Exception as e: | CODE |
| LOW | common/utils/aliyun_sdk.py | 24 | except Exception as m: | CODE |
| MEDIUM | common/utils/aliyun_sdk.py | 18 | def __init__(self, rds): | CODE |
| LOW | common/utils/ding_api.py | 16 | except Exception as e: | CODE |
| LOW | common/utils/ding_api.py | 26 | except Exception as e: | CODE |
| LOW | common/utils/ding_api.py | 56 | except Exception as e: | CODE |
| LOW | common/utils/ding_api.py | 100 | except Exception as e: | CODE |
| LOW | common/utils/ding_api.py | 119 | except Exception as e: | CODE |
| LOW | common/utils/ding_api.py | 131 | except Exception as e: | CODE |
| LOW | common/utils/feishu_api.py | 15 | except Exception as e: | CODE |
| LOW | .specify/scripts/bash/common.sh | 373 | except Exception: | CODE |
| LOW | .specify/scripts/bash/common.sh | 461 | except Exception: | CODE |
| LOW | .specify/scripts/bash/common.sh | 492 | except Exception: | CODE |
| LOW | src/script/collect_redis_slow_log.py | 235 | except Exception as e: | CODE |
| LOW | sql/instance.py | 283 | except Exception as e: | CODE |
| LOW | sql/instance.py | 294 | except Exception as e: | CODE |
| LOW | sql/sql_workflow.py | 196 | except Exception as msg: | CODE |
| LOW | sql/sql_workflow.py | 230 | except Exception as msg: | CODE |
| LOW | sql/sql_workflow.py | 434 | except Exception as msg: | CODE |
| LOW | sql/sql_workflow.py | 526 | except Exception as e: | CODE |
| LOW | sql/binlog.py | 255 | except Exception as e: | CODE |
| LOW | sql/slowlog.py | 53 | except Exception: | CODE |
| LOW | sql/slowlog.py | 199 | except Exception: | CODE |
| LOW | sql/query.py | 168 | except Exception as msg: | CODE |
| LOW | sql/archiver.py | 524 | except Exception as msg: | CODE |
| LOW | sql/query_privileges.py | 94 | except Exception as msg: | CODE |
| LOW | sql/instance_database.py | 111 | except Exception as e: | CODE |
| LOW | sql/notify.py | 507 | except Exception as e: # NOQA 捕获一些错误, 让其他的 notifier 可以正常运行 | CODE |
| LOW | sql/resource_group.py | 187 | except Exception as e: | CODE |
| 130 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | sql_api/serializers.py | 18 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | common/auth.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | common/dashboard.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL⚡ | …static/bootstrap-editable/js/bootstrap-editable.min.js | 5 | !function(a){"use strict";var b=function(b,c){this.options=a.extend({},a.fn.editableform.defaults,c),this.$div=a(b),this | CODE |
| CRITICAL⚡ | …static/bootstrap-editable/js/bootstrap-editable.min.js | 7 | },getDaysInMonth:function(a,b){return[31,l.isLeapYear(a)?29:28,31,30,31,30,31,31,30,31,30,31][b]},validParts:/dd?|DD?|mm | CODE |
| CRITICAL | …mon/static/bootstrap-editable/js/bootstrap-editable.js | 3087 | $.fn.editabletypes.text.prototype.activate.call(this); | CODE |
| CRITICAL | …mon/static/bootstrap-editable/js/bootstrap-editable.js | 3199 | $.fn.editabletypes.abstractinput.prototype.value2html.call(this, text, element); | CODE |
| CRITICAL | …mon/static/bootstrap-editable/js/bootstrap-editable.js | 6456 | $.fn.editabletypes.text.prototype.activate.call(this); | CODE |
| CRITICAL | …mon/static/bootstrap-editable/js/bootstrap-editable.js | 6779 | $.fn.editabletypes.text.prototype.activate.call(this); | CODE |
| CRITICAL | common/static/jquery/jquery.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | …/static/bootstrap-table/export-libs/jsPDF/jspdf.min.js | 168 | bottomLeftInner:c(r+n[3].width,i+v,Math.max(0,p-n[3].width),g-n[2].width).bottomLeft.subdivide(.5)}}function u(t,e,n,r){ | CODE |
| CRITICAL | …tic/bootstrap-table/export-libs/jsPDF/jspdf.umd.min.js | 96 | */var S={print:4,modify:8,copy:16,"annot-forms":32};function _(t,e,r,n){this.v=1,this.r=2;let i=192;t.forEach((functi | COMMENT |
| CRITICAL | common/static/bootstrap-select/js/bootstrap-select.js | 1310 | that.selectpicker.view.currentActive.classList.remove('active'); | CODE |
| CRITICAL | common/static/bootstrap-select/js/bootstrap-select.js | 1311 | if (that.selectpicker.view.currentActive.firstChild) that.selectpicker.view.currentActive.firstChild.classLi | CODE |
| CRITICAL | …mon/static/bootstrap-select/js/bootstrap-select.min.js | 8 | !function(e,t){void 0===e&&void 0!==window&&(e=window),"function"==typeof define&&define.amd?define(["jquery"],function( | CODE |
| CRITICAL | sql/form.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | sql/instance_account.py | 6 | from django.core.exceptions import ValidationError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sql_api/api_sqlquery.py | 4 | CODE | |
| LOW | sql_api/api_workflow.py | 3 | CODE | |
| LOW | sql_api/api_workflow.py | 7 | CODE | |
| LOW | sql_api/api_workflow.py | 17 | CODE | |
| LOW | sql_api/api_workflow.py | 17 | CODE | |
| LOW | sql_api/api_workflow.py | 29 | CODE | |
| LOW | sql_api/test_api_instance.py | 4 | CODE | |
| LOW | sql_api/test_table_instance_locator.py | 2 | CODE | |
| LOW | sql_api/test_table_instance_locator.py | 6 | CODE | |
| LOW | sql_api/test_table_instance_locator.py | 6 | CODE | |
| LOW | sql_api/serializers.py | 21 | CODE | |
| LOW | sql_api/api_user.py | 24 | CODE | |
| LOW | sql_api/api_instance.py | 24 | CODE | |
| LOW | common/tests.py | 12 | CODE | |
| LOW | common/utils/sendmsg.py | 16 | CODE | |
| LOW | archery/settings.py | 6 | CODE | |
| LOW | archery/settings.py | 520 | CODE | |
| LOW | sql/instance.py | 18 | CODE | |
| LOW | sql/sql_workflow.py | 8 | CODE | |
| LOW | sql/sql_workflow.py | 22 | CODE | |
| LOW | sql/sql_workflow.py | 34 | CODE | |
| LOW | sql/sql_analyze.py | 13 | CODE | |
| LOW | sql/binlog.py | 2 | CODE | |
| LOW | sql/binlog.py | 9 | CODE | |
| LOW | sql/binlog.py | 14 | CODE | |
| LOW | sql/slowlog.py | 2 | CODE | |
| LOW | sql/query.py | 2 | CODE | |
| LOW | sql/query.py | 4 | CODE | |
| LOW | sql/query.py | 5 | CODE | |
| LOW | sql/query.py | 6 | CODE | |
| LOW | sql/query.py | 10 | CODE | |
| LOW | sql/query.py | 10 | CODE | |
| LOW | sql/query.py | 11 | CODE | |
| LOW | sql/query.py | 13 | CODE | |
| LOW | sql/query.py | 16 | CODE | |
| LOW | sql/query.py | 17 | CODE | |
| LOW | sql/query.py | 18 | CODE | |
| LOW | sql/query.py | 19 | CODE | |
| LOW | sql/query.py | 19 | CODE | |
| LOW | sql/query.py | 20 | CODE | |
| LOW | sql/test_instance.py | 7 | CODE | |
| LOW | sql/test_instance.py | 9 | CODE | |
| LOW | sql/archiver.py | 12 | CODE | |
| LOW | sql/archiver.py | 26 | CODE | |
| LOW | sql/archiver.py | 34 | CODE | |
| LOW | sql/query_privileges.py | 24 | CODE | |
| LOW | sql/query_privileges.py | 30 | CODE | |
| LOW | sql/instance_database.py | 9 | CODE | |
| LOW | sql/resource_group.py | 15 | CODE | |
| LOW | sql/test_workflow.py | 1 | CODE | |
| LOW | sql/test_storage.py | 1 | CODE | |
| LOW | sql/test_binlog.py | 9 | CODE | |
| LOW | sql/test_binlog.py | 13 | CODE | |
| LOW | sql/test_binlog.py | 16 | CODE | |
| LOW | sql/test_binlog.py | 16 | CODE | |
| LOW | sql/test_binlog.py | 16 | CODE | |
| LOW | sql/instance_account.py | 2 | CODE | |
| LOW | sql/db_diagnostic.py | 2 | CODE | |
| LOW | sql/db_diagnostic.py | 3 | CODE | |
| LOW | sql/sql_optimize.py | 9 | CODE | |
| 43 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sql_api/api_workflow.py | 226 | CODE | |
| LOW | sql_api/api_workflow.py | 316 | CODE | |
| LOW | sql_api/api_user.py | 278 | CODE | |
| LOW | sql_api/api_instance.py | 183 | CODE | |
| LOW | sql_api/table_instance_locator.py | 24 | CODE | |
| LOW | common/auth.py | 120 | CODE | |
| LOW | common/auth.py | 165 | CODE | |
| LOW | common/config.py | 19 | CODE | |
| LOW | common/utils/ding_api.py | 75 | CODE | |
| LOW | sql/sql_workflow.py | 137 | CODE | |
| LOW | sql/sql_analyze.py | 46 | CODE | |
| LOW | sql/binlog.py | 41 | CODE | |
| LOW | sql/binlog.py | 126 | CODE | |
| LOW | sql/archiver.py | 322 | CODE | |
| LOW | sql/query_privileges.py | 39 | CODE | |
| LOW | sql/query_privileges.py | 193 | CODE | |
| LOW | sql/notify.py | 143 | CODE | |
| LOW | sql/offlinedownload.py | 332 | CODE | |
| LOW | sql/offlinedownload.py | 405 | CODE | |
| LOW | sql/offlinedownload.py | 505 | CODE | |
| LOW | sql/test_storage.py | 172 | CODE | |
| LOW | sql/test_storage.py | 305 | CODE | |
| LOW | sql/instance_account.py | 167 | CODE | |
| LOW | sql/db_diagnostic.py | 84 | CODE | |
| LOW | sql/views.py | 75 | CODE | |
| LOW | sql/utils/data_masking.py | 18 | CODE | |
| LOW | sql/utils/data_masking.py | 236 | CODE | |
| LOW | sql/utils/workflow_audit.py | 720 | CODE | |
| LOW | sql/utils/extract_tables.py | 71 | CODE | |
| LOW | sql/utils/extract_tables.py | 115 | CODE | |
| LOW | sql/utils/sql_utils.py | 20 | CODE | |
| LOW | sql/utils/sql_utils.py | 151 | CODE | |
| LOW | sql/engines/elasticsearch.py | 121 | CODE | |
| LOW | sql/engines/elasticsearch.py | 250 | CODE | |
| LOW | sql/engines/elasticsearch.py | 286 | CODE | |
| LOW | sql/engines/elasticsearch.py | 441 | CODE | |
| LOW | sql/engines/elasticsearch.py | 529 | CODE | |
| LOW | sql/engines/elasticsearch.py | 759 | CODE | |
| LOW | sql/engines/elasticsearch.py | 1174 | CODE | |
| LOW | sql/engines/elasticsearch.py | 1205 | CODE | |
| LOW | sql/engines/goinception.py | 223 | CODE | |
| LOW | sql/engines/goinception.py | 351 | CODE | |
| LOW | sql/engines/clickhouse.py | 189 | CODE | |
| LOW | sql/engines/clickhouse.py | 243 | CODE | |
| LOW | sql/engines/mssql.py | 337 | CODE | |
| LOW | sql/engines/mssql.py | 461 | CODE | |
| LOW | sql/engines/mssql.py | 548 | CODE | |
| LOW | sql/engines/mssql.py | 715 | CODE | |
| LOW | sql/engines/tdengine.py | 240 | CODE | |
| LOW | sql/engines/tdengine.py | 419 | CODE | |
| LOW | sql/engines/tdengine.py | 513 | CODE | |
| LOW | sql/engines/tdengine.py | 557 | CODE | |
| LOW | sql/engines/mongo.py | 42 | CODE | |
| LOW | sql/engines/mongo.py | 83 | CODE | |
| LOW | sql/engines/mongo.py | 324 | CODE | |
| LOW | sql/engines/mongo.py | 380 | CODE | |
| LOW | sql/engines/mongo.py | 416 | CODE | |
| LOW | sql/engines/mongo.py | 776 | CODE | |
| LOW | sql/engines/mongo.py | 824 | CODE | |
| LOW | sql/engines/mongo.py | 1251 | CODE | |
| 22 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sql/offlinedownload.py | 427 | col_elem.text = "(null)" | CODE |
| HIGH | sql/test_query_privileges.py | 454 | "query_tree": '{"text":"select * from sql_users limit 100","resultFields":null,"SQLCache":true,"CalcFoundRow | CODE |
| HIGH | sql/test_offlinedownload.py | 657 | self.assertEqual(row.find("column-1").text, "(null)") | CODE |
| HIGH | sql/engines/mssql.py | 111 | f" macOS: brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release | CODE |
| HIGH⚡ | sql/engines/test_mongo.py | 70 | assert self.de.decode("{'a':true,'b':false,'c':null}") == { | CODE |
| HIGH | sql/engines/oracle.py | 236 | bcs.data_type || case | CODE |
| HIGH | sql/engines/oracle.py | 244 | '(' || bcs.char_length || case char_used | CODE |
| HIGH | sql/engines/oracle.py | 326 | bcs.data_type || case | CODE |
| HIGH | sql/engines/oracle.py | 334 | '(' || bcs.char_length || case char_used | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | sql_api/test_table_instance_locator.py | 108 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | sql_api/test_table_instance_locator.py | 115 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | common/authenticate/test_oidc_auth.py | 3 | # ======================================================== | COMMENT |
| MEDIUM | common/authenticate/test_oidc_auth.py | 5 | # ======================================================== | COMMENT |
| MEDIUM | common/authenticate/test_oidc_auth.py | 22 | # ======================================================== | COMMENT |
| MEDIUM | common/authenticate/test_oidc_auth.py | 24 | # ======================================================== | COMMENT |
| MEDIUM | common/authenticate/test_oidc_auth.py | 36 | # ======================================================== | COMMENT |
| MEDIUM | common/authenticate/test_oidc_auth.py | 38 | # ======================================================== | COMMENT |
| MEDIUM | …cify/extensions/git/scripts/bash/create-new-feature.sh | 195 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …cify/extensions/git/scripts/bash/create-new-feature.sh | 202 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .specify/extensions/git/scripts/bash/git-common.sh | 6 | # Check if we have git available at the repo root | COMMENT |
| LOW | .specify/extensions/git/scripts/bash/auto-commit.sh | 34 | # Check if git is available | COMMENT |
| LOW | .specify/extensions/git/scripts/bash/auto-commit.sh | 106 | # Check if event section existed at all | COMMENT |
| LOW | .specify/extensions/git/scripts/bash/auto-commit.sh | 120 | # Check if there are changes to commit | COMMENT |
| LOW | .specify/extensions/git/scripts/bash/initialize-repo.sh | 37 | # Check if git is available | COMMENT |
| LOW | .specify/extensions/git/scripts/bash/initialize-repo.sh | 43 | # Check if already a git repo | COMMENT |
| LOW | …cify/extensions/git/scripts/bash/create-new-feature.sh | 249 | # Check if git is available at this repo root | COMMENT |
| LOW | .specify/scripts/bash/common.sh | 104 | # Check if we have git available at the spec-kit root level | COMMENT |
| LOW | .specify/scripts/bash/common.sh | 111 | # Check if .git exists (directory or file for worktrees/submodules) | COMMENT |
| LOW | .specify/scripts/bash/common.sh | 305 | # Check if jq is available for safe JSON construction | COMMENT |
| LOW | .specify/scripts/bash/common.sh | 576 | # Check if any layer uses a non-replace strategy | COMMENT |
| LOW | .specify/scripts/bash/setup-plan.sh | 54 | # Output results | COMMENT |
| LOW | .specify/scripts/bash/check-prerequisites.sh | 154 | # Output results | COMMENT |
| LOW | .specify/scripts/bash/create-new-feature.sh | 32 | # Check if the next argument is another option (starts with --) | COMMENT |
| LOW | .specify/scripts/bash/create-new-feature.sh | 197 | # Check if git is available at this repo root (not a parent) | COMMENT |
| LOW | .specify/scripts/bash/create-new-feature.sh | 333 | # Check if branch already exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sql/engines/clickhouse.py | 0 | 数据字典页面使用:获取表格的元信息,返回一个dict{column_list: [], rows: []} | STRING |
| HIGH | sql/engines/mssql.py | 0 | 数据字典页面使用:获取表格的元信息,返回一个dict{column_list: [], rows: []} | STRING |
| HIGH | sql/engines/oracle.py | 0 | 数据字典页面使用:获取表格的元信息,返回一个dict{column_list: [], rows: []} | STRING |
| HIGH | sql/engines/mysql.py | 0 | 数据字典页面使用:获取表格的元信息,返回一个dict{column_list: [], rows: []} | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | common/twofa/__init__.py | 17 | CODE | |
| LOW | common/utils/aliyun_sdk.py | 62 | CODE | |
| LOW | common/utils/aliyun_sdk.py | 75 | CODE | |
| LOW | common/utils/aliyun_sdk.py | 97 | CODE | |
| LOW | sql/utils/data_masking.py | 111 | CODE | |
| LOW | sql/engines/mssql.py | 335 | CODE | |
| LOW | sql/engines/pgsql.py | 156 | CODE | |
| LOW | sql/engines/odps.py | 101 | CODE | |
| LOW | sql/engines/oracle.py | 450 | CODE | |
| LOW | sql/engines/phoenix.py | 60 | CODE | |
| LOW | sql/engines/mysql.py | 732 | CODE | |
| LOW | sql/engines/cloud/aliyun_rds.py | 150 | CODE | |
| LOW | sql/engines/cloud/aliyun_rds.py | 197 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | common/authenticate/test_oidc_auth.py | 160 | User.objects.create_user(username="admin", email="admin@example.com") | CODE |
| LOW⚡ | …static/bootstrap-editable/js/bootstrap-editable.min.js | 5 | !function(a){"use strict";var b=function(b,c){this.options=a.extend({},a.fn.editableform.defaults,c),this.$div=a(b),this | CODE |
| LOW⚡ | …static/bootstrap-editable/js/bootstrap-editable.min.js | 7 | },getDaysInMonth:function(a,b){return[31,l.isLeapYear(a)?29:28,31,30,31,30,31,31,30,31,30,31][b]},validParts:/dd?|DD?|mm | CODE |
| LOW | …mon/static/bootstrap-editable/js/bootstrap-editable.js | 2907 | this.setAttr('placeholder'); | CODE |
| LOW | …mon/static/bootstrap-editable/js/bootstrap-editable.js | 3042 | this.setAttr('placeholder'); | CODE |
| LOW | …mon/static/bootstrap-editable/js/bootstrap-editable.js | 6430 | this.setAttr('placeholder'); | CODE |
| LOW | …mon/static/bootstrap-editable/js/bootstrap-editable.js | 6754 | this.setAttr('placeholder'); | CODE |
| LOW | common/static/sql-formatter/sql-formatter.js | 869 | PLACEHOLDER: "placeholder" | CODE |
| LOW | common/static/sql-formatter/sql-formatter.min.js | 1 | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.am | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …-table/extensions/editable/bootstrap-table-editable.js | 1521 | // https://tc39.es/ecma262/#sec-array.prototype.map | COMMENT |
| LOW | common/static/bootstrap-select/js/bootstrap-select.js | 3061 | //# sourceMappingURL=bootstrap-select.js.map | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 41 | - name: Initialize CodeQL | COMMENT |
| LOW | .specify/scripts/bash/check-prerequisites.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | src/charts/values.yaml | 121 | # storageClass: "-" | COMMENT |
| LOW | sql/utils/extract_tables.py | 181 | # we'll identify abc, col1 and col2 as table names. | COMMENT |
| LOW | sql/engines/redis.py | 301 | "client info", | COMMENT |
| LOW | sql/engines/redis.py | 321 | # "function stats", | COMMENT |
| LOW | sql/engines/redis.py | 561 | # "acl deluser", # 禁用 acl 命令,防止设置敏感信息 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | sql/engines/test_doris.py | 60 | column_list=column_names, # Add column names for robust lookup | CODE |
| MEDIUM | sql/engines/doris.py | 29 | # Find Version column by name (robust against column reordering/additions) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | sql_api/api_sqlquery.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | sql_api/api_instance.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | archery/settings.py | 15 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .specify/scripts/bash/setup-plan.sh | 50 | # Create a basic plan file if template doesn't exist | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …-table/extensions/editable/bootstrap-table-editable.js | 2619 | value: function getData(params) { | CODE |