SQL 审核查询平台
This report summarizes scanner evidence for hhyo/Archery, a Python project with 7,060 GitHub stars. SynthScan examined 143,025 lines of code across 501 source files, recording 1430 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 11.5 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1059 finding(s).
Are imports declared and package/API names verified? 136 finding(s).
Are wrappers, guards, and repeated structures necessary? 1177 finding(s).
Which changes need focused human review? 1430 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1430 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 102 | def public_instance_permission_data(normal_user, db_instance): | CODE |
| LOW | conftest.py | 201 | 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 | 300 | def test_can_read_public_instance_allows_can_write_instance( | CODE |
| LOW⚡ | sql_api/test_api_instance.py | 310 | def test_can_read_public_instance_allows_can_read_instance( | CODE |
| LOW⚡ | sql_api/test_api_instance.py | 320 | def test_can_read_public_instance_denies_untagged_instance( | CODE |
| LOW⚡ | sql_api/test_api_instance.py | 327 | def test_can_read_public_instance_allows_superuser_with_instance_tag( | CODE |
| LOW⚡ | sql_api/test_api_instance.py | 337 | def test_public_instance_serializer_uses_safe_allowlist(db_instance): | CODE |
| LOW | sql_api/test_api_instance.py | 71 | def test_instance_resource_database( | CODE |
| LOW | sql_api/test_api_instance.py | 94 | def test_instance_resource_schema( | CODE |
| LOW | sql_api/test_api_instance.py | 113 | def test_instance_resource_table( | CODE |
| LOW | sql_api/test_api_instance.py | 137 | def test_instance_resource_column( | CODE |
| LOW | sql_api/test_api_instance.py | 162 | def test_instance_resource_server_info( | CODE |
| LOW | sql_api/test_api_instance.py | 181 | def test_instance_resource_server_info_no_fork( | CODE |
| LOW | sql_api/test_api_instance.py | 207 | def test_instance_resource_invalid_params( | CODE |
| LOW | sql_api/test_api_instance.py | 224 | def test_instance_resource_invalid_type( | CODE |
| LOW | sql_api/test_api_instance.py | 241 | def test_instance_resource_missing_args( | CODE |
| LOW | sql_api/test_api_instance.py | 259 | def test_instance_resource_engine_exception( | CODE |
| LOW | sql_api/test_api_instance.py | 278 | def test_instance_resource_engine_error_resource( | CODE |
| LOW | sql_api/test_api_instance.py | 353 | def test_public_instance_detail_allows_can_write_user( | CODE |
| LOW | sql_api/test_api_instance.py | 369 | def test_public_instance_detail_allows_can_read_user( | CODE |
| LOW | sql_api/test_api_instance.py | 383 | def test_public_instance_detail_requires_authentication(api_client, db_instance): | CODE |
| LOW | sql_api/test_api_instance.py | 390 | def test_public_instance_detail_denies_user_without_instance_access( | CODE |
| LOW | sql_api/test_api_instance.py | 401 | def test_public_instance_detail_returns_not_found(api_client, normal_user): | CODE |
| LOW | sql_api/test_api_instance.py | 410 | def test_instance_detail_put_and_delete_still_work_for_authenticated_superuser( | CODE |
| LOW⚡ | sql_api/test_workflow_operations_api.py | 24 | def test_should_notify_defaults_to_enabled_when_config_is_empty(mocker): | CODE |
| LOW⚡ | sql_api/test_workflow_operations_api.py | 31 | def test_should_notify_checks_configured_phase_list(mocker): | CODE |
| LOW⚡ | sql_api/test_workflow_operations_api.py | 40 | def test_mutation_response_uses_workflow_detail_url(): | CODE |
| LOW⚡ | sql_api/test_workflow_operations_api.py | 50 | def test_workflow_mutation_serializers_retain_legacy_field_names(): | CODE |
| LOW⚡ | sql_api/test_workflow_operations_api.py | 59 | def test_sql_workflow_detail_serializer_documents_instance_id(workflow_api_data): | CODE |
| LOW⚡ | sql_api/test_workflow_operations_api.py | 69 | def test_workflow_status_response_serializer_shape(): | CODE |
| LOW⚡ | sql_api/test_workflow_operations_api.py | 78 | def test_workflow_action_serializers_use_session_identity_not_engineer(): | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 95 | def test_workflow_log_response_serializer_shape(): | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 115 | def test_approval_endpoint_uses_path_id_and_session_user( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 145 | def test_execution_endpoint_rejects_invalid_mode_before_service_call( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 156 | def test_workflow_list_returns_submitters_workflow( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 175 | def test_workflow_list_filters_json_syntax_type( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 208 | def test_workflow_audit_list_returns_workflows( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 225 | def test_sql_workflow_submit_view_returns_audit_id_and_queues_apply_notification( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 271 | def test_sql_workflow_submit_view_skips_apply_notification_when_disabled( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 300 | def test_workflow_detail_returns_saved_fields_for_viewable_workflow( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 324 | def test_workflow_detail_denies_unviewable_workflow( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 337 | def test_workflow_detail_returns_not_found_for_unknown_workflow( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 347 | def test_workflow_content_and_status_return_compatible_responses( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 369 | def test_rollback_and_osc_return_engine_results( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 396 | def test_osc_progress_get_only_requires_view_permission( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 416 | def test_osc_control_requires_workflow_execution_permission( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 435 | def test_osc_control_allows_submitter_with_execution_permission( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 458 | def test_osc_control_allows_resource_group_execution_permission( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 488 | def test_execution_window_updates_workflow( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 511 | def test_terminate_scheduled_workflow_removes_schedule_after_commit( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 548 | def test_rejection_view_aborts_workflow_and_removes_schedule_after_commit( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 599 | def test_rejection_view_requires_reject_remark_before_side_effects( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 618 | def test_rejection_view_returns_audit_exception_message( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 654 | def test_auto_execution_queues_task_and_removes_schedule_after_commit( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 690 | def test_auto_execution_queues_task_when_schedule_cleanup_fails( | CODE |
| LOW | sql_api/test_workflow_operations_api.py | 732 | def test_schedule_creates_timing_task_for_authorized_executor( | CODE |
| 869 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 | 248 | except Exception as e: | CODE |
| LOW | sql_api/serializers.py | 554 | except Exception: | CODE |
| LOW | sql_api/serializers.py | 592 | except Exception: | CODE |
| MEDIUM | sql_api/serializers.py | 46 | def validate_password(self, password): | CODE |
| MEDIUM | sql_api/serializers.py | 409 | def validate_instance_id(self, instance_id): | CODE |
| LOW | sql_api/api_workflow_operations.py | 81 | except Exception: | CODE |
| LOW | sql_api/api_workflow_operations.py | 102 | except Exception: | CODE |
| LOW | sql_api/api_workflow_operations.py | 376 | except Exception: | CODE |
| LOW | sql_api/api_workflow_operations.py | 640 | except Exception: | CODE |
| MEDIUM | sql_api/api_workflow_operations.py | 54 | def get_workflow(workflow_id): | CODE |
| LOW | sql_api/api_instance.py | 267 | except Exception as msg: | CODE |
| LOW | sql_api/api_instance.py | 307 | except Exception as e: | CODE |
| MEDIUM | sql_api/api_instance.py | 89 | 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 | 358 | except Exception as e: | CODE |
| LOW | sql/instance.py | 369 | except Exception as e: | CODE |
| LOW | sql/binlog.py | 256 | except Exception as e: | CODE |
| LOW | sql/slowlog.py | 53 | except Exception: | CODE |
| LOW | sql/slowlog.py | 211 | except Exception: | CODE |
| LOW | sql/query.py | 168 | except Exception as msg: | CODE |
| LOW | sql/archiver.py | 532 | except Exception as msg: | CODE |
| LOW | sql/query_privileges.py | 98 | except Exception as msg: | CODE |
| LOW | sql/instance_database.py | 110 | except Exception as e: | CODE |
| LOW | sql/notify.py | 507 | except Exception as e: # NOQA 捕获一些错误, 让其他的 notifier 可以正常运行 | CODE |
| 140 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 | 26 | CODE | |
| LOW | common/tests.py | 12 | CODE | |
| LOW | common/utils/sendmsg.py | 16 | CODE | |
| LOW | archery/settings.py | 6 | CODE | |
| LOW | archery/settings.py | 522 | CODE | |
| LOW | sql/instance.py | 18 | 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/binlog.py | 21 | 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 | 33 | CODE | |
| LOW | sql/query_privileges.py | 34 | CODE | |
| LOW | sql/resource_group.py | 13 | CODE | |
| LOW | sql/resource_group.py | 15 | CODE | |
| LOW | sql/offlinedownload.py | 9 | 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/tests.py | 28 | CODE | |
| LOW | sql/sql_optimize.py | 9 | CODE | |
| LOW | sql/test_offlinedownload.py | 1 | CODE | |
| LOW | sql/test_offlinedownload.py | 29 | CODE | |
| 41 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sql_api/views.py | 228 | except: | CODE |
| HIGH | sql/sql_analyze.py | 91 | except OSError: | CODE |
| HIGH | sql/slowlog.py | 368 | except Instance.DoesNotExist: | CODE |
| HIGH | sql/utils/tasks.py | 62 | except Schedule.DoesNotExist: | CODE |
| HIGH | sql/utils/tasks.py | 71 | except Schedule.DoesNotExist: | CODE |
| HIGH | sql/utils/data_masking.py | 279 | except: | CODE |
| HIGH | sql/engines/mssql.py | 686 | except: | CODE |
| HIGH | sql/engines/mssql.py | 690 | except: | CODE |
| HIGH | sql/engines/mssql.py | 695 | except: | CODE |
| HIGH | sql/engines/mssql.py | 813 | except: | CODE |
| HIGH | sql/engines/mssql.py | 504 | except: | CODE |
| HIGH | sql/engines/mssql.py | 665 | except: | CODE |
| HIGH | sql/engines/gaussdb.py | 126 | except Exception: | CODE |
| HIGH | sql/engines/gaussdb.py | 1199 | except Exception: | CODE |
| HIGH | sql/engines/gaussdb.py | 112 | except Exception: | CODE |
| HIGH | sql/engines/gaussdb.py | 134 | except Exception: | CODE |
| HIGH | sql/engines/pgsql.py | 198 | except: | CODE |
| HIGH | sql/engines/mysql.py | 1149 | except MySQLdb.OperationalError: | CODE |
| 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 | 210 | 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_analyze.py | 46 | CODE | |
| LOW | sql/binlog.py | 41 | CODE | |
| LOW | sql/binlog.py | 127 | CODE | |
| LOW | sql/slowlog.py | 35 | CODE | |
| LOW | sql/slowlog.py | 192 | CODE | |
| LOW | sql/archiver.py | 330 | CODE | |
| LOW | sql/query_privileges.py | 43 | CODE | |
| LOW | sql/query_privileges.py | 206 | CODE | |
| LOW | sql/notify.py | 143 | CODE | |
| LOW | sql/offlinedownload.py | 335 | CODE | |
| LOW | sql/offlinedownload.py | 409 | CODE | |
| LOW | sql/offlinedownload.py | 510 | CODE | |
| LOW | sql/test_storage.py | 172 | CODE | |
| LOW | sql/test_storage.py | 305 | CODE | |
| LOW | sql/db_diagnostic.py | 84 | CODE | |
| LOW | sql/views.py | 74 | CODE | |
| LOW | sql/utils/data_masking.py | 18 | CODE | |
| LOW | sql/utils/data_masking.py | 236 | CODE | |
| LOW | sql/utils/workflow_audit.py | 746 | 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 | 43 | CODE | |
| LOW | sql/engines/mongo.py | 84 | CODE | |
| LOW | sql/engines/mongo.py | 331 | CODE | |
| LOW | sql/engines/mongo.py | 387 | CODE | |
| LOW | sql/engines/mongo.py | 423 | CODE | |
| LOW | sql/engines/mongo.py | 783 | CODE | |
| LOW | sql/engines/mongo.py | 841 | CODE | |
| LOW | sql/engines/mongo.py | 1271 | CODE | |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | sql/offlinedownload.py | 428 | text = "(null)" | CODE |
| HIGH | sql/test_query_privileges.py | 502 | "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 | 240 | bcs.data_type || case | CODE |
| HIGH | sql/engines/oracle.py | 248 | '(' || bcs.char_length || case char_used | CODE |
| HIGH | sql/engines/oracle.py | 330 | bcs.data_type || case | CODE |
| HIGH | sql/engines/oracle.py | 338 | '(' || 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/setup-tasks.sh | 62 | # 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 |
| LOW | sql/engines/gaussdb.py | 1177 | # Check if the parameter requires a restart (postmaster context) | STRING |
| 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 | 454 | CODE | |
| LOW | sql/engines/phoenix.py | 60 | CODE | |
| LOW | sql/engines/mysql.py | 1105 | 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 list", | COMMENT |
| LOW | sql/engines/redis.py | 321 | # "function dump", | COMMENT |
| LOW | sql/engines/redis.py | 561 | # 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 |
| LOW⚡ | sql/engines/test_gaussdb.py | 1165 | # integer(32,0) is invalid; should just return "integer" | COMMENT |
| 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 | 28 | 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 |