Repository Analysis

netalertx/NetAlertX

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

17.9 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of netalertx/NetAlertX, a Python project with 6,700 GitHub stars. SynthScan v2.0 examined 258,742 lines of code across 834 source files, recording 2314 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 17.9 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).

17.9
Adjusted Score
17.9
Raw Score
100%
Time Factor
2026-07-13
Last Push
6.7K
Stars
Python
Language
258.7K
Lines of Code
834
Files
2.3K
Pattern Hits
2026-07-14
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 972LOW 1313

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 2314 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 Separators866 hits · 2766 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.py18# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py20# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py30# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py32# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py72# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py74# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py161# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py163# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py284# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py286# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py317# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py319# ===========================================================================COMMENT
MEDIUMtest/plugins/test_fritzbox.py44# ---------------------------------------------------------------------------COMMENT
MEDIUMtest/plugins/test_fritzbox.py46# ---------------------------------------------------------------------------COMMENT
806 more matches not shown…
Hyper-Verbose Identifiers733 hits · 716 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
673 more matches not shown…
Self-Referential Comments88 hits · 280 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.py880 # Create a backup file with the suffix "_old_setting_names" and timestampCOMMENT
MEDIUMserver/workflows/app_events.py19 # Create the AppEvents table if missingCOMMENT
MEDIUMserver/utils/plugin_utils.py300 # Create the full file pathCOMMENT
MEDIUMserver/utils/plugin_utils.py186 pluginsList = [] # Create an empty list to store plugin configurationsCODE
MEDIUMserver/models/notification_instance.py57 # Create a new DB entry if new notifications available, otherwise skipSTRING
MEDIUMserver/api_server/prometheus_endpoint.py20# Define a base URL with the user's home directoryCOMMENT
MEDIUMserver/api_server/openapi/introspection.py81 # Create a unique key for this path/method/op combination if needed,COMMENT
MEDIUMserver/db/db_upgrade.py8# Define the expected Devices table columns (hardcoded base schema) [v26.1/2.XX]COMMENT
MEDIUMfront/plugins/omada_sdn_imp/omada_sdn.py33# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMfront/plugins/omada_sdn_imp/omada_sdn.py54# Define the current path and log file pathsCOMMENT
MEDIUMfront/plugins/omada_sdn_imp/omada_sdn.py262 # Create a DeviceInstance instanceCOMMENT
MEDIUMfront/plugins/wake_on_lan/wake_on_lan.py8# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMfront/plugins/wake_on_lan/wake_on_lan.py27# Define the current path and log file pathsCOMMENT
MEDIUMfront/plugins/wake_on_lan/wake_on_lan.py46 # Create a DeviceInstance instanceCOMMENT
MEDIUMfront/plugins/_publisher_mqtt/mqtt.py63 # Create a database connectionCOMMENT
MEDIUMfront/plugins/_publisher_mqtt/mqtt.py44# Create an MD5 hash objectCOMMENT
MEDIUMfront/plugins/_publisher_mqtt/mqtt.py313# Create a generic device for overal statsCOMMENT
MEDIUMfront/plugins/_publisher_mqtt/mqtt.py331 # Create the HA sensor config if a new device is discoveredCOMMENT
MEDIUMfront/plugins/_publisher_mqtt/mqtt.py449 # Create a generic device for overal statsCOMMENT
MEDIUMfront/plugins/_publisher_mqtt/mqtt.py451 # Create a new device representing overall statsCOMMENT
MEDIUMfront/plugins/csv_backup/script.py70 # Create a CSV file in the specified locationCOMMENT
MEDIUMfront/plugins/__test/test.py27# Create an MD5 hash objectCOMMENT
MEDIUMfront/plugins/_publisher_email/email_smtp.py50 # Create a database connectionCOMMENT
MEDIUMfront/plugins/_publisher_email/email_smtp.py57 # Create a NotificationInstance instanceCOMMENT
MEDIUMfront/plugins/omada_sdn_openapi/script.py36# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMfront/plugins/omada_sdn_openapi/script.py54# Define the current path and log file pathsCOMMENT
MEDIUMfront/plugins/omada_sdn_openapi/script.py601 # Initialize the Plugin object output fileCOMMENT
MEDIUMfront/plugins/_publisher_pushsafer/pushsafer.py42 # Create a database connectionCOMMENT
MEDIUMfront/plugins/_publisher_pushsafer/pushsafer.py49 # Create a NotificationInstance instanceCOMMENT
MEDIUMfront/plugins/adguard_import/adguard_import.py8# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMfront/plugins/adguard_export/script.py21# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMfront/plugins/_publisher_webhook/webhook.py46 # Create a database connectionCOMMENT
MEDIUMfront/plugins/_publisher_webhook/webhook.py53 # Create a NotificationInstance instanceCOMMENT
MEDIUMfront/plugins/icmp_scan/icmp.py69 # Create a DeviceInstance instanceCOMMENT
MEDIUMfront/plugins/fritzbox/fritzbox.py7# Define the installation path and extend the system path for plugin importsCOMMENT
MEDIUMfront/plugins/fritzbox/fritzbox.py34# Define the current path and log file pathsCOMMENT
MEDIUMfront/plugins/dig_scan/digscan.py6# Define the installation path and extend the system path for plugin importsCOMMENT
28 more matches not shown…
Excessive Try-Catch Wrapping196 hits · 200 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.py87 except Exception:CODE
LOWserver/database.py234 except Exception as e:CODE
LOWserver/database.py258 except Exception as e:CODE
LOWserver/database.py367 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.py187 except Exception as e:CODE
LOWserver/initialise.py46 except Exception as e:CODE
LOWserver/utils/plugin_utils.py223 except Exception as e:CODE
LOWserver/utils/datetime_utils.py65 except Exception:CODE
LOWserver/utils/datetime_utils.py185 except Exception:CODE
LOWserver/utils/datetime_utils.py217 except Exception:CODE
LOWserver/utils/datetime_utils.py224 except Exception as e:CODE
MEDIUMserver/utils/datetime_utils.py225 print(f"Error formatting date: {e}")CODE
LOWserver/utils/datetime_utils.py292 except Exception as e:CODE
LOWserver/models/user_events_queue_instance.py112 except Exception as e:CODE
LOWserver/models/parameters_instance.py61 except Exception as e:CODE
LOWserver/models/parameters_instance.py84 except Exception as e:CODE
LOWserver/models/parameters_instance.py106 except Exception as e:CODE
LOWserver/models/parameters_instance.py129 except Exception as e:CODE
LOWserver/models/parameters_instance.py177 except Exception as e:CODE
LOWserver/models/device_instance.py340 except Exception as e:CODE
LOWserver/models/device_instance.py347 except Exception as e:CODE
LOWserver/models/device_instance.py838 except Exception as e:STRING
LOWserver/models/device_instance.py852 except Exception as e:STRING
LOWserver/models/device_instance.py929 except Exception as e:CODE
LOWserver/models/device_instance.py946 except Exception as e:CODE
LOWserver/models/device_instance.py1026 except Exception as e:CODE
136 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.py59 # 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.py81 # Check if the file exists and recover previous valuesCOMMENT
LOWserver/__main__.py139 # Check if any plugins need to run on scheduleCOMMENT
LOWserver/__main__.py171 # Check if new devices found (created by process_scan)COMMENT
LOWserver/initialise.py763 # Check if app was upgradedCOMMENT
LOWserver/initialise.py864 # Check if the file contains any of the old setting code namesCOMMENT
LOWserver/utils/plugin_utils.py303 # Check if the file existsCOMMENT
LOWserver/utils/plugin_utils.py305 # Check if the file name contains "encoded"COMMENT
LOWserver/utils/plugin_utils.py197 # Check if the directory name does not start with "__" to skip python cacheCOMMENT
LOWserver/utils/plugin_utils.py199 # Check if the 'ignore_plugin' file exists in the plugin folderCOMMENT
LOWserver/models/notification_instance.py64 # Check if nothing to report, endSTRING
LOWserver/models/notification_instance.py235 # Set all to "processed" statusSTRING
LOWserver/scan/device_handling.py898# Check if plugins data changedCOMMENT
LOWserver/scan/device_handling.py1358# Check if the variable contains a valid MAC address or "internet"COMMENT
LOWserver/api_server/mcp_endpoint.py681 # Check if tool is disabledCOMMENT
LOWserver/api_server/openapi/introspection.py86 # Check if this operation (path + method) is already registeredCOMMENT
LOWserver/db/authoritative_handler.py212 # Check if field has a corresponding source and should be updatedCOMMENT
LOWserver/db/sql_safe_builder.py207 # Check if this is a compound condition (multiple clauses)COMMENT
LOWserver/db/sql_safe_builder.py352 # Check if we're at a word boundary (start of string or after whitespace)COMMENT
LOWserver/db/db_upgrade.py79 # Check if target column is already presentCOMMENT
LOWserver/db/db_upgrade.py1062 # Check if table existsSTRING
LOWserver/messaging/in_app.py100 # Check if file existsCOMMENT
LOWserver/messaging/in_app.py156 # Open file in read/write mode and acquire exclusive lockCOMMENT
LOWserver/messaging/in_app.py161 # Read file contentsCOMMENT
LOWfront/plugins/plugin_helper.py143# Check if a valid MAC addressCOMMENT
LOWfront/plugins/omada_sdn_imp/omada_sdn.py230 # Assign port to switchCOMMENT
LOWfront/plugins/_publisher_mqtt/mqtt.py59 # Check if basic config settings suppliedCOMMENT
LOWfront/plugins/_publisher_mqtt/mqtt.py226 # Check if the plugin object is newCOMMENT
LOWfront/plugins/_publisher_email/email_smtp.py45 # Check if basic config settings suppliedCOMMENT
LOWfront/plugins/omada_sdn_openapi/script.py282 # Check if a parameter is required and if it's value is non-emptyCOMMENT
LOWfront/plugins/omada_sdn_openapi/script.py286 # Check if a parameter has a correct datatypeCOMMENT
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__.py65CODE
LOWserver/initialise.py56CODE
LOWserver/initialise.py227CODE
LOWserver/initialise.py863CODE
LOWserver/workflows/conditions.py19CODE
LOWserver/workflows/manager.py161CODE
LOWserver/utils/plugin_utils.py92CODE
LOWserver/utils/plugin_utils.py185CODE
LOWserver/utils/plugin_utils.py249CODE
LOWserver/utils/plugin_utils.py283CODE
LOWserver/models/notification_instance.py296CODE
LOWserver/models/user_events_queue_instance.py46CODE
LOWserver/models/device_instance.py106CODE
LOWserver/models/device_instance.py326CODE
LOWserver/models/device_instance.py615CODE
LOWserver/scan/device_heuristics.py34CODE
LOWserver/scan/device_handling.py266CODE
LOWserver/scan/device_handling.py965CODE
LOWserver/scan/device_handling.py1385CODE
LOWserver/scan/device_handling.py988CODE
LOWserver/api_server/graphql_endpoint.py164CODE
LOWserver/api_server/graphql_endpoint.py421CODE
LOWserver/api_server/graphql_endpoint.py531CODE
LOWserver/api_server/nettools_endpoint.py116CODE
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__.py201 # ------------------------------------------------------------------------------COMMENT
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.py1181# success, message = resCOMMENT
LOWserver/api_server/openapi/schemas.py921 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/plugins/omada_sdn_imp/omada_sdn.py61# Initialize the Plugin obj output fileCOMMENT
LOWfront/plugins/adguard_export/script.py1#!/usr/bin/env pythonCOMMENT
LOWfront/plugins/ddns_update/script.py81COMMENT
LOWfront/plugins/sync/sync.py181 mylog('verbose', [f'[{pluginName}] Devices files to process: "{files_to_process}"'])COMMENT
LOWfront/plugins/sync/sync.py281 #COMMENT
LOWfront/plugins/sync/sync.py321 devices_to_write = new_devices if sync_behavior == 'copy-new' else device_dataCOMMENT
LOWfront/js/cache.js21// Central registry of all localStorage cache keys.COMMENT
LOWfront/js/cache.js141COMMENT
LOWfront/js/settings_utils.js1161COMMENT
LOWfront/js/db_methods.js1// -----------------------------------------------------------------------------COMMENT
LOWfront/js/ui_components.js1/* -----------------------------------------------------------------------------COMMENT
LOWfront/js/device-columns.js1// =============================================================================COMMENT
LOWfront/js/device-columns.js81// Row positions for extra (non-display) fields.COMMENT
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.py1281 # Step 3: Execute batch updateCOMMENT
LOWserver/scan/device_handling.py1240 # Step 1: Load all devices from the DBCOMMENT
LOWserver/scan/device_handling.py1254 # 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.js265 // Step 1: Replace double quotes within single-quoted stringsCOMMENT
LOWfront/js/common.js271 // Step 2: Replace all single quotes with double quotesCOMMENT
LOWfront/js/common.js274 // Step 3: Restore escaped double quotesCOMMENT
Fake / Example Data51 hits · 51 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
LOWfront/plugins/omada_sdn_imp/config.json163 { "placeholder": "Enter value" },CODE
LOWfront/plugins/custom_props/config.json40 { "placeholder": "Enter value" },CODE
LOWfront/plugins/custom_props/config.json125 { "placeholder": "Enter value" },CODE
LOWfront/plugins/custom_props/config.json329 "placeholder": "<i class=\"far fa-trash-alt\"></i>"CODE
LOWfront/plugins/custom_props/config.json344 "placeholder": "<i class=\"far fa-clone\"></i>"CODE
LOWfront/plugins/wake_on_lan/config.json156 { "placeholder": "Enter value" },CODE
LOWfront/plugins/wake_on_lan/config.json232 { "placeholder": "Enter value" },CODE
LOWfront/plugins/omada_sdn_openapi/config.json226 { "placeholder": "Enter value" },CODE
LOWfront/plugins/unifi_import/config.json790 { "placeholder": "Enter value" },CODE
LOWfront/plugins/snmp_discovery/config.json416 { "placeholder": "Enter value" },CODE
LOWfront/plugins/newdev_template/config.json42 "placeholder": "Enter value"CODE
LOWfront/plugins/newdev_template/config.json167 "placeholder": "Enter value"CODE
LOWfront/plugins/newdev_template/config.json292 "placeholder": "Enter value"CODE
LOWfront/plugins/rest_import/config.json252 "placeholder": "e.g. OPNsense DHCP"CODE
LOWfront/plugins/rest_import/config.json290 "placeholder": "https://host/api/endpoint"CODE
LOWfront/plugins/rest_import/config.json440 "placeholder": "Username or API Key"CODE
LOWfront/plugins/rest_import/config.json478 "placeholder": "Password or API Secret"CODE
LOWfront/plugins/rest_import/config.json516 "placeholder": "Bearer token"CODE
LOWfront/plugins/rest_import/config.json554 "placeholder": "Accept: application/json"CODE
LOWfront/plugins/rest_import/config.json592 "placeholder": "Optional JSON body for POST requests"CODE
LOWfront/plugins/rest_import/config.json630 "placeholder": "rows"CODE
LOWfront/plugins/rest_import/config.json668 "placeholder": "e.g. hwaddr"CODE
LOWfront/plugins/rest_import/config.json706 "placeholder": "e.g. address"CODE
LOWfront/plugins/rest_import/config.json744 "placeholder": "e.g. hostname"CODE
LOWfront/plugins/rest_import/config.json782 "placeholder": "e.g. mac_info"CODE
LOWfront/plugins/rest_import/config.json820 "placeholder": "e.g. wlan"CODE
LOWfront/plugins/rest_import/config.json858 "placeholder": "e.g. device_type"CODE
LOWfront/plugins/rest_import/config.json896 "placeholder": "e.g. parent_mac"CODE
LOWfront/plugins/rest_import/config.json934 "placeholder": "e.g. port"CODE
LOWfront/plugins/rest_import/config.json972 "placeholder": "e.g. site"CODE
LOWfront/plugins/rest_import/config.json1010 "placeholder": "e.g. vlan"CODE
LOWfront/plugins/__template/config.json181 { "placeholder": "Enter value" },CODE
LOWfront/plugins/website_monitor/config.json624 { "placeholder": "Enter value" },CODE
LOWfront/plugins/sync/config.json214 "placeholder": "Enter full url"CODE
LOWfront/plugins/dhcp_leases/config.json502 { "placeholder": "Enter value" },CODE
LOWfront/plugins/unifi_api_import/config.json252 "placeholder": "Enter value"CODE
LOWfront/plugins/unifi_api_import/config.json290 "placeholder": "https://host_ip/proxy/network/integration/"CODE
LOWfront/plugins/unifi_api_import/config.json328 "placeholder": "v1"CODE
LOWfront/plugins/unifi_api_import/config.json366 "placeholder": "Enter value"CODE
LOWfront/plugins/ui_settings/config.json65 { "placeholder": "Enter value" },CODE
LOWfront/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.py304 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.py1281 # Step 3: Execute batch updateCOMMENT
LOWserver/scan/device_handling.py1240 # Step 1: Load all devices from the DBCOMMENT
LOWserver/scan/device_handling.py1254 # 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.js265 // Step 1: Replace double quotes within single-quoted stringsCOMMENT
LOWfront/js/common.js271 // Step 2: Replace all single quotes with double quotesCOMMENT
LOWfront/js/common.js274 // Step 3: Restore escaped double quotesCOMMENT
Unused Imports23 hits · 20 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_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/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
LOWfront/plugins/unifi_import/script.py4CODE
LOWfront/plugins/snmp_discovery/script.py3CODE
LOWfront/plugins/dhcp_leases/script.py3CODE
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.py195CODE
LOWserver/app_state.py36CODE
LOWserver/api_server/openapi/registry.py86CODE
LOWserver/api_server/openapi/validation.py36CODE
LOWserver/db/sql_safe_builder.py117CODE
LOWfront/plugins/plugin_helper.py275CODE
LOWfront/plugins/plugin_helper.py342CODE
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
LOWfront/plugins/_publisher_mqtt/mqtt.py409 # If you intend to run multiple instances simultaneously, make sure to set unique client IDs for each instance.COMMENT
MEDIUMfront/plugins/asuswrt_import/script.py89 # Now you can use the router object to call methodsCOMMENT
MEDIUMfront/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
LOWfront/plugins/adguard_export/script.py144 def update_client(self, old_name: str, client: dict) -> None:CODE
LOWfront/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