Repository Analysis

getredash/redash

Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.

9.6 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of getredash/redash, a Python project with 28,695 GitHub stars. SynthScan v2.0 examined 126,324 lines of code across 1048 source files, recording 1057 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 9.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).

9.6
Adjusted Score
9.6
Raw Score
100%
Time Factor
2026-07-09
Last Push
28.7K
Stars
Python
Language
126.3K
Lines of Code
1.0K
Files
1.1K
Pattern Hits
2026-07-14
Scan Date
0.01
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

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.

CRITICAL 0HIGH 10MEDIUM 29LOW 1018

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 1057 distinct pattern matches across 14 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.

Hyper-Verbose Identifiers712 hits · 787 pts
SeverityFileLineSnippetContext
LOWbin/release_manager.py130def update_release_commit_sha(release, commit_sha):CODE
LOWviz-lib/README.md139function wrapComponentWithSettings(WrappedComponent) {CODE
LOWviz-lib/src/visualizations/visualizationsSettings.tsx59export function updateVisualizationsSettings(options: any) {CODE
LOWviz-lib/src/visualizations/registeredVisualizations.ts56function validateVisualizationConfig(config: any) {CODE
LOWviz-lib/src/visualizations/chart/plotly/updateData.ts23function defaultFormatSeriesTextForPie(item: any) {CODE
LOW…ib/src/visualizations/chart/plotly/customChartUtils.ts22export function createCustomChartRenderer(code: any, logErrorsToConsole = false) {CODE
LOW…ib/src/visualizations/chart/Editor/GeneralSettings.tsx11function getAvailableColumnMappingTypes(options: any) {CODE
LOW…ib/src/visualizations/chart/Editor/GeneralSettings.tsx65function mappedColumnsToColumnMappings(mappedColumns: any) {CODE
LOW…ib/src/visualizations/chart/Editor/GeneralSettings.tsx89 function handleGlobalSeriesTypeChange(globalSeriesType: any) {CODE
LOW…ib/src/visualizations/chart/Editor/GeneralSettings.tsx101 function handleColumnMappingChange(column: any, type: any) {CODE
LOW…ib/src/visualizations/chart/Editor/GeneralSettings.tsx109 function handleLegendPlacementChange(value: any) {CODE
LOWviz-lib/src/visualizations/shared/columnUtils.ts28export function getColumnContentAlignment(type: any) {CODE
LOWviz-lib/src/visualizations/map/Editor/StyleSettings.tsx64function getCustomIconOptionFields(iconShape: any) {CODE
LOWviz-lib/src/visualizations/sunburst/initSunburst.ts29function buildNodesFromHierarchyData(data: any) {CODE
LOWviz-lib/src/lib/referenceCountingCache.ts3export default function createReferenceCountingCache({ cleanupDelay = 2000 } = {}) {CODE
LOWviz-lib/src/lib/chooseTextColorForBackground.ts4export default function chooseTextColorForBackground(backgroundColor: any, textColors = ["#ffffff", "#333333"]) {CODE
LOWtests/test_monitor.py7def test_rq_job_ids_uses_rq_redis_connection():CODE
LOWtests/test_utils.py43 def test_uses_current_request_port(self):CODE
LOWtests/test_utils.py49 def test_uses_current_request_schema(self):CODE
LOWtests/test_utils.py55 def test_skips_port_for_default_ports(self):CODE
LOWtests/test_utils.py75 def test_ignores_non_prefixed_values(self):CODE
LOWtests/test_utils.py78 def test_takes_prefixed_values(self):CODE
LOWtests/test_utils.py141def test_get_column_types_from_dataframe(mock_dataframe):CODE
LOWtests/test_handlers.py15 def test_returns_content_when_authenticated(self):CODE
LOWtests/test_handlers.py22 def test_responds_with_success_for_signed_in_user(self):CODE
LOWtests/test_handlers.py30 def test_redirects_for_nonsigned_in_user(self):CODE
LOWtests/test_handlers.py34 def test_redirects_for_invalid_session_identifier(self):CODE
LOWtests/test_handlers.py60 def test_redirect_to_login_when_not_authenticated(self):CODE
LOWtests/test_handlers.py65 def test_returns_content_when_authenticated(self):CODE
LOWtests/test_handlers.py72 def test_returns_data_for_super_admin(self):CODE
LOWtests/test_handlers.py82 def test_redirects_non_authenticated_user(self):CODE
LOWtests/test_handlers.py203 def test_submit_empty_password(self):CODE
LOWtests/test_handlers.py211 def test_user_already_loggedin(self):CODE
LOWtests/test_handlers.py217 def test_correct_user_and_password_when_password_login_disabled(self):CODE
LOWtests/test_handlers.py102 def test_get_login_form_remote_auth(self):CODE
LOWtests/test_handlers.py118 def test_submit_non_existing_user(self):CODE
LOWtests/test_handlers.py124 def test_submit_correct_user_and_password(self):CODE
LOWtests/test_handlers.py136 def test_submit_case_insensitive_user_and_password(self):CODE
LOWtests/test_handlers.py151 def test_submit_correct_user_and_password_and_remember_me(self):CODE
LOWtests/test_handlers.py166 def test_submit_correct_user_and_password_with_next(self):CODE
LOWtests/test_handlers.py182 def test_submit_incorrect_user(self):CODE
LOWtests/test_handlers.py188 def test_submit_incorrect_password(self):CODE
LOWtests/test_handlers.py233 def test_logout_when_not_loggedin(self):CODE
LOWtests/test_handlers.py239 def test_logout_when_loggedin(self):CODE
LOWtests/test_configuration.py27 def test_raises_exception_when_no_schema_set(self):CODE
LOWtests/test_configuration.py31 def test_returns_dict_with_masked_secrets(self):CODE
LOWtests/test_configuration.py45 def test_rejects_invalid_new_config(self):CODE
LOWtests/test_configuration.py48 def test_fails_if_no_schema_set(self):CODE
LOWtests/test_configuration.py52 def test_ignores_secret_placehodler(self):CODE
LOWtests/test_configuration.py61 def test_doesnt_leave_leftovers(self):CODE
LOWtests/test_configuration.py71 def test_works_for_schema_without_secret(self):CODE
LOWtests/test_migrations.py7def test_only_single_head_revision_in_migrations():CODE
LOWtests/factories.py248 def create_alert_subscription(self, **kwargs):CODE
LOWtests/factories.py307 def create_visualization_with_params(self, **kwargs):CODE
LOWtests/test_authentication.py208 def test_no_domain_allowed_for_org(self):CODE
LOWtests/test_authentication.py212 def test_domain_not_in_org_domains_list(self):CODE
LOWtests/test_authentication.py217 def test_domain_in_org_domains_list(self):CODE
LOWtests/test_authentication.py228 def test_org_in_public_mode_accepts_any_domain(self):CODE
LOWtests/test_authentication.py234 def test_user_not_in_domain_but_account_exists(self):CODE
LOWtests/test_authentication.py242 def test_when_multi_org_enabled_and_org_exists(self):CODE
652 more matches not shown…
Excessive Try-Catch Wrapping102 hits · 123 pts
SeverityFileLineSnippetContext
LOWbin/release_manager.py120 except Exception:CODE
LOWbin/release_manager.py162 except Exception as ex:CODE
MEDIUMbin/release_manager.py143def update_release(version, build_filepath, commit_sha):CODE
LOWbin/get_changes.py31 except Exception:CODE
LOWtests/query_runner/test_google_spreadsheets.py189 except Exception:CODE
MEDIUMtests/query_runner/test_google_spreadsheets.py183def test_connect_succuess(self, mock_client, _mock_auth_default):CODE
LOWtests/handlers/test_query_results.py44 except Exception as e:CODE
LOWredash/metrics/database.py41 except Exception:CODE
LOWredash/tasks/alerts.py16 except Exception:CODE
LOWredash/tasks/databricks.py17 except Exception:CODE
LOWredash/tasks/databricks.py34 except Exception:CODE
LOWredash/tasks/databricks.py44 except Exception:CODE
LOWredash/tasks/databricks.py53 except Exception:CODE
MEDIUMredash/tasks/databricks.py10def get_databricks_databases(data_source_id, redis_key):CODE
MEDIUMredash/tasks/databricks.py22def get_database_tables_with_columns(data_source_id, database_name, redis_key):CODE
MEDIUMredash/tasks/databricks.py39def get_databricks_tables(data_source_id, database_name):CODE
MEDIUMredash/tasks/databricks.py49def get_databricks_table_columns(data_source_id, database_name, table_name):CODE
LOWredash/tasks/general.py29 except Exception:CODE
LOWredash/tasks/general.py60 except Exception:CODE
LOWredash/tasks/general.py69 except Exception as e:CODE
LOWredash/tasks/general.py87 except Exception as e:CODE
MEDIUMredash/tasks/general.py55def send_mail(to, subject, html, text):CODE
MEDIUMredash/tasks/general.py65def test_connection(data_source_id):CODE
MEDIUMredash/tasks/general.py76def get_schema(data_source_id, refresh):CODE
LOWredash/tasks/queries/execution.py209 except Exception as e:CODE
LOWredash/tasks/queries/maintenance.py103 except Exception as e:CODE
LOWredash/tasks/queries/maintenance.py183 except Exception:CODE
LOWredash/destinations/microsoft_teams_webhook.py110 except Exception:CODE
LOWredash/destinations/hangoutschat.py92 except Exception:CODE
MEDIUMredash/destinations/hangoutschat.py40def notify(self, alert, query, user, new_state, app, host, metadata, options):CODE
LOWredash/destinations/asana.py60 except Exception as e:STRING
LOWredash/destinations/webhook.py52 except Exception:CODE
MEDIUMredash/destinations/webhook.py29def notify(self, alert, query, user, new_state, app, host, metadata, options):CODE
LOWredash/destinations/discord.py66 except Exception as e:CODE
LOWredash/destinations/mattermost.py52 except Exception:CODE
LOWredash/destinations/chatwork.py60 except Exception:CODE
MEDIUMredash/destinations/chatwork.py32def notify(self, alert, query, user, new_state, app, host, metadata, options):CODE
LOWredash/destinations/email.py53 except Exception:CODE
LOWredash/destinations/webex.py226 except Exception as e:CODE
MEDIUMredash/destinations/webex.py215def post_message(self, payload, headers):CODE
LOWredash/destinations/pagerduty.py78 except Exception:CODE
LOWredash/destinations/slack.py57 except Exception:CODE
LOWredash/destinations/datadog.py89 except Exception as e:CODE
LOWredash/models/__init__.py221 except Exception:CODE
LOWredash/models/__init__.py635 except Exception as e:CODE
LOWredash/models/parameterized_query.py181 except Exception:CODE
LOWredash/cli/users.py115 except Exception as e:CODE
LOWredash/cli/users.py187 except Exception as e:CODE
LOWredash/cli/organization.py43 except Exception as e:CODE
LOWredash/cli/groups.py41 except Exception as e:CODE
LOWredash/cli/groups.py74 except Exception as e:CODE
LOWredash/cli/data_sources.py78 except Exception as e:CODE
MEDIUMredash/cli/data_sources.py159 print("Error: invalid configuration.")CODE
LOWredash/query_runner/d1.py116 except Exception as e:CODE
LOWredash/query_runner/d1.py140 except Exception as e:CODE
MEDIUMredash/query_runner/d1.py91def run_query(self, query, user):CODE
LOWredash/query_runner/corporate_memory.py163 except Exception as error:CODE
LOWredash/query_runner/corporate_memory.py174 except Exception:CODE
LOWredash/query_runner/influx_db_v2.py139 except Exception:CODE
LOWredash/query_runner/influx_db_v2.py206 except Exception as ex:CODE
42 more matches not shown…
Unused Imports72 hits · 72 pts
SeverityFileLineSnippetContext
LOWredash/__init__.py13CODE
LOWredash/settings/__init__.py3CODE
LOWredash/settings/__init__.py8CODE
LOWredash/settings/__init__.py17CODE
LOWredash/settings/__init__.py17CODE
LOWredash/tasks/__init__.py4CODE
LOWredash/tasks/__init__.py5CODE
LOWredash/tasks/__init__.py6CODE
LOWredash/tasks/__init__.py6CODE
LOWredash/tasks/__init__.py6CODE
LOWredash/tasks/__init__.py6CODE
LOWredash/tasks/__init__.py12CODE
LOWredash/tasks/__init__.py12CODE
LOWredash/tasks/__init__.py12CODE
LOWredash/tasks/__init__.py12CODE
LOWredash/tasks/__init__.py12CODE
LOWredash/tasks/__init__.py12CODE
LOWredash/tasks/__init__.py12CODE
LOWredash/tasks/__init__.py21CODE
LOWredash/tasks/__init__.py21CODE
LOWredash/tasks/__init__.py21CODE
LOWredash/tasks/__init__.py26CODE
LOWredash/tasks/__init__.py26CODE
LOWredash/tasks/__init__.py26CODE
LOWredash/tasks/queries/__init__.py1CODE
LOWredash/tasks/queries/__init__.py1CODE
LOWredash/tasks/queries/__init__.py2CODE
LOWredash/tasks/queries/__init__.py2CODE
LOWredash/tasks/queries/__init__.py2CODE
LOWredash/tasks/queries/__init__.py2CODE
LOWredash/tasks/queries/__init__.py2CODE
LOWredash/utils/__init__.py13CODE
LOWredash/utils/__init__.py18CODE
LOWredash/utils/__init__.py25CODE
LOWredash/utils/requests_session.py11CODE
LOWredash/models/__init__.py13CODE
LOWredash/models/__init__.py20CODE
LOWredash/models/__init__.py31CODE
LOWredash/models/__init__.py41CODE
LOWredash/models/__init__.py49CODE
LOWredash/models/__init__.py57CODE
LOWredash/models/__init__.py57CODE
LOWredash/models/__init__.py57CODE
LOWredash/models/__init__.py64CODE
LOWredash/models/__init__.py64CODE
LOWredash/models/__init__.py64CODE
LOWredash/models/__init__.py73CODE
LOWredash/cli/__init__.py86CODE
LOWredash/query_runner/corporate_memory.py17CODE
LOWredash/query_runner/corporate_memory.py17CODE
LOWredash/query_runner/yandex_disk.py13CODE
LOWredash/query_runner/sparql_endpoint.py17CODE
LOWredash/query_runner/__init__.py8CODE
LOWredash/query_runner/excel.py15CODE
LOWredash/query_runner/excel.py17CODE
LOWredash/query_runner/db2.py68CODE
LOWredash/query_runner/cloudwatch_insights.py11CODE
LOWredash/query_runner/couchbase.py16CODE
LOWredash/query_runner/arango.py57CODE
LOWredash/serializers/__init__.py10CODE
12 more matches not shown…
Modern Structural Boilerplate61 hits · 61 pts
SeverityFileLineSnippetContext
LOWredash/tasks/schedule.py21logger = logging.getLogger(__name__)CODE
LOWredash/destinations/__init__.py3logger = logging.getLogger(__name__)CODE
LOWredash/destinations/__init__.py5__all__ = ["BaseDestination", "register", "get_destination", "import_destinations"]CODE
LOWredash/utils/pandas.py13logger = logging.getLogger(__name__)CODE
LOWredash/models/users.py22logger = logging.getLogger(__name__)CODE
LOWredash/models/__init__.py85logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/elasticsearch2.py15logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/elasticsearch.py27logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/corporate_memory.py27logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/influx_db_v2.py24logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/tinybird.py8logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/pg.py24logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/clickhouse.py19logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/trino.py19logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/yandex_disk.py29logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/mssql.py12logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/big_query.py22logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/axibase_tsd.py18logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/impala_ds.py14logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/treasuredata.py13logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/salesforce.py16logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/sparql_endpoint.py23logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/graphite.py14logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/mongodb.py18logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/memsql_ds.py14logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/__init__.py18logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/__init__.py20__all__ = [CODE
LOWredash/query_runner/excel.py11logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/sqlite.py10logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/mssql_odbc.py10logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/query_results.py20logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/db2.py15logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/google_search_console.py16logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/csv.py12logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/python.py43logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/google_spreadsheets.py21logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/drill.py17logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/google_analytics4.py18logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/presto.py15logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/pinot.py23logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/databricks.py38logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/yandex_metrica.py17logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/oracle.py37logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/vertica.py14logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/nz.py15logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/phoenix.py13logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/duckdb.py15logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/athena.py16logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/hive_ds.py16logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/kylin.py19logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/ignite.py20logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/cass.py9logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/google_analytics.py17logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/influx_db.py11logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/couchbase.py14logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/arango.py11logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/uptycs.py10logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/mysql.py25logger = logging.getLogger(__name__)CODE
LOWredash/query_runner/e6data.py23logger = logging.getLogger(__name__)CODE
LOWredash/authentication/account.py10logger = logging.getLogger(__name__)CODE
1 more matches not shown…
Cross-Language Confusion10 hits · 56 pts
SeverityFileLineSnippetContext
HIGHtests/test_utils.py162 assert mock_dataframe.equals(pd.DataFrame(result["rows"]))CODE
HIGHtests/__init__.py53 self.app_ctx.push()CODE
HIGHtests/query_runner/test_yandex_disk.py227 assert test_df.equals(EXTENSIONS_READERS["xlsx"](output))STRING
HIGHtests/query_runner/test_yandex_disk.py236 assert test_df.equals(EXTENSIONS_READERS["csv"](output))STRING
HIGHtests/query_runner/test_yandex_disk.py245 assert test_df.equals(EXTENSIONS_READERS["tsv"](output))STRING
HIGHredash/authentication/remote_user_auth.py30 # Some Apache auth configurations will, stupidly, set (null) instead of aCOMMENT
HIGHredash/authentication/remote_user_auth.py32 # '(null)' should never really be a value that anyone wants to legitimatelyCOMMENT
HIGHredash/authentication/remote_user_auth.py34 if email == "(null)":CODE
HIGHredash/handlers/queries.py218 :>json string retrieved_at: Time when query results were last retrieved, in ISO format (may be null)STRING
HIGHredash/handlers/queries.py219 :>json number runtime: Runtime of last query execution, in seconds (may be null)STRING
Deep Nesting50 hits · 50 pts
SeverityFileLineSnippetContext
LOWtests/query_runner/test_json_ds.py11CODE
LOWredash/tasks/worker.py116CODE
LOWredash/tasks/queries/execution.py32CODE
LOWredash/tasks/queries/execution.py150CODE
LOWredash/tasks/queries/maintenance.py33CODE
LOWredash/tasks/queries/maintenance.py193CODE
LOWredash/utils/query_order.py172CODE
LOWredash/utils/query_order.py199CODE
LOWredash/utils/pandas.py21CODE
LOWredash/utils/__init__.py83CODE
LOWredash/models/__init__.py593CODE
LOWredash/models/__init__.py649CODE
LOWredash/models/__init__.py1015CODE
LOWredash/query_runner/elasticsearch2.py75CODE
LOWredash/query_runner/elasticsearch2.py113CODE
LOWredash/query_runner/elasticsearch2.py78CODE
LOWredash/query_runner/elasticsearch2.py143CODE
LOWredash/query_runner/elasticsearch.py123CODE
LOWredash/query_runner/elasticsearch.py180CODE
LOWredash/query_runner/elasticsearch.py356CODE
LOWredash/query_runner/elasticsearch.py206CODE
LOWredash/query_runner/pg.py58CODE
LOWredash/query_runner/clickhouse.py149CODE
LOWredash/query_runner/databend.py54CODE
LOWredash/query_runner/big_query.py46CODE
LOWredash/query_runner/treasuredata.py75CODE
LOWredash/query_runner/mongodb.py85CODE
LOWredash/query_runner/mongodb.py293CODE
LOWredash/query_runner/excel.py45CODE
LOWredash/query_runner/query_results.py168CODE
LOWredash/query_runner/google_search_console.py38CODE
LOWredash/query_runner/google_search_console.py78CODE
LOWredash/query_runner/csv.py48CODE
LOWredash/query_runner/google_spreadsheets.py60CODE
LOWredash/query_runner/google_analytics4.py41CODE
LOWredash/query_runner/json_ds.py101CODE
LOWredash/query_runner/exasol.py14CODE
LOWredash/query_runner/duckdb.py83CODE
LOWredash/query_runner/athena.py190CODE
LOWredash/query_runner/jql.py35CODE
LOWredash/query_runner/google_analytics.py39CODE
LOWredash/query_runner/google_analytics.py128CODE
LOWredash/query_runner/rockset.py13CODE
LOWredash/query_runner/influx_db.py33CODE
LOWredash/query_runner/couchbase.py40CODE
LOWredash/serializers/__init__.py209CODE
LOWredash/serializers/__init__.py77CODE
LOWredash/serializers/__init__.py268CODE
LOWredash/authentication/__init__.py109CODE
LOWredash/handlers/authentication.py31CODE
Fake / Example Data20 hits · 22 pts
SeverityFileLineSnippetContext
LOWviz-lib/src/visualizations/details/Renderer.test.tsx24 name: "John Doe",CODE
LOWviz-lib/src/visualizations/details/Renderer.test.tsx46 expect(el.text()).toContain("John Doe"); // name valueCODE
LOWviz-lib/src/visualizations/details/Renderer.test.tsx166 expect(el.text()).toContain("John Doe");CODE
LOWtests/factories.py46 name="John Doe",CODE
LOWtests/models/test_parameterized_query.py274 "rows": [{"id": 5, "Name": "John", "Value": "John Doe"}],CODE
LOWtests/models/test_parameterized_query.py279 self.assertEqual(values, [{"name": "John", "value": "John Doe"}])CODE
LOWtests/handlers/test_users.py43 test_user = {"name": "User", "email": "user@example.com", "password": "test"}CODE
LOWtests/handlers/test_users.py54 test_user = {"name": "User", "email": "user@example.com"}CODE
LOWtests/handlers/test_users.py64 test_user = {"name": "User", "email": "user@example.com"}CODE
LOWtests/handlers/test_users.py78 self.assertEqual(rv.json["email"], "user@example.com")CODE
LOWtests/handlers/test_users.py91 test_user1 = {"name": "User", "email": "user@example.com", "password": "test"}CODE
LOWtests/handlers/test_users.py95 self.assertEqual(rv.json["email"], "user@example.com")CODE
LOWclient/cypress/integration/dashboard/widget_spec.js187 query: "select 'lorem ipsum' FROM generate_series(1,50)",CODE
LOW…/cypress/integration/visualizations/word_cloud_spec.js6 SELECT 'Lorem ipsum dolor' AS a, 'ipsum' AS b, 2 AS c UNION ALLCODE
LOW…egration/visualizations/table/.mocks/all-cell-types.js10 '[{"a": 3.14, "b": "test", "c": [], "d": {}}, false, [null, 123], "Lorem ipsum dolor sit amet, consectetur adipiscinCODE
LOW…egration/visualizations/table/.mocks/all-cell-types.js10 '[{"a": 3.14, "b": "test", "c": [], "d": {}}, false, [null, 123], "Lorem ipsum dolor sit amet, consectetur adipiscinCODE
LOW…tegration/visualizations/table/.mocks/large-dataset.js2 "Lorem ipsum dolor sit amet consectetur adipiscing elit" +CODE
LOW…tegration/visualizations/table/.mocks/large-dataset.js2 "Lorem ipsum dolor sit amet consectetur adipiscing elit" +CODE
LOW…egration/visualizations/table/.mocks/search-in-data.js4 SELECT 'lorem ipsum' AS a, 'but TEST is here' AS b, 'none' AS c UNION ALLCODE
LOW…app/pages/users/components/ReadOnlyUserProfile.test.js13 name: "John Doe",CODE
Self-Referential Comments4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMtests/destinations/test_webhook.py9 # Create a mock alert with all the properties needed by serialize_alertCOMMENT
MEDIUMredash/destinations/webex.py60 # Create a table for the Adaptive CardCOMMENT
MEDIUMredash/destinations/webex.py73 # Create the body of the card with the tableCOMMENT
MEDIUMredash/handlers/query_results.py305 # This method handles two cases: retrieving result by id & retrieving result by query id.COMMENT
AI Structural Patterns8 hits · 8 pts
SeverityFileLineSnippetContext
LOWbin/release_manager.py26CODE
LOWtests/__init__.py106CODE
LOWtests/handlers/test_widgets.py16CODE
LOWredash/query_runner/big_query.py267CODE
LOWredash/query_runner/snowflake.py145CODE
LOWredash/query_runner/google_spreadsheets.py132CODE
LOWredash/query_runner/google_analytics4.py71CODE
LOWredash/handlers/queries.py425CODE
Over-Commented Block7 hits · 7 pts
SeverityFileLineSnippetContext
LOW.restyled.yaml21#COMMENT
LOWredash/settings/__init__.py161# Enables the use of an externally-provided and trusted remote user via an HTTPCOMMENT
LOWredash/settings/__init__.py181# If you also set the organization setting auth_password_login_enabled to false,COMMENT
LOWredash/utils/query_order.py1# Copyright (c) 2012, Konsta VesterinenCOMMENT
LOWredash/query_runner/memsql_ds.py101 cursor = NoneCOMMENT
LOWclient/app/assets/less/inc/font.less1///* --------------------------------------------------------COMMENT
LOWclient/app/assets/less/inc/font.less21//-----------------------------------------------------------*/COMMENT
AI Slop Vocabulary4 hits · 6 pts
SeverityFileLineSnippetContext
LOWtests/query_runner/test_yandex_metrica.py85 # before/after we get to the Nth call, just return successCOMMENT
MEDIUMredash/settings/__init__.py182# then your authentication will be seamless. Otherwise a link will be presentedCOMMENT
LOWredash/settings/dynamic_settings.py64# To do so, simply add the name of the extension you'd like to load to this list.COMMENT
LOWredash/query_runner/ignite.py101 # if it's a datetime, just return the millisecondsSTRING
Decorative Section Separators2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMredash/query_runner/memsql_ds.py121 # ====================================================================================================COMMENT
MEDIUMredash/query_runner/memsql_ds.py123 # ====================================================================================================COMMENT
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWredash/destinations/webex.py58 # Check if it's a 2D arrayCOMMENT
LOWredash/destinations/webex.py208 if not destination_id: # Check if the destination_id is empty or blankCODE
LOWredash/models/mixins.py13 # Check if we really want to update the updated_at valueCOMMENT
LOW.github/workflows/periodic-snapshot.yml51 # Check if both bump and specific version are providedCOMMENT
Slop Phrases1 hit · 1 pts
SeverityFileLineSnippetContext
LOWclient/app/components/DialogWrapper.jsx83 If you want to override behavior of `onOk`/`onCancel` - don't forget to close dialog:CODE