A remote monitoring & management tool, built with Django, Vue and Go.
This report presents the forensic synthetic code analysis of amidaware/tacticalrmm, a Python project with 4,414 GitHub stars. SynthScan v2.0 examined 69,723 lines of code across 335 source files, recording 724 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 13.4 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 724 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/tacticalrmm/clients/models.py | 14 | def _default_failing_checks_data() -> Dict[str, bool]: | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 470 | def test_get_clients_permissions(self): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 523 | def test_add_clients_permissions(self, save, delete): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 544 | def test_get_edit_delete_clients_permissions(self, delete): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 582 | def test_get_sites_permissions(self): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 631 | def test_add_sites_permissions(self, delete, save): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 662 | def test_get_edit_delete_sites_permissions(self, delete): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 708 | def test_get_pendingactions_permissions(self): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 754 | def test_add_deployments_permissions(self, save): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 795 | def test_delete_deployments_permissions(self, delete): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 846 | def test_restricted_user_creating_clients(self): | CODE |
| LOW | api/tacticalrmm/clients/tests.py | 862 | def test_restricted_user_creating_sites(self): | CODE |
| LOW | api/tacticalrmm/apiv3/tests/tests.py | 71 | def test_checkrunner_interval(self, mock_randint): | CODE |
| LOW | api/tacticalrmm/core/tasks.py | 77 | def remove_orphaned_history_results() -> int: | CODE |
| LOW | api/tacticalrmm/core/models.py | 491 | def get_or_create_field_value(self, instance): | CODE |
| LOW | api/tacticalrmm/core/utils.py | 266 | def find_and_replace_db_values_str(*, text: str, instance): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 45 | def test_edit_codesign_timeout(self, mock_post): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 86 | def test_core_maintenance_tasks(self): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 143 | def test_hosted_edit_coresettings(self): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 175 | def test_ui_maintenance_actions(self, remove_orphaned_win_tasks, reload_nats): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 231 | def test_get_custom_fields_by_model(self): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 460 | # def test_resolved_pending_agentupdate_task(self): | COMMENT |
| LOW | api/tacticalrmm/core/tests.py | 505 | def test_custom_port_nats_standard(self): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 514 | def test_custom_connect_host_env(self): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 538 | def test_standard_install_custom_port(self, mock_token): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 577 | def test_get_meshagent_url_standard(self): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 602 | def test_get_meshagent_url_docker(self): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 626 | def test_get_meshagent_url_external_mesh(self): | CODE |
| LOW | api/tacticalrmm/core/tests.py | 650 | def test_get_meshagent_url_mesh_port(self): | CODE |
| LOW⚡ | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 26 | def test_should_run_daily_exact_time(time_machine, run_time_10am, est_timezone): | CODE |
| LOW⚡ | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 35 | def test_should_not_run_daily_off_time(time_machine, run_time_10am, est_timezone): | CODE |
| LOW⚡ | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 45 | def test_should_run_weekly_correct_day_and_time( | CODE |
| LOW | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 57 | def test_should_not_run_weekly_incorrect_day(time_machine, run_time_10am, est_timezone): | CODE |
| LOW | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 68 | def test_should_run_monthly_correct_day(time_machine, run_time_10am, est_timezone): | CODE |
| LOW | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 79 | def test_should_not_run_monthly_incorrect_month( | CODE |
| LOW | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 92 | def test_should_run_monthly_last_day_of_month( | CODE |
| LOW | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 105 | def test_should_run_monthly_last_day_of_leap_year_february( | CODE |
| LOW | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 119 | def test_should_run_monthly_dow_correct_week_and_day( | CODE |
| LOW | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 133 | def test_should_run_monthly_dow_last_week_of_month( | CODE |
| LOW | api/tacticalrmm/core/tests_pytest/test_scheduler.py | 147 | def test_should_not_run_monthly_dow_incorrect_week( | CODE |
| LOW | api/tacticalrmm/winupdate/tasks.py | 18 | def auto_approve_updates_task() -> None: | CODE |
| LOW | api/tacticalrmm/winupdate/tasks.py | 49 | def check_agent_update_schedule_task() -> None: | CODE |
| LOW | api/tacticalrmm/winupdate/tasks.py | 125 | def bulk_install_updates_task(pks: list[int]) -> None: | CODE |
| LOW | api/tacticalrmm/winupdate/tasks.py | 145 | def bulk_check_for_updates_task(pks: list[int]) -> None: | CODE |
| LOW | api/tacticalrmm/winupdate/tests.py | 81 | def test_get_scan_install_permissions(self, nats_cmd): | CODE |
| LOW | api/tacticalrmm/winupdate/tests.py | 120 | def test_edit_winupdate_permissions(self): | CODE |
| LOW | api/tacticalrmm/autotasks/tasks.py | 90 | def remove_orphaned_win_tasks(self) -> str: | CODE |
| LOW | api/tacticalrmm/autotasks/tasks.py | 224 | def handle_resolved_task_sms_alert(pk: int) -> str: | CODE |
| LOW | api/tacticalrmm/autotasks/tasks.py | 244 | def handle_resolved_task_email_alert(pk: int) -> str: | CODE |
| LOW | api/tacticalrmm/autotasks/models.py | 52 | def default_task_supported_platforms() -> list[str]: | CODE |
| LOW | api/tacticalrmm/autotasks/models.py | 237 | def fields_that_trigger_task_update_on_agent(self) -> List[str]: | CODE |
| LOW | api/tacticalrmm/autotasks/models.py | 262 | def generate_nats_task_payload(self) -> Dict[str, Any]: | CODE |
| LOW | api/tacticalrmm/autotasks/models.py | 541 | def get_or_create_alert_if_needed( | CODE |
| LOW | api/tacticalrmm/autotasks/tests/test_autotasks.py | 397 | def test_create_win_task_schedule(self, nats_cmd): | CODE |
| LOW | api/tacticalrmm/autotasks/tests/test_autotasks.py | 683 | def test_get_tasks_permissions(self): | CODE |
| LOW | api/tacticalrmm/autotasks/tests/test_autotasks.py | 743 | def test_add_task_permissions(self): | CODE |
| LOW | api/tacticalrmm/autotasks/tests/test_autotasks.py | 813 | def test_task_get_edit_delete_permissions(self, delete_task): | CODE |
| LOW | api/tacticalrmm/autotasks/tests/test_autotasks.py | 860 | def test_task_action_permissions(self): | CODE |
| LOW | api/tacticalrmm/checks/tasks.py | 15 | def handle_check_email_alert_task( | CODE |
| LOW | api/tacticalrmm/checks/tasks.py | 49 | def handle_check_sms_alert_task(pk: int, alert_interval: Optional[float] = None) -> str: | CODE |
| 365 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | api/tacticalrmm/ee/__init__.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/models.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/constants.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/__init__.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/apps.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/admin.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/utils.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/storage.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/settings.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/urls.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/views.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/markdown/config.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/markdown/__init__.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …i/tacticalrmm/ee/reporting/markdown/ignorejinja_ext.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …/tacticalrmm/ee/reporting/tests/test_util_functions.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …alrmm/ee/reporting/tests/test_report_template_views.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …e/reporting/tests/test_import_export_template_views.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …ticalrmm/ee/reporting/tests/test_report_asset_views.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …tacticalrmm/ee/reporting/tests/test_dataquery_views.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/tests/test_data_queries.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/tests/__init__.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/tests/test_storage.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …icalrmm/ee/reporting/tests/test_base_template_views.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …icalrmm/ee/reporting/tests/test_template_generation.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …i/tacticalrmm/ee/reporting/tests/test_mgmt_commands.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …ticalrmm/ee/reporting/tests/test_template_variables.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/management/__init__.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …cticalrmm/ee/reporting/management/commands/__init__.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …reporting/management/commands/generate_json_schemas.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | …rmm/ee/reporting/management/commands/get_webtar_url.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/reporting/serializers.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/sso/adapter.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/sso/__init__.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/sso/permissions.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/sso/urls.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/sso/middleware.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/sso/views.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| HIGH | api/tacticalrmm/ee/sso/sso_settings.py | 0 | copyright (c) 2024-present amidaware inc. this file is subject to the ee license agreement. for details, see: https://li | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/tacticalrmm/clients/tests.py | 470 | CODE | |
| LOW | api/tacticalrmm/apiv3/views.py | 300 | CODE | |
| LOW | api/tacticalrmm/apiv3/views.py | 623 | CODE | |
| LOW | api/tacticalrmm/core/tasks.py | 185 | CODE | |
| LOW | api/tacticalrmm/core/tasks.py | 206 | CODE | |
| LOW | api/tacticalrmm/core/tasks.py | 366 | CODE | |
| LOW | api/tacticalrmm/core/tasks.py | 435 | CODE | |
| LOW | api/tacticalrmm/core/tasks.py | 608 | CODE | |
| LOW | api/tacticalrmm/core/models.py | 276 | CODE | |
| LOW | api/tacticalrmm/core/models.py | 491 | CODE | |
| LOW | api/tacticalrmm/core/serializers.py | 107 | CODE | |
| LOW | api/tacticalrmm/core/mesh_utils.py | 64 | CODE | |
| LOW | api/tacticalrmm/core/mesh_utils.py | 94 | CODE | |
| LOW | api/tacticalrmm/core/mesh_utils.py | 97 | CODE | |
| LOW | api/tacticalrmm/core/views.py | 407 | CODE | |
| LOW | api/tacticalrmm/core/views.py | 466 | CODE | |
| LOW | …ticalrmm/core/management/commands/server_maint_mode.py | 18 | CODE | |
| LOW | …ticalrmm/core/management/commands/post_update_tasks.py | 18 | CODE | |
| LOW | api/tacticalrmm/winupdate/tasks.py | 49 | CODE | |
| LOW | api/tacticalrmm/autotasks/models.py | 159 | CODE | |
| LOW | api/tacticalrmm/autotasks/models.py | 201 | CODE | |
| LOW | api/tacticalrmm/autotasks/models.py | 262 | CODE | |
| LOW | api/tacticalrmm/autotasks/serializers.py | 76 | CODE | |
| LOW | api/tacticalrmm/autotasks/serializers.py | 212 | CODE | |
| LOW | api/tacticalrmm/autotasks/tests/test_scheduler.py | 19 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 193 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 269 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 363 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 536 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 612 | CODE | |
| LOW | api/tacticalrmm/checks/serializers.py | 58 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/custom_filters.py | 11 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/tasks.py | 29 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 160 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 213 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 265 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 432 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 646 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 857 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/views.py | 537 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/views.py | 680 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/views.py | 799 | CODE | |
| LOW | …reporting/management/commands/generate_json_schemas.py | 31 | CODE | |
| LOW | api/tacticalrmm/ee/sso/views.py | 171 | CODE | |
| LOW | api/tacticalrmm/agents/tasks.py | 219 | CODE | |
| LOW | api/tacticalrmm/agents/models.py | 656 | CODE | |
| LOW | api/tacticalrmm/agents/models.py | 811 | CODE | |
| LOW | api/tacticalrmm/agents/models.py | 951 | CODE | |
| LOW | api/tacticalrmm/agents/models.py | 1066 | CODE | |
| LOW | api/tacticalrmm/agents/models.py | 986 | CODE | |
| LOW | api/tacticalrmm/agents/consumers.py | 87 | CODE | |
| LOW | api/tacticalrmm/agents/consumers.py | 273 | CODE | |
| LOW | api/tacticalrmm/agents/consumers.py | 327 | CODE | |
| LOW | api/tacticalrmm/agents/consumers.py | 357 | CODE | |
| LOW | api/tacticalrmm/agents/utils.py | 145 | CODE | |
| LOW | api/tacticalrmm/agents/views.py | 689 | CODE | |
| LOW | api/tacticalrmm/agents/views.py | 874 | CODE | |
| LOW | api/tacticalrmm/agents/views.py | 1075 | CODE | |
| LOW | …/tacticalrmm/agents/management/commands/fake_agents.py | 79 | CODE | |
| LOW | …nts/management/commands/fix_dupe_agent_customfields.py | 11 | CODE | |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/tacticalrmm/clients/views.py | 316 | except Exception: | CODE |
| LOW | api/tacticalrmm/apiv3/views.py | 473 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/apiv3/views.py | 511 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/tasks.py | 91 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/tasks.py | 351 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/tasks.py | 603 | except Exception: | CODE |
| MEDIUM | api/tacticalrmm/core/tasks.py | 77 | def remove_orphaned_history_results() -> int: | CODE |
| LOW | api/tacticalrmm/core/models.py | 395 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/consumers.py | 113 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/consumers.py | 224 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/utils.py | 169 | except Exception: | CODE |
| LOW | api/tacticalrmm/core/utils.py | 299 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/utils.py | 305 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/utils.py | 336 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/utils.py | 377 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/utils.py | 432 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/mesh_utils.py | 59 | except Exception: | CODE |
| LOW | api/tacticalrmm/core/mesh_utils.py | 84 | except Exception: | CODE |
| LOW | api/tacticalrmm/core/views.py | 297 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/views.py | 789 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/management/commands/check_mesh.py | 31 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/management/commands/check_mesh.py | 41 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/core/management/commands/check_mesh.py | 56 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/autotasks/tasks.py | 116 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/autotasks/tasks.py | 141 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/ee/reporting/tasks.py | 48 | except Exception: | CODE |
| LOW | api/tacticalrmm/ee/reporting/tasks.py | 110 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 296 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 777 | except Exception as error: | CODE |
| LOW | api/tacticalrmm/ee/reporting/views.py | 248 | except Exception as error: | CODE |
| LOW | api/tacticalrmm/ee/reporting/views.py | 353 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/ee/reporting/views.py | 510 | except Exception as error: | CODE |
| LOW | api/tacticalrmm/ee/reporting/views.py | 582 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/ee/reporting/views.py | 617 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/ee/sso/adapter.py | 27 | except Exception: | CODE |
| LOW | api/tacticalrmm/agents/tasks.py | 214 | except Exception as e: | CODE |
| MEDIUM | api/tacticalrmm/agents/models.py | 519 | def hex_mesh_node_id(self) -> str: | CODE |
| MEDIUM | api/tacticalrmm/agents/models.py | 986 | def message_handler(msg): | CODE |
| LOW | api/tacticalrmm/agents/models.py | 301 | except Exception: | CODE |
| LOW | api/tacticalrmm/agents/models.py | 522 | except Exception: | CODE |
| LOW | api/tacticalrmm/agents/models.py | 940 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/agents/models.py | 974 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/agents/models.py | 1004 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/agents/models.py | 1022 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/agents/models.py | 1036 | except Exception: | CODE |
| LOW | api/tacticalrmm/agents/models.py | 1055 | except Exception: | CODE |
| LOW | api/tacticalrmm/agents/models.py | 1061 | except Exception: | CODE |
| LOW | api/tacticalrmm/agents/consumers.py | 319 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/agents/consumers.py | 361 | except Exception: | CODE |
| LOW | api/tacticalrmm/agents/consumers.py | 422 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/agents/consumers.py | 465 | except Exception as e: | CODE |
| MEDIUM | api/tacticalrmm/agents/consumers.py | 357 | def message_handler(msg): | CODE |
| LOW | api/tacticalrmm/agents/utils.py | 108 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/agents/views.py | 339 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/agents/views.py | 638 | except Exception: | CODE |
| LOW | api/tacticalrmm/agents/views.py | 1358 | except Exception as e: | CODE |
| LOW | …alrmm/agents/management/commands/bulk_delete_agents.py | 96 | except Exception as e: | CODE |
| LOW | api/tacticalrmm/software/views.py | 40 | except Exception: | CODE |
| LOW | api/tacticalrmm/logs/models.py | 70 | except Exception: | CODE |
| LOW | api/tacticalrmm/tacticalrmm/utils.py | 98 | except Exception as e: | CODE |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/tacticalrmm/core/tasks.py | 73 | CODE | |
| LOW | api/tacticalrmm/core/tasks.py | 74 | CODE | |
| LOW | api/tacticalrmm/core/models.py | 38 | CODE | |
| LOW | api/tacticalrmm/core/utils.py | 23 | CODE | |
| LOW | api/tacticalrmm/core/mesh_utils.py | 16 | CODE | |
| LOW | api/tacticalrmm/autotasks/tasks.py | 22 | CODE | |
| LOW | api/tacticalrmm/autotasks/models.py | 6 | CODE | |
| LOW | api/tacticalrmm/autotasks/models.py | 31 | CODE | |
| LOW | api/tacticalrmm/autotasks/models.py | 32 | CODE | |
| LOW | api/tacticalrmm/autotasks/models.py | 33 | CODE | |
| LOW | api/tacticalrmm/autotasks/models.py | 34 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 2 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 2 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 2 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 26 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 27 | CODE | |
| LOW | api/tacticalrmm/checks/models.py | 28 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 45 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/utils.py | 55 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/markdown/config.py | 7 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/markdown/config.py | 7 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/markdown/config.py | 7 | CODE | |
| LOW | …rmm/ee/reporting/management/commands/get_webtar_url.py | 8 | CODE | |
| LOW | api/tacticalrmm/agents/tasks.py | 25 | CODE | |
| LOW | api/tacticalrmm/agents/models.py | 56 | CODE | |
| LOW | api/tacticalrmm/agents/models.py | 58 | CODE | |
| LOW | api/tacticalrmm/agents/tests/test_recovery.py | 10 | CODE | |
| LOW | api/tacticalrmm/agents/tests/test_recovery.py | 10 | CODE | |
| LOW | api/tacticalrmm/agents/tests/test_agents.py | 32 | CODE | |
| LOW | api/tacticalrmm/agents/tests/test_agents.py | 32 | CODE | |
| LOW | api/tacticalrmm/alerts/models.py | 1 | CODE | |
| LOW | api/tacticalrmm/alerts/models.py | 27 | CODE | |
| LOW | api/tacticalrmm/alerts/models.py | 28 | CODE | |
| LOW | api/tacticalrmm/alerts/models.py | 29 | CODE | |
| LOW | api/tacticalrmm/alerts/models.py | 29 | CODE | |
| LOW | api/tacticalrmm/alerts/permissions.py | 10 | CODE | |
| LOW | api/tacticalrmm/logs/models.py | 3 | CODE | |
| LOW | api/tacticalrmm/logs/models.py | 23 | CODE | |
| LOW | api/tacticalrmm/logs/apps.py | 8 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/models.py | 6 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/__init__.py | 1 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/__init__.py | 1 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/__init__.py | 3 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/__init__.py | 6 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/test.py | 2 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/test.py | 10 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/test.py | 17 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/test.py | 18 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/test.py | 18 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/test.py | 19 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/test.py | 20 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/utils.py | 46 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/utils.py | 47 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/utils.py | 47 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/celery.py | 1 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/celery.py | 1 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/settings.py | 133 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/settings.py | 136 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/nats_utils.py | 12 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/permissions.py | 10 | CODE | |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | api/tacticalrmm/core/models.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …cticalrmm/core/management/commands/initial_db_setup.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/tacticalrmm/ee/sso/views.py | 12 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/tacticalrmm/accounts/views.py | 8 | from django.core.exceptions import ValidationError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | troubleshoot_server.sh | 80 | # Check if resolvconf command is available | COMMENT |
| LOW | troubleshoot_server.sh | 218 | # Check if services are running | COMMENT |
| LOW | troubleshoot_server.sh | 354 | #Check if HTTPs Port is open | COMMENT |
| LOW⚡ | …ticalrmm/ee/reporting/tests/test_template_variables.py | 253 | # Check if the generate_chart function was called correctly | STRING |
| LOW⚡ | …ticalrmm/ee/reporting/tests/test_template_variables.py | 262 | # Check if the returned data has the chart in place | STRING |
| LOW | api/tacticalrmm/automation/models.py | 289 | # Check if drive letter was already added | COMMENT |
| LOW | api/tacticalrmm/automation/models.py | 299 | # Check if IP/host was already added | COMMENT |
| LOW | api/tacticalrmm/automation/models.py | 312 | # Check if cpuload list is empty | COMMENT |
| LOW | api/tacticalrmm/automation/models.py | 324 | # Check if memory check list is empty | COMMENT |
| LOW | api/tacticalrmm/automation/models.py | 336 | # Check if service name was already added | COMMENT |
| LOW | api/tacticalrmm/automation/models.py | 348 | # Check if script id was already added | COMMENT |
| LOW | api/tacticalrmm/automation/models.py | 361 | # Check if events were already added | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | install.sh | 387 | git config user.email "admin@example.com" | CODE |
| LOW | install.sh | 395 | git config user.email "admin@example.com" | CODE |
| LOW | restore.sh | 330 | git config user.email "admin@example.com" | CODE |
| LOW | restore.sh | 338 | git config user.email "admin@example.com" | CODE |
| LOW | update.sh | 429 | git config user.email "admin@example.com" | CODE |
| LOW | update.sh | 443 | git config user.email "admin@example.com" | CODE |
| LOW | update.sh | 447 | git config user.email "admin@example.com" | CODE |
| LOW | docker/containers/tactical/entrypoint.sh | 156 | echo "from accounts.models import User; User.objects.create_superuser('${TRMM_USER}', 'admin@example.com', '${TRMM_PAS | CODE |
| LOW | .devcontainer/entrypoint.sh | 131 | echo "from accounts.models import User; User.objects.create_superuser('${TRMM_USER}', 'admin@example.com', '${TRMM_PAS | CODE |
| LOW | api/tacticalrmm/core/models.py | 63 | max_length=255, blank=True, default="admin@example.com" | CODE |
| LOW | api/tacticalrmm/agents/tests/test_agents.py | 570 | "emails": ["admin@example.com", "bob@example.com"], | CODE |
| LOW | api/tacticalrmm/agents/tests/test_agents.py | 598 | emails=["admin@example.com", "bob@example.com"], | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/tacticalrmm/apiv3/views.py | 519 | CODE | |
| LOW | api/tacticalrmm/core/mesh_utils.py | 132 | CODE | |
| LOW | api/tacticalrmm/ee/reporting/tasks.py | 118 | CODE | |
| LOW | api/tacticalrmm/agents/models.py | 656 | CODE | |
| LOW | api/tacticalrmm/agents/utils.py | 186 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/utils.py | 478 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/middleware.py | 48 | CODE | |
| LOW | api/tacticalrmm/tacticalrmm/middleware.py | 112 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/tacticalrmm/core/tests.py | 461 | # online = baker.make_recipe("agents.online_agent", version="2.0.0", _quantity=20) | COMMENT |
| LOW | api/tacticalrmm/winupdate/tests.py | 161 | ) | COMMENT |
| LOW | api/tacticalrmm/winupdate/tests.py | 181 | # ), | COMMENT |
| LOW | api/tacticalrmm/agents/tests/test_agent_update.py | 301 | COMMENT | |
| LOW | api/tacticalrmm/tacticalrmm/utils.py | 301 | return "error" | COMMENT |
| LOW | api/tacticalrmm/tacticalrmm/settings.py | 41 | COMMENT | |
| LOW | api/tacticalrmm/tacticalrmm/settings.py | 61 | # True: --config and --env-config options are added to the command line and point to the Agent's directory. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/tacticalrmm/core/tasks.py | 229 | # TODO can we just use agent?? | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | api/tacticalrmm/core/mesh_utils.py | 155 | def update_mesh_displayname(self, *, user_info: dict[str, Any]) -> None: | CODE |