Repository Analysis

netalertx/NetAlertX

Centralized network visibility and continuous asset discovery. Monitor devices, detect change, and stay aware across distributed networks.

18.2 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of netalertx/NetAlertX, a Python project with 6,959 GitHub stars. SynthScan v2.0 examined 261,079 lines of code across 847 source files, recording 2393 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 18.2 places this repository in the Moderate 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).

18.2
Adjusted Score
18.2
Raw Score
100%
Time Factor
2026-08-28
Last Push
7.0K
Stars
Python
Language
261.1K
Lines of Code
847
Files
2.4K
Pattern Hits
2026-08-29
Scan Date
0.03
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 7HIGH 22MEDIUM 1000LOW 1364

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 2393 distinct pattern matches across 20 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.

Decorative Section Separators896 hits · 2853 pts
SeverityFileLineSnippetContext
MEDIUMinstall/index.html6#-------------------------------------------------------------------------------COMMENT
MEDIUMinstall/production-filesystem/services/start-nginx.sh45# ------------------------------------------------------------------COMMENT
MEDIUMinstall/production-filesystem/services/start-nginx.sh47# ------------------------------------------------------------------COMMENT
MEDIUM…oduction-filesystem/services/scripts/update_vendors.sh4# ------------------------------------------------------------------------------COMMENT
MEDIUM…oduction-filesystem/services/scripts/update_vendors.sh9# ------------------------------------------------------------------------------COMMENT
MEDIUM…oduction-filesystem/services/scripts/update_vendors.sh11# ------------------------------------------------------------------------------COMMENT
MEDIUM…oduction-filesystem/services/scripts/update_vendors.sh13# ----------------------------------------------------------------------COMMENT
MEDIUM…oduction-filesystem/services/scripts/update_vendors.sh16# ----------------------------------------------------------------------COMMENT
MEDIUMback/update_vendors.sh3# ------------------------------------------------------------------------------COMMENT
MEDIUMback/update_vendors.sh8# ------------------------------------------------------------------------------COMMENT
MEDIUMback/update_vendors.sh10# ------------------------------------------------------------------------------COMMENT
MEDIUMback/update_vendors.sh12# ----------------------------------------------------------------------COMMENT
MEDIUMback/update_vendors.sh15# ----------------------------------------------------------------------COMMENT
MEDIUMback/update_vendors.sh23# ----------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py24# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py26# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py121# ---------------------------------------------------------------------------STRING
MEDIUMtest/db_test_helpers.py123# ---------------------------------------------------------------------------STRING
MEDIUMtest/db_test_helpers.py184# ---------------------------------------------------------------------------STRING
MEDIUMtest/db_test_helpers.py186# ---------------------------------------------------------------------------STRING
MEDIUMtest/db_test_helpers.py199# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py201# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py314# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py317# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py407# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py409# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py439# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py441# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py457# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/db_test_helpers.py459# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/docker_tests/test_container_environment.py658 # ┌─────────────────────────────────────────────────────────────────────────────────────────┐STRING
MEDIUMtest/docker_tests/test_container_environment.py661 # └─────────────────────────────────────────────────────────────────────────────────────────┘STRING
MEDIUMtest/docker_tests/test_container_environment.py679 # ┌─────────────────────────────────────────────────────────────────────────────────────────┐STRING
MEDIUMtest/docker_tests/test_container_environment.py682 # └─────────────────────────────────────────────────────────────────────────────────────────┘STRING
MEDIUMtest/docker_tests/test_docker_compose_scenarios.py651 # ┌─────────────────────────────────────────────────────────────────────────────────────────┐COMMENT
MEDIUMtest/docker_tests/test_docker_compose_scenarios.py655 # └─────────────────────────────────────────────────────────────────────────────────────────┘COMMENT
MEDIUMtest/ui/test_ui_translations.py52# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/ui/test_ui_translations.py54# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/ui/test_ui_xss_devname.py46# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/ui/test_ui_xss_devname.py48# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/ui/test_ui_xss_devname.py76# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/ui/test_ui_xss_devname.py78# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/ui/test_ui_xss_devname.py163# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/ui/test_ui_xss_devname.py165# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/ui/test_ui_xss_devname.py205# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/ui/test_ui_xss_devname.py207# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py73# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py75# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py162# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py164# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py285# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py287# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py318# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py320# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py18# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py20# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py33# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py45# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py47# ---------------------------------------------------------------------------COMMENT
836 more matches not shown…
Hyper-Verbose Identifiers780 hits · 773 pts
SeverityFileLineSnippetContext
LOWtest/test_mcp_disablement.py16def test_disable_tool_management():CODE
LOWtest/test_mcp_disablement.py78def test_openapi_spec_injection():CODE
LOWtest/test_mcp_disablement.py111def test_execute_disabled_tool(mock_get, mock_setting):CODE
LOWtest/test_plugin_helper.py4def test_is_mac_accepts_wildcard():CODE
LOWtest/test_plugin_helper.py13def test_normalize_mac_preserves_wildcard():CODE
LOWtest/test_plugin_helper.py26def test_normalize_mac_preserves_internet_root():CODE
LOWtest/verify_runtime_validation.py51def test_search_invalid_schema():CODE
LOWtest/test_device_atomicity.py99 def test_create_new_device_atomicity(self):CODE
LOWtest/test_device_atomicity.py137 def test_update_device_with_source_tracking_atomicity(self):CODE
LOWtest/test_device_atomicity.py183 def test_source_tracking_failure_rolls_back_device(self):STRING
LOWtest/docker_tests/test_puid_pgid.py109def test_default_puid_pgid_ok() -> None:CODE
LOWtest/docker_tests/test_puid_pgid.py123def test_invalid_puid_pgid_rejected(env: dict[str, str], expected: str) -> None:CODE
LOWtest/docker_tests/test_puid_pgid.py139def test_legacy_user_mode_skips_puid_pgid() -> None:CODE
LOWtest/docker_tests/test_puid_pgid.py153def test_synology_like_fresh_volume_is_primed() -> None:CODE
LOWtest/docker_tests/test_puid_pgid.py238def test_aufs_explicit_root_no_warning() -> None:CODE
LOWtest/docker_tests/test_puid_pgid.py331def test_missing_cap_chown_fails_priming() -> None:CODE
LOWtest/docker_tests/conftest.py58def build_netalertx_test_image(request: pytest.FixtureRequest, cleanup_artifacts: None) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1383def test_restrictive_permissions_handling(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py240def _build_volume_args_for_keys(CODE
LOWtest/docker_tests/test_container_environment.py442def test_nonroot_custom_uid_logs_note(CODE
LOWtest/docker_tests/test_container_environment.py858def test_missing_capabilities_triggers_warning(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py891def test_missing_host_network_warns(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py922def test_missing_app_conf_triggers_seed(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py965def test_first_run_dynamic_subnet(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1007def test_missing_app_db_triggers_seed(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1051def test_custom_port_without_writable_conf(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1086def test_excessive_capabilities_warning(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1111def test_appliance_integrity_read_write_mode(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1136def test_zero_permissions_app_db_dir(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1162def test_zero_permissions_app_config_dir(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1188def test_mandatory_folders_creation(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1227def test_writable_config_validation(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1269def test_mount_analysis_ram_disk_performance(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py1326def test_mount_analysis_dataloss_risk(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_docker_compose_unit.py4def test_run_docker_compose_returns_output(monkeypatch, tmp_path):CODE
LOWtest/docker_tests/test_mount_diagnostics_pytest.py67def capture_project_mandatory_required_audit_stream(container_name: str) -> subprocess.Popen[str]:CODE
LOWtest/docker_tests/test_mount_diagnostics_pytest.py168def assert_has_troubleshooting_url(output: str) -> None:CODE
LOWtest/docker_tests/test_mount_diagnostics_pytest.py436def validate_scenario_table_output(output: str, test_scenario: TestScenario) -> None:CODE
LOWtest/docker_tests/test_mount_diagnostics_pytest.py744def test_cap_chown_required_when_caps_dropped():STRING
LOWtest/docker_tests/test_ports_available.py196def test_ports_available_normal_case(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_ports_available.py216def test_ports_conflict_same_number(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_ports_available.py241def test_ports_in_use_warning(dummy_container, tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_entrypoint.py52def test_app_conf_override_from_graphql_port():CODE
LOWtest/docker_tests/test_entrypoint.py64def test_app_conf_override_not_overridden():CODE
LOWtest/docker_tests/test_entrypoint.py79def test_no_app_conf_override_when_no_graphql_port():CODE
LOWtest/docker_tests/test_entrypoint.py87def test_skip_startup_checks_env_var():CODE
LOWtest/docker_tests/test_entrypoint.py98def test_host_optimization_warning_matches_sysctl():CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py45def capture_project_mandatory_required_audit_stream(container_names: list[str], compose_cwd: pathlib.Path, env: dict[strCODE
LOWtest/docker_tests/test_docker_compose_scenarios.py245def _extract_conflict_container_name(output: str) -> str | None:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py336def _write_normal_startup_compose(CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py700def test_missing_capabilities_compose() -> None:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py728def test_custom_port_with_unwritable_nginx_config_compose() -> None:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py741 def _wait_for_unwritable_failure() -> None:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py793def test_host_network_compose(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py834def test_normal_startup_no_warnings_compose(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py959def test_ram_disk_mount_analysis_compose(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py1021def test_dataloss_risk_mount_analysis_compose(tmp_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py1083def test_missing_net_admin_compose() -> None:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py1119def test_missing_net_raw_compose() -> None:CODE
LOWtest/ui/test_ui_plugins.py34def test_plugin_actions_present(driver):CODE
720 more matches not shown…
Self-Referential Comments86 hits · 274 pts
SeverityFileLineSnippetContext
MEDIUM…uction-filesystem/entrypoint.d/30-mandatory-folders.sh107# Create the folders and files.COMMENT
MEDIUM…uction-filesystem/entrypoint.d/30-mandatory-folders.sh108# Create a log message for observability if any fail.COMMENT
MEDIUMinstall/proxmox/proxmox-install-netalertx.sh309# Create the execution_queue.log file if it doesn't existCOMMENT
MEDIUMinstall/ubuntu24/install.sh24OUI_FILE="/usr/share/arp-scan/ieee-oui.txt" # Define the path to ieee-oui.txt and ieee-iab.txtCODE
MEDIUMinstall/debian12/start.debian12.sh18OUI_FILE="/usr/share/arp-scan/ieee-oui.txt" # Define the path to ieee-oui.txt and ieee-iab.txtCODE
MEDIUMinstall/debian12/start.debian12.sh112# Create an empty log filesCOMMENT
MEDIUMinstall/debian12/start.debian12.sh114# Create the execution_queue.log file if it doesn't existCOMMENT
MEDIUMback/update_vendors.sh27# Define the URL of the IEEE OUI fileCOMMENT
MEDIUMtest/test_mcp_disablement.py115 # Create a dummy app for contextCOMMENT
MEDIUMtest/test_device_atomicity.py109 # Create a new deviceCOMMENT
MEDIUMtest/docker_tests/test_container_environment.py834 # Create a dummy file for other directoriesCOMMENT
MEDIUMtest/docker_tests/test_ports_available.py35 # Create a simple docker-compose file for the dummy containerCOMMENT
MEDIUMtest/docker_tests/test_docker_compose_scenarios.py238 # Create a minimal SQLite databaseCOMMENT
MEDIUMtest/ui/test_ui_login.py158 # Create a deep link to devices.php#device-123COMMENT
MEDIUMtest/ui/test_ui_login.py193 # Create a deep link to network.php#settings-panelCOMMENT
MEDIUMtest/ui/test_ui_xss_devname.py183 # Create an event so events.php actually renders this device's name.COMMENT
MEDIUMtest/api_endpoints/test_devices_endpoints.py89 # Create a device firstCOMMENT
MEDIUMtest/api_endpoints/test_devices_endpoints.py103 # Create a device firstCOMMENT
MEDIUMserver/plugin.py465 # Create the file pathSTRING
MEDIUMserver/plugin.py539 # Create a tuple containing values to be inserted into the database.STRING
MEDIUMserver/plugin.py567 # Create a base tuple containing values to be inserted into the database.STRING
MEDIUMserver/plugin.py655 # Create a base tuple containing values to be inserted into the database.STRING
MEDIUMserver/initialise.py142 # Create the tuplesCOMMENT
MEDIUMserver/initialise.py882 # Create a backup file with the suffix "_old_setting_names" and timestampCOMMENT
MEDIUMserver/plugins/omada_sdn_imp/omada_sdn.py33# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMserver/plugins/omada_sdn_imp/omada_sdn.py54# Define the current path and log file pathsCOMMENT
MEDIUMserver/plugins/omada_sdn_imp/omada_sdn.py262 # Create a DeviceInstance instanceCOMMENT
MEDIUMserver/plugins/wake_on_lan/wake_on_lan.py8# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMserver/plugins/wake_on_lan/wake_on_lan.py27# Define the current path and log file pathsCOMMENT
MEDIUMserver/plugins/wake_on_lan/wake_on_lan.py46 # Create a DeviceInstance instanceCOMMENT
MEDIUMserver/plugins/_publisher_mqtt/mqtt.py63 # Create a database connectionCOMMENT
MEDIUMserver/plugins/_publisher_mqtt/mqtt.py44# Create an MD5 hash objectCOMMENT
MEDIUMserver/plugins/_publisher_mqtt/mqtt.py313# Create a generic device for overal statsCOMMENT
MEDIUMserver/plugins/_publisher_mqtt/mqtt.py331 # Create the HA sensor config if a new device is discoveredCOMMENT
MEDIUMserver/plugins/_publisher_mqtt/mqtt.py449 # Create a generic device for overal statsCOMMENT
MEDIUMserver/plugins/_publisher_mqtt/mqtt.py451 # Create a new device representing overall statsCOMMENT
MEDIUMserver/plugins/csv_backup/script.py70 # Create a CSV file in the specified locationCOMMENT
MEDIUMserver/plugins/__test/test.py27# Create an MD5 hash objectCOMMENT
MEDIUMserver/plugins/_publisher_email/email_smtp.py50 # Create a database connectionCOMMENT
MEDIUMserver/plugins/_publisher_email/email_smtp.py57 # Create a NotificationInstance instanceCOMMENT
MEDIUMserver/plugins/omada_sdn_openapi/script.py37# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMserver/plugins/omada_sdn_openapi/script.py55# Define the current path and log file pathsCOMMENT
MEDIUMserver/plugins/omada_sdn_openapi/script.py606 # Initialize the Plugin object output fileCOMMENT
MEDIUMserver/plugins/_publisher_pushsafer/pushsafer.py42 # Create a database connectionCOMMENT
MEDIUMserver/plugins/_publisher_pushsafer/pushsafer.py49 # Create a NotificationInstance instanceCOMMENT
MEDIUMserver/plugins/adguard_import/adguard_import.py8# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMserver/plugins/adguard_export/script.py21# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMserver/plugins/_publisher_webhook/webhook.py46 # Create a database connectionCOMMENT
MEDIUMserver/plugins/_publisher_webhook/webhook.py53 # Create a NotificationInstance instanceCOMMENT
MEDIUMserver/plugins/icmp_scan/icmp.py69 # Create a DeviceInstance instanceCOMMENT
MEDIUMserver/plugins/fritzbox/fritzbox.py7# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMserver/plugins/fritzbox/fritzbox.py34# Define the current path and log file pathsCOMMENT
MEDIUMserver/plugins/dig_scan/digscan.py6# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMserver/plugins/dig_scan/digscan.py26# Define the current path and log file pathsCOMMENT
MEDIUMserver/plugins/dig_scan/digscan.py43 # Create a DeviceInstance instanceCOMMENT
MEDIUMserver/plugins/nslookup_scan/nslookup.py44 # Create a DeviceInstance instanceCOMMENT
MEDIUMserver/plugins/_publisher_pushover/pushover.py42 # Create a database connectionCOMMENT
MEDIUMserver/plugins/_publisher_pushover/pushover.py49 # Create a NotificationInstance instanceCOMMENT
MEDIUMserver/plugins/asuswrt_import/script.py66 # Create a new event loopCOMMENT
MEDIUMserver/plugins/_publisher_telegram/tg.py43 # Create a database connectionCOMMENT
26 more matches not shown…
Excessive Try-Catch Wrapping198 hits · 201 pts
SeverityFileLineSnippetContext
MEDIUMinstall/production-filesystem/entrypoint.d/15-mounts.py84 print("Error: /proc/mounts not found. Not a Linux system?", file=sys.stderr)CODE
LOWtest/docker_tests/test_container_environment.py519 except Exception:CODE
LOWtest/docker_tests/test_container_environment.py528 except Exception:CODE
LOWtest/docker_tests/test_container_environment.py535 except Exception:CODE
LOWtest/docker_tests/test_container_environment.py110 except Exception:CODE
LOWtest/docker_tests/test_container_environment.py567 except Exception:CODE
LOWtest/docker_tests/test_container_environment.py690 except Exception:STRING
LOWtest/docker_tests/test_mount_diagnostics_pytest.py702 except Exception:CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py641 except Exception as exc: # noqa: BLE001CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py694 except Exception:CODE
LOWtest/ui/test_ui_waits.py42 except Exception:CODE
LOWtest/ui/test_ui_waits.py49 except Exception:CODE
LOWtest/ui/test_ui_waits.py54 except Exception:CODE
LOWtest/ui/test_chromium_setup.py71except Exception as e:CODE
LOWtest/ui/test_ui_maintenance.py52 except Exception:CODE
LOWtest/ui/test_ui_maintenance.py70 except Exception:CODE
LOWtest/ui/test_ui_maintenance.py93 except Exception:CODE
LOWtest/ui/test_ui_maintenance.py95 except Exception as e:CODE
LOWtest/ui/test_ui_maintenance.py102 except Exception:CODE
LOWtest/ui/test_ui_settings.py144 except Exception as e:CODE
LOWtest/ui/test_ui_settings.py168 except Exception:CODE
LOWtest/ui/test_helpers.py104 except Exception as e:CODE
LOWtest/ui/test_helpers.py149 except Exception:CODE
MEDIUMtest/ui/test_helpers.py144def _get_val(d):CODE
LOWtest/ui/run_all_tests.py41 except Exception as e:CODE
LOWtest/ui/test_ui_devices.py89 except Exception:CODE
LOWtest/backend/sql_safe_builder.py173 except Exception:CODE
LOWtest/backend/sql_safe_builder.py592 except Exception:CODE
LOWtest/scan/test_device_field_lock.py50 except Exception as e:CODE
LOWtest/scan/test_device_field_lock.py58 except Exception as e:CODE
LOWserver/database.py89 except Exception:CODE
LOWserver/database.py239 except Exception as e:CODE
LOWserver/database.py264 except Exception as e:CODE
LOWserver/database.py373 except Exception:CODE
LOWserver/helper.py397 except Exception:CODE
LOWserver/helper.py403 except Exception:CODE
MEDIUMserver/plugin.py368def run_plugin(command, set_RUN_TIMEOUT, plugin):CODE
LOWserver/plugin.py968 except Exception as e:STRING
LOWserver/app_state.py194 except Exception as e:CODE
LOWserver/initialise.py46 except Exception as e:CODE
LOWserver/plugins/omada_sdn_imp/omada_sdn.py120 except Exception as e:CODE
LOWserver/plugins/omada_sdn_imp/omada_sdn.py144 except Exception:CODE
LOWserver/plugins/dhcp_servers/script.py101 except Exception as e:CODE
LOWserver/plugins/wake_on_lan/wake_on_lan.py104 except Exception as e:CODE
LOWserver/plugins/_publisher_mqtt/mqtt.py605 except Exception as e:CODE
LOWserver/plugins/_publisher_mqtt/mqtt.py373 except Exception as err:CODE
LOWserver/plugins/_publisher_mqtt/mqtt.py578 except Exception as e:CODE
LOWserver/plugins/omada_sdn_openapi/script.py107 except Exception as ex:CODE
LOWserver/plugins/omada_sdn_openapi/script.py124 except Exception as ex:CODE
LOWserver/plugins/omada_sdn_openapi/script.py227 except Exception as ex:CODE
LOWserver/plugins/internet_ip/script.py156 except Exception as e:CODE
LOWserver/plugins/adguard_import/adguard_import.py51 except Exception as e:CODE
LOWserver/plugins/adguard_export/script.py194 except Exception as exc:CODE
LOWserver/plugins/adguard_export/script.py430 except Exception as exc:CODE
LOWserver/plugins/fritzbox/fritzbox.py64 except Exception as e:CODE
LOWserver/plugins/fritzbox/fritzbox.py127 except Exception as e:CODE
LOWserver/plugins/fritzbox/fritzbox.py133 except Exception as e:CODE
LOWserver/plugins/fritzbox/fritzbox.py163 except Exception as e:CODE
LOWserver/plugins/fritzbox/fritzbox.py191 except Exception as e:CODE
LOWserver/plugins/db_cleanup/script.py82 except Exception as e:CODE
138 more matches not shown…
Redundant / Tautological Comments77 hits · 109 pts
SeverityFileLineSnippetContext
LOW…tion-filesystem/entrypoint.d/95-appliance-integrity.sh11# Check if the root filesystem is mounted as read-onlyCOMMENT
LOW…ction-filesystem/entrypoint.d/10-capabilities-audit.sh47 # Check if bit is set in cap_bnd_decCOMMENT
LOW…tion-filesystem/entrypoint.d/35-apply-conf-override.sh15# Check if APP_CONF_OVERRIDE is setCOMMENT
LOW…oduction-filesystem/entrypoint.d/99-ports-available.sh16# Check if ports are configured to be the sameCOMMENT
LOW…/production-filesystem/services/scripts/cron_script.sh6# Check if there are any entries with cron_restart_backendCOMMENT
LOWinstall/proxmox/proxmox-install-netalertx.sh44# Check if script is run as rootCOMMENT
LOWinstall/proxmox/proxmox-install-netalertx.sh266# Check if ieee-oui.txt or ieee-iab.txt existCOMMENT
LOWinstall/ubuntu24/install.sh35# Check if script is run as rootCOMMENT
LOWinstall/ubuntu24/install.sh246# Check if ieee-oui.txt or ieee-iab.txt existCOMMENT
LOWinstall/ubuntu24/install.sh313# Check if buildtimestamp.txt doesn't existCOMMENT
LOWinstall/debian12/install.debian12.sh13# Check if script is run as rootCOMMENT
LOWinstall/debian12/start.debian12.sh33# Check if script is run as rootCOMMENT
LOWinstall/debian12/start.debian12.sh98# Check if ieee-oui.txt or ieee-iab.txt existCOMMENT
LOWinstall/debian12/start.debian12.sh159# Check if buildtimestamp.txt doesn't existCOMMENT
LOWinstall/debian12/install_dependencies.debian12.sh18# Check if script is run as rootCOMMENT
LOWtest/docker_tests/test_mount_diagnostics_pytest.py257 # Check if image existsCOMMENT
LOWtest/ui/test_chromium_setup.py8# Check if chromium and chromedriver are installedCOMMENT
LOWtest/ui/run_ui_tests.sh16# Check if chromium is installed, install if missingCOMMENT
LOWtest/ui/test_ui_maintenance.py138 # Check if response looks like CSVCOMMENT
LOWtest/ui/test_helpers.py51 # Check if chromedriver existsCOMMENT
LOWtest/backend/sql_safe_builder.py197 # Check if this is a compound condition (multiple clauses)COMMENT
LOWtest/backend/sql_safe_builder.py342 # Check if we're at a word boundary (start of string or after whitespace)COMMENT
LOWserver/database.py61 # Check if DB is openCOMMENT
LOWserver/api.py137 # Check if the endpoint needs to be updatedCOMMENT
LOWserver/helper.py639 # Check if second character matches "2", "6", "A", "E" (case insensitive)COMMENT
LOWserver/helper.py665 # Check if it's an IPv6 addressCOMMENT
LOWserver/plugin.py86 # Check if schedule overdueCOMMENT
LOWserver/plugin.py735# Check if watched values changed for the given pluginSTRING
LOWserver/plugin.py1046 # Check if there's a default value specified for this column in the JSON.STRING
LOWserver/plugin.py1105 # Check if self.status is validSTRING
LOWserver/app_state.py82 # Check if the file exists and recover previous valuesCOMMENT
LOWserver/__main__.py161 # Check if any plugins need to run on scheduleCOMMENT
LOWserver/__main__.py193 # Check if new devices found (created by process_scan)COMMENT
LOWserver/initialise.py763 # Check if app was upgradedCOMMENT
LOWserver/initialise.py866 # Check if the file contains any of the old setting code namesCOMMENT
LOWserver/plugins/plugin_helper.py143# Check if a valid MAC addressCOMMENT
LOWserver/plugins/omada_sdn_imp/omada_sdn.py230 # Assign port to switchCOMMENT
LOWserver/plugins/_publisher_mqtt/mqtt.py59 # Check if basic config settings suppliedCOMMENT
LOWserver/plugins/_publisher_mqtt/mqtt.py226 # Check if the plugin object is newCOMMENT
LOWserver/plugins/_publisher_email/email_smtp.py45 # Check if basic config settings suppliedCOMMENT
LOWserver/plugins/omada_sdn_openapi/script.py287 # Check if a parameter is required and if it's value is non-emptyCOMMENT
LOWserver/plugins/omada_sdn_openapi/script.py291 # Check if a parameter has a correct datatypeCOMMENT
LOWserver/plugins/omada_sdn_openapi/script.py332 # Check if the response contains an error code and determine the function response typeCOMMENT
LOWserver/plugins/omada_sdn_openapi/script.py462 if first_available_site[0]: # Check if there's an available siteCODE
LOWserver/plugins/_publisher_pushsafer/pushsafer.py37 # Check if basic config settings suppliedCOMMENT
LOWserver/plugins/_publisher_pushsafer/pushsafer.py103 # Check if the request was successful (status code 200)COMMENT
LOWserver/plugins/_publisher_webhook/webhook.py41 # Check if basic config settings suppliedCOMMENT
LOWserver/plugins/_publisher_pushover/pushover.py37 # Check if basic config settings suppliedCOMMENT
LOWserver/plugins/_publisher_pushover/pushover.py101 # Check if the request was successful (status code 200)COMMENT
LOWserver/plugins/_publisher_telegram/tg.py37 # Check if basic config settings suppliedCOMMENT
LOWserver/plugins/arp_scan/script.py63 # Check if the decoded subnet information contains multiple subnets separated by commas.COMMENT
LOWserver/plugins/_publisher_ntfy/ntfy.py40 # Check if basic config settings suppliedCOMMENT
LOWserver/plugins/_publisher_ntfy/ntfy.py186 # Check if the request was successful (status code 200)COMMENT
LOWserver/plugins/maintenance/maintenance.py40 # Check if setCOMMENT
LOWserver/plugins/maintenance/maintenance.py78 # Check if setCOMMENT
LOWserver/plugins/freebox/freebox.py162 # Check if 'l3connectivities' exists and is a listCOMMENT
LOWserver/plugins/sync/sync.py61 # Check if api_token setCOMMENT
LOWserver/plugins/dhcp_leases/script.py62 # Check if the path existsCOMMENT
LOWserver/plugins/_publisher_apprise/apprise.py37 # Check if basic config settings suppliedCOMMENT
LOWserver/utils/plugin_utils.py303 # Check if the file existsCOMMENT
17 more matches not shown…
Deep Nesting118 hits · 102 pts
SeverityFileLineSnippetContext
LOWinstall/production-filesystem/entrypoint.d/15-mounts.py72CODE
LOWinstall/production-filesystem/entrypoint.d/15-mounts.py89CODE
LOWinstall/production-filesystem/entrypoint.d/15-mounts.py294CODE
LOWtest/docker_tests/test_puid_pgid.py22CODE
LOWtest/docker_tests/test_container_environment.py115CODE
LOWtest/docker_tests/test_container_environment.py190CODE
LOWtest/docker_tests/test_container_environment.py468CODE
LOWtest/docker_tests/test_container_environment.py730CODE
LOWtest/docker_tests/test_docker_compose_unit.py4CODE
LOWtest/docker_tests/test_docker_compose_unit.py18CODE
LOWtest/docker_tests/test_mount_diagnostics_pytest.py108CODE
LOWtest/docker_tests/test_mount_diagnostics_pytest.py288CODE
LOWtest/docker_tests/test_mount_diagnostics_pytest.py436CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py263CODE
LOWtest/docker_tests/test_docker_compose_scenarios.py402CODE
LOWtest/ui/test_ui_login.py20CODE
LOWtest/ui/test_helpers.py20CODE
LOWtest/backend/sql_safe_builder.py307CODE
LOWtest/api_endpoints/test_mcp_openapi_spec.py179CODE
LOWtest/api_endpoints/test_events_endpoints.py134CODE
LOWtest/api_endpoints/test_mcp_disabled_tools.py16CODE
LOWtest/api_endpoints/test_mcp_disabled_tools.py42CODE
LOWserver/logger.py99CODE
LOWserver/api.py275CODE
LOWserver/api.py121CODE
LOWserver/helper.py200CODE
LOWserver/helper.py265CODE
LOWserver/helper.py434CODE
LOWserver/helper.py456CODE
LOWserver/plugin.py387CODE
LOWserver/plugin.py736CODE
LOWserver/plugin.py65CODE
LOWserver/plugin.py121CODE
LOWserver/plugin.py293CODE
LOWserver/plugin.py1081CODE
LOWserver/app_state.py36CODE
LOWserver/__main__.py66CODE
LOWserver/initialise.py56CODE
LOWserver/initialise.py227CODE
LOWserver/initialise.py865CODE
LOWserver/plugins/plugin_helper.py186CODE
LOWserver/plugins/omada_sdn_imp/omada_sdn.py416CODE
LOWserver/plugins/dhcp_servers/script.py34CODE
LOWserver/plugins/nmap_scan/script.py151CODE
LOWserver/plugins/wake_on_lan/wake_on_lan.py36CODE
LOWserver/plugins/_publisher_mqtt/mqtt.py614CODE
LOWserver/plugins/omada_sdn_openapi/script.py130CODE
LOWserver/plugins/omada_sdn_openapi/script.py432CODE
LOWserver/plugins/adguard_export/script.py236CODE
LOWserver/plugins/_publisher_webhook/webhook.py93CODE
LOWserver/plugins/icmp_scan/icmp.py94CODE
LOWserver/plugins/icmp_scan/icmp.py171CODE
LOWserver/plugins/icmp_scan/icmp.py205CODE
LOWserver/plugins/icmp_scan/icmp.py214CODE
LOWserver/plugins/fritzbox/fritzbox.py71CODE
LOWserver/plugins/unifi_import/script.py200CODE
LOWserver/plugins/snmp_discovery/script.py32CODE
LOWserver/plugins/pihole_api_scan/pihole_api_scan.py127CODE
LOWserver/plugins/pihole_api_scan/pihole_api_scan.py268CODE
LOWserver/plugins/_publisher_ntfy/ntfy.py105CODE
58 more matches not shown…
Hallucination Indicators7 hits · 90 pts
SeverityFileLineSnippetContext
CRITICALfront/lib/datatables/datatables.js7977jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {CODE
CRITICALfront/lib/datatables/datatables.js13919 * $.fn.dataTable.ext.type.detect.push(COMMENT
CRITICALfront/lib/datatables/datatables.min.js14!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALfront/lib/jquery/jquery.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALfront/lib/datatables.net/js/jquery.dataTables.js14199 * $.fn.dataTable.ext.type.detect.push(COMMENT
CRITICALfront/lib/jquery-ui/jquery-ui.min.js6(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=CODE
CRITICALfront/lib/jquery-ui/jquery-ui.min.js9}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(eCODE
Over-Commented Block65 hits · 62 pts
SeverityFileLineSnippetContext
LOWinstall/index.html1<!-- ---------------------------------------------------------------------------COMMENT
LOWinstall/production-filesystem/root-entrypoint.sh1#!/bin/bashCOMMENT
LOWinstall/production-filesystem/root-entrypoint.sh21# - PUID/PGID env vars are ignored (cannot switch users).COMMENT
LOWinstall/production-filesystem/entrypoint.sh1#!/bin/bashCOMMENT
LOWinstall/production-filesystem/entrypoint.sh21# container will wait for all to exit naturally (development mode).COMMENT
LOWinstall/production-filesystem/entrypoint.sh141COMMENT
LOWinstall/production-filesystem/entrypoint.sh181add_service() {COMMENT
LOWinstall/production-filesystem/entrypoint.sh241# Process:COMMENT
LOWinstall/production-filesystem/entrypoint.sh281 add_service "/services/start-cron.sh" "supercronic"COMMENT
LOW…roduction-filesystem/entrypoint.d/05-data-migration.sh1#!/bin/shCOMMENT
LOW…oduction-filesystem/services/scripts/update_vendors.sh1#!/usr/bin/env bashCOMMENT
LOWback/update_vendors.sh1#!/usr/bin/env bashCOMMENT
LOW…r_tests/configurations/docker-compose.missing-caps.yml41 # - Normal operation: container starts all services after passing checksCOMMENT
LOWtest/ui/test_ui_settings.py201 # # Extract backend API URL from BASE_URLCOMMENT
LOWtest/ui/test_ui_settings.py221 # except requests.exceptions.RequestException as e:COMMENT
LOWtest/scan/test_down_sleep_events.py441 FROM DevicesViewCOMMENT
LOWserver/conf.py41# -------------------------------------------COMMENT
LOWserver/__main__.py1#!/usr/bin/env pythonCOMMENT
LOWserver/__main__.py221 # ------------------------------------------------------------------------------COMMENT
LOWserver/plugins/omada_sdn_imp/omada_sdn.py61# Initialize the Plugin obj output fileCOMMENT
LOWserver/plugins/adguard_export/script.py1#!/usr/bin/env pythonCOMMENT
LOWserver/plugins/ddns_update/script.py81COMMENT
LOWserver/plugins/sync/sync.py181 mylog('verbose', [f'[{pluginName}] Devices files to process: "{files_to_process}"'])COMMENT
LOWserver/plugins/sync/sync.py281 #COMMENT
LOWserver/plugins/sync/sync.py321 devices_to_write = new_devices if sync_behavior == 'copy-new' else device_dataCOMMENT
LOWserver/workflows/app_events.py41 # "objectPrimaryId": "NEW.plugin",COMMENT
LOWserver/api_server/mcp_endpoint.py201 test_mode = os.getenv("MCP_TEST_MODE", "").lower() in ("1", "true", "yes")COMMENT
LOWserver/api_server/api_server_start.py1221# if isinstance(res, tuple) and len(res) == 2:COMMENT
LOWserver/api_server/openapi/schemas.py941 description="Base64-encoded SQL query. (UNSAFE: Use only for administrative tasks)",COMMENT
LOWserver/messaging/reporting.py1# ---------------------------------------------------------------------------------#COMMENT
LOWdocs/AUTHELIA.md161 - openidCOMMENT
LOWdocs/DOCKER_COMPOSE.md61 target: /etc/localtimeCOMMENT
LOW.devcontainer/scripts/setup.sh1#!/bin/bashCOMMENT
LOWfront/devices.php1<!--COMMENT
LOWfront/deviceDetails.php1<!--COMMENT
LOWfront/systeminfo.php1<?phpCOMMENT
LOWfront/presence.php1<!--COMMENT
LOWfront/css/app.css2801#notifications-skeleton, #workflows-skeleton, #plugins-skeleton { z-index: 50; }COMMENT
LOWfront/js/cache.js21// Central registry of all localStorage cache keys.COMMENT
LOWfront/js/cache.js141COMMENT
LOWfront/js/settings_utils.js1201 // console.log("overrideValue:" + overrideValue);COMMENT
LOWfront/js/db_methods.js1// -----------------------------------------------------------------------------COMMENT
LOWfront/js/ui_components.js1/* -----------------------------------------------------------------------------COMMENT
LOWfront/js/device-columns.js1// =============================================================================COMMENT
LOWfront/js/device-columns.js81COMMENT
LOWfront/php/server/db.php1<?phpCOMMENT
LOWfront/php/templates/version.php1<?phpCOMMENT
LOWfront/php/templates/footer.php1<!--COMMENT
LOWfront/lib/chart.js/Chart.js7301 var padding = helpers$1.options.toPadding(layoutOptions.padding);COMMENT
LOWfront/lib/chart.js/Chart.js7321 // | |----|-------------------------------------|----|COMMENT
LOWfront/lib/chart.js/Chart.js7761 if (item && item.canvas) {COMMENT
LOWfront/lib/chart.js/Chart.js13481 end: pos + sizeCOMMENT
LOWfront/lib/chart.js/Chart.js13501 //COMMENT
LOWfront/lib/datatables/datatables.js4041 // In cases where either:COMMENT
LOWfront/lib/datatables/datatables.js5641 },COMMENT
LOWfront/lib/datatables/datatables.js6421 isCustomProp = rcustomProp.test( name ),COMMENT
LOWfront/lib/datatables/datatables.js6441 // `getPropertyValue` returns an empty string, the value returnedCOMMENT
LOWfront/lib/datatables/datatables.js10661 return text == null ?COMMENT
LOWfront/lib/datatables/datatables.js14201 // implementations differ between browsers.COMMENT
LOWfront/lib/datatables/datatables.js20201 }COMMENT
5 more matches not shown…
Cross-Language Confusion12 hits · 58 pts
SeverityFileLineSnippetContext
HIGHtest/docker_tests/test_puid_pgid.py167 "chown -R 0:0 /data && chmod -R 0755 /data && "CODE
HIGHtest/docker_tests/test_puid_pgid.py345 "chown -R 1000:1000 /data && chmod -R 0755 /data"CODE
HIGHtest/docker_tests/test_container_environment.py1401 "-c", "chown -R 0:0 /mnt && chmod 755 /mnt",CODE
HIGHtest/docker_tests/test_container_environment.py1455 "-c", "ls -ldn /data/db && touch /data/db/test_write_after_fix"CODE
HIGHtest/docker_tests/test_container_environment.py653 "if kill -0 $pid >/dev/null 2>&1; then kill -TERM $pid >/dev/null 2>&1 || true; fi; ",STRING
HIGHtest/docker_tests/test_ports_available.py44 f.write(" command: sh -c \"while true; do nc -l -p 20211 < /dev/null > /dev/null; done & while true; do nc -lCODE
HIGHtest/docker_tests/test_ports_available.py149 script = f"printf '%s\\n' '{script_cont.replace(chr(39), chr(39) + chr(92) + chr(39) + chr(39))}' > /tmp/ports-checkCODE
HIGHtest/ui/test_ui_translations.py37 "return (typeof getString === 'function') ? getString(arguments[0]) : null;",CODE
HIGHtest/ui/test_ui_xss_devname.py131 return bool(driver.execute_script("return window.__xss_canary || false;"))CODE
HIGHtest/ui/test_ui_xss_devname.py284 assert not driver.execute_script("return window.__xss_canary || false"), (CODE
HIGHtest/scan/test_ip_format_and_locking.py62 """Invalid IP values like (unknown), null, empty should be rejected."""STRING
HIGHtest/api_endpoints/test_health_endpoints.py129 """cpu_temp should be optional (int or null)."""STRING
Structural Annotation Overuse27 hits · 53 pts
SeverityFileLineSnippetContext
LOWtest/docker_tests/test_container_environment.py916# NOTE: The following runtime-behavior tests depended on the entrypoint continuing even whenCOMMENT
LOWtest/ui/TESTING_GUIDE.md115 # Step 1: Navigate to devices pageCOMMENT
LOWtest/ui/TESTING_GUIDE.md119 # Step 2: Click first deviceCOMMENT
LOWtest/ui/TESTING_GUIDE.md124 # Step 3: Edit device nameCOMMENT
LOWtest/ui/TESTING_GUIDE.md130 # Step 4: Save changesCOMMENT
LOWtest/ui/TESTING_GUIDE.md135 # Step 5: Verify save succeededCOMMENT
LOWtest/ui/TESTING_GUIDE.md138 # Step 6: Restore original nameCOMMENT
LOWtest/api_endpoints/test_device_endpoints.py95 # Step 1: Create the source deviceCOMMENT
LOWtest/api_endpoints/test_device_endpoints.py102 # Step 2: Generate a target MAC (lowercase to match DB trigger normalisation)COMMENT
LOWtest/api_endpoints/test_device_endpoints.py107 # Step 3: Copy deviceCOMMENT
LOWtest/api_endpoints/test_device_endpoints.py114 # Step 4: Verify new device existsCOMMENT
LOWserver/utils/plugin_utils.py349 # Step 1: Initialize the setting value as an empty stringCOMMENT
LOWserver/utils/plugin_utils.py352 # Step 2: Get the default setting object for the plugin's specified keyCOMMENT
LOWserver/utils/plugin_utils.py363 # Step 3: Check for user-defined setting value in the dictionaryCOMMENT
LOWserver/scan/device_handling.py1306 # Step 3: Execute batch updateCOMMENT
LOWserver/scan/device_handling.py1257 # Step 1: Load all devices from the DBCOMMENT
LOWserver/scan/device_handling.py1271 # Step 2: For each non-NIC device, determine new devPresentLastScanCOMMENT
LOWserver/api_server/nettools_endpoint.py81 # Step 1: Validate IP addressCOMMENT
LOWserver/api_server/nettools_endpoint.py90 # Step 2: Execute tracerouteCOMMENT
LOWserver/api_server/nettools_endpoint.py103 # Step 3: Handle command errorsCOMMENT
LOWdocs/PLUGINS_DEV.md73### Step 1: Understand the BasicsCOMMENT
LOWdocs/PLUGINS_DEV.md78### Step 2: Create Your PluginCOMMENT
LOWdocs/PLUGINS_DEV.md84### Step 3: Configure & DisplayCOMMENT
LOWdocs/PLUGINS_DEV.md89### Step 4: Deploy & TestCOMMENT
LOWfront/js/common.js267 // Step 1: Replace double quotes within single-quoted stringsCOMMENT
LOWfront/js/common.js273 // Step 2: Replace all single quotes with double quotesCOMMENT
LOWfront/js/common.js276 // Step 3: Restore escaped double quotesCOMMENT
Fake / Example Data52 hits · 52 pts
SeverityFileLineSnippetContext
LOWtest/test_device_atomicity.py114 "devOwner": "John Doe",CODE
LOWserver/initialise.py464 '{"dataType":"array","elements":[{"elementType":"input","elementOptions":[{"placeholder":"Enter value"},{"suffixCODE
LOWserver/initialise.py304 """{"dataType": "array","elements": [{"elementType": "input","elementOptions": [{"placeholder": "192.168.1.0/24 STRING
LOWserver/plugins/omada_sdn_imp/config.json163 { "placeholder": "Enter value" },CODE
LOWserver/plugins/custom_props/config.json40 { "placeholder": "Enter value" },CODE
LOWserver/plugins/custom_props/config.json125 { "placeholder": "Enter value" },CODE
LOWserver/plugins/custom_props/config.json329 "placeholder": "<i class=\"far fa-trash-alt\"></i>"CODE
LOWserver/plugins/custom_props/config.json344 "placeholder": "<i class=\"far fa-clone\"></i>"CODE
LOWserver/plugins/wake_on_lan/config.json156 { "placeholder": "Enter value" },CODE
LOWserver/plugins/wake_on_lan/config.json232 { "placeholder": "Enter value" },CODE
LOWserver/plugins/omada_sdn_openapi/config.json226 { "placeholder": "Enter value" },CODE
LOWserver/plugins/unifi_import/config.json790 { "placeholder": "Enter value" },CODE
LOWserver/plugins/snmp_discovery/config.json416 { "placeholder": "Enter value" },CODE
LOWserver/plugins/newdev_template/config.json42 "placeholder": "Enter value"CODE
LOWserver/plugins/newdev_template/config.json167 "placeholder": "Enter value"CODE
LOWserver/plugins/newdev_template/config.json292 "placeholder": "Enter value"CODE
LOWserver/plugins/rest_import/config.json252 "placeholder": "e.g. OPNsense DHCP"CODE
LOWserver/plugins/rest_import/config.json290 "placeholder": "https://host/api/endpoint"CODE
LOWserver/plugins/rest_import/config.json440 "placeholder": "Username or API Key"CODE
LOWserver/plugins/rest_import/config.json478 "placeholder": "Password or API Secret"CODE
LOWserver/plugins/rest_import/config.json516 "placeholder": "Bearer token"CODE
LOWserver/plugins/rest_import/config.json554 "placeholder": "Accept: application/json"CODE
LOWserver/plugins/rest_import/config.json592 "placeholder": "Optional JSON body for POST requests"CODE
LOWserver/plugins/rest_import/config.json630 "placeholder": "rows"CODE
LOWserver/plugins/rest_import/config.json668 "placeholder": "e.g. hwaddr"CODE
LOWserver/plugins/rest_import/config.json706 "placeholder": "e.g. address"CODE
LOWserver/plugins/rest_import/config.json744 "placeholder": "e.g. hostname"CODE
LOWserver/plugins/rest_import/config.json782 "placeholder": "e.g. mac_info"CODE
LOWserver/plugins/rest_import/config.json820 "placeholder": "e.g. wlan"CODE
LOWserver/plugins/rest_import/config.json858 "placeholder": "e.g. device_type"CODE
LOWserver/plugins/rest_import/config.json896 "placeholder": "e.g. parent_mac"CODE
LOWserver/plugins/rest_import/config.json934 "placeholder": "e.g. port"CODE
LOWserver/plugins/rest_import/config.json972 "placeholder": "e.g. site"CODE
LOWserver/plugins/rest_import/config.json1010 "placeholder": "e.g. vlan"CODE
LOWserver/plugins/_publisher_ntfy/config.json591 { "placeholder": "Enter value" },CODE
LOWserver/plugins/__template/config.json181 { "placeholder": "Enter value" },CODE
LOWserver/plugins/website_monitor/config.json624 { "placeholder": "Enter value" },CODE
LOWserver/plugins/sync/config.json214 "placeholder": "Enter full url"CODE
LOWserver/plugins/dhcp_leases/config.json502 { "placeholder": "Enter value" },CODE
LOWserver/plugins/unifi_api_import/config.json252 "placeholder": "Enter value"CODE
LOWserver/plugins/unifi_api_import/config.json290 "placeholder": "https://host_ip/proxy/network/integration/"CODE
LOWserver/plugins/unifi_api_import/config.json328 "placeholder": "v1"CODE
LOWserver/plugins/unifi_api_import/config.json366 "placeholder": "Enter value"CODE
LOWserver/plugins/ui_settings/config.json65 { "placeholder": "Enter value" },CODE
LOWserver/plugins/ui_settings/config.json140 { "placeholder": "Enter value" },CODE
LOWfront/lib/datatables/datatables.js26224 .attr( 'placeholder', opts.placeholder )CODE
LOWfront/lib/datatables/datatables.min.js28!function(n){"use strict";var a;"function"==typeof define&&define.amd?define(["jquery"],function(t){return n(t,window,doCODE
LOWfront/lib/select2/select2.full.min.js2!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.eCODE
LOWfront/lib/datatables.net/js/jquery.dataTables.min.js41g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!thCODE
LOWfront/lib/datatables.net/js/jquery.dataTables.js4222 .attr( 'placeholder', language.sSearchPlaceholder )CODE
LOWfront/lib/datatables.net/js/jquery.dataTables.js12552 * // { "phone": 5552368, "phone_filter": "5552368 555-2368", "phone_display": "555-2368" }COMMENT
LOWfront/lib/jquery-ui/jquery-ui.min.js6(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=CODE
Docstring Block Structure7 hits · 35 pts
SeverityFileLineSnippetContext
HIGHtest/backend/sql_safe_builder.py147 Parse and build a safe SQL condition from a user-provided string. This method attempts to parse common STRING
HIGHserver/database.py310 Retrieve device statistics from the database. Args: db: A database connection or handler object that pSTRING
HIGHserver/helper.py435 Reverse applied transformers on a value or list of values. This function iterates through a list of transformeSTRING
HIGHserver/utils/datetime_utils.py28 Return the current time in UTC. This is the ONLY function that calls datetime.datetime.now() in the entire codSTRING
HIGHserver/utils/datetime_utils.py92 Check if a datetime is strictly in the future. Utility for validating that a datetime hasn't already passed. STRING
HIGHserver/utils/datetime_utils.py119 Ensure a schedule's next() call returns a datetime strictly in the future. Keeps calling .next() until a futurSTRING
HIGHserver/db/sql_safe_builder.py156 Parse and build a safe SQL condition from a user-provided string. This method attempts to parse common STRING
Verbosity Indicators16 hits · 30 pts
SeverityFileLineSnippetContext
LOWtest/api_endpoints/test_device_endpoints.py95 # Step 1: Create the source deviceCOMMENT
LOWtest/api_endpoints/test_device_endpoints.py102 # Step 2: Generate a target MAC (lowercase to match DB trigger normalisation)COMMENT
LOWtest/api_endpoints/test_device_endpoints.py107 # Step 3: Copy deviceCOMMENT
LOWtest/api_endpoints/test_device_endpoints.py114 # Step 4: Verify new device existsCOMMENT
LOWserver/utils/plugin_utils.py349 # Step 1: Initialize the setting value as an empty stringCOMMENT
LOWserver/utils/plugin_utils.py352 # Step 2: Get the default setting object for the plugin's specified keyCOMMENT
LOWserver/utils/plugin_utils.py363 # Step 3: Check for user-defined setting value in the dictionaryCOMMENT
LOWserver/scan/device_handling.py1306 # Step 3: Execute batch updateCOMMENT
LOWserver/scan/device_handling.py1257 # Step 1: Load all devices from the DBCOMMENT
LOWserver/scan/device_handling.py1271 # Step 2: For each non-NIC device, determine new devPresentLastScanCOMMENT
LOWserver/api_server/nettools_endpoint.py81 # Step 1: Validate IP addressCOMMENT
LOWserver/api_server/nettools_endpoint.py90 # Step 2: Execute tracerouteCOMMENT
LOWserver/api_server/nettools_endpoint.py103 # Step 3: Handle command errorsCOMMENT
LOWfront/js/common.js267 // Step 1: Replace double quotes within single-quoted stringsCOMMENT
LOWfront/js/common.js273 // Step 2: Replace all single quotes with double quotesCOMMENT
LOWfront/js/common.js276 // Step 3: Restore escaped double quotesCOMMENT
Unused Imports24 hits · 21 pts
SeverityFileLineSnippetContext
LOWtest/docker_tests/test_puid_pgid.py7CODE
LOWtest/plugins/test_adguard_export.py16CODE
LOWtest/plugins/test_adguard_export.py18CODE
LOWtest/plugins/test_rest_import.py11CODE
LOWtest/plugins/test_rest_import.py13CODE
LOWtest/backend/test_skip_repeated_notifications.py12CODE
LOWtest/backend/test_device_history.py20CODE
LOWtest/backend/test_device_history.py20CODE
LOWtest/backend/test_device_history.py20CODE
LOWtest/api_endpoints/test_mcp_disabled_tools.py4CODE
LOWtest/api_endpoints/test_mcp_disabled_tools.py5CODE
LOWserver/config_paths.py8CODE
LOWserver/plugins/unifi_import/script.py4CODE
LOWserver/plugins/snmp_discovery/script.py3CODE
LOWserver/plugins/dhcp_leases/script.py3CODE
LOWserver/models/parameters_instance.py11CODE
LOWserver/api_server/graphql_types.py1CODE
LOWserver/api_server/mcp_endpoint.py24CODE
LOWserver/api_server/openapi/registry.py1CODE
LOWserver/api_server/openapi/schema_converter.py1CODE
LOWserver/api_server/openapi/spec_generator.py31CODE
LOWserver/api_server/openapi/schemas.py14CODE
LOWserver/api_server/openapi/introspection.py1CODE
LOWserver/api_server/openapi/validation.py1CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHtest/db_test_helpers.py0create table currentscan ( scanmac text, scanname text, scanvendor text, scansourceplugin text, scanlastip text, scansynSTRING
HIGHtest/scan/conftest.py0create table currentscan ( scanmac text, scanname text, scanvendor text, scansourceplugin text, scanlastip text, scansynSTRING
HIGHtest/scan/test_field_lock_scan_integration.py0create table currentscan ( scanmac text, scanname text, scanvendor text, scansourceplugin text, scanlastip text, scansynSTRING
AI Slop Vocabulary5 hits · 11 pts
SeverityFileLineSnippetContext
MEDIUMserver/api_server/mcp_endpoint.py398 # 2. Prefer POST methods over GET for the same logic (usually more robust body validation).COMMENT
LOWserver/api_server/mcp_endpoint.py259 # if multiple prefixes are used, so we just return it.COMMENT
MEDIUMfront/lib/chart.js/Chart.js7309 // Essentially we now have any number of boxes on each of the 4 sides.COMMENT
MEDIUMfront/lib/datatables/datatables.js10670// understands anonymous AMD modules. A named AMD is safest and most robustCOMMENT
MEDIUMfront/lib/datatables/datatables.js33566// Note that DataTables 2.1 has more robust type detection, but we retainCOMMENT
AI Structural Patterns10 hits · 10 pts
SeverityFileLineSnippetContext
LOWtest/db_test_helpers.py593CODE
LOWtest/docker_tests/test_container_environment.py541CODE
LOWtest/backend/sql_safe_builder.py108CODE
LOWserver/app_state.py202CODE
LOWserver/app_state.py36CODE
LOWserver/plugins/plugin_helper.py275CODE
LOWserver/plugins/plugin_helper.py342CODE
LOWserver/api_server/openapi/registry.py86CODE
LOWserver/api_server/openapi/validation.py36CODE
LOWserver/db/sql_safe_builder.py117CODE
Slop Phrases4 hits · 7 pts
SeverityFileLineSnippetContext
LOWserver/plugin.py780 # compare hash of the changed watched columns for uniqueness - make sure you compare the values witSTRING
LOWserver/plugins/_publisher_mqtt/mqtt.py409 # If you intend to run multiple instances simultaneously, make sure to set unique client IDs for each instance.COMMENT
MEDIUMserver/plugins/asuswrt_import/script.py89 # Now you can use the router object to call methodsCOMMENT
MEDIUMserver/plugins/__template/rename_me.py89 # Sample data for testing purposes, you can adjust the processing in main() as neededCOMMENT
Modern Structural Boilerplate5 hits · 5 pts
SeverityFileLineSnippetContext
LOWtest/docker_tests/test_container_environment.py1393 def _setup_restrictive_dir(host_path: pathlib.Path) -> None:CODE
LOWtest/docker_tests/test_container_environment.py828def _setup_zero_perm_dir(paths: dict[str, pathlib.Path], key: str) -> None:STRING
LOWserver/config_paths.py14__all__ = [CODE
LOWserver/plugins/adguard_export/script.py144 def update_client(self, old_name: str, client: dict) -> None:CODE
LOWserver/plugins/unifi_import/script.py247def set_lock_file_value(config_value: str, lock_file_value: bool) -> None:CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWfront/lib/datatables/datatables.js4141function getData( data ) {CODE