refactor(plugins): standardize plugin ID naming conventions to snake_case#757
refactor(plugins): standardize plugin ID naming conventions to snake_case#757Rakshak05 wants to merge 16 commits into
Conversation
utksh1
left a comment
There was a problem hiding this comment.
This is too large and too breaking to merge in its current form.
Blocking issues:
-
It changes many public plugin IDs and directories from hyphenated IDs to snake_case. Current main and recently merged tests still use hyphenated IDs such as subdomain-finder and website-recon-2, so this would break existing API/UI/history references without a complete compatibility layer.
-
The migration only covers stored database rows; it does not provide runtime aliases/redirects for API clients, presets, UI routes, queued tasks, existing external automation, or documentation links that still submit the legacy IDs.
-
The PR mixes multiple unrelated changes: plugin ID policy, directory renames, checksum script line-ending behavior, Windows path sanitizer behavior, WAF duplicate removal, docs, and parser additions. Please split this into smaller PRs so each behavior can be reviewed and reverted independently.
-
Because this is a breaking plugin contract migration, it needs explicit backwards-compatibility tests proving old IDs continue to resolve or fail with a deliberate migration path.
utksh1
left a comment
There was a problem hiding this comment.
Rechecking after the latest audit-exception commit: this is still blocked.
This refactor is already broad because it renames/standardizes plugin IDs. Please remove the unrelated .audit-config.yaml audit exception and keep the PR focused on plugin ID naming changes plus direct compatibility tests/docs. Audit policy changes need a separate review path.
utksh1
left a comment
There was a problem hiding this comment.
It looks like the 'backend-unit' CI tests are failing for this PR. Please run pytest locally to fix the broken unit tests and push the updates!
|
@utksh1 Please review! |
utksh1
left a comment
There was a problem hiding this comment.
Good progress on CI — all checks now pass. However, there are critical issues:
1. CRITICAL: backend/data/.api_key is in the diff. This is a credentials file and must NEVER appear in a PR diff, even with dummy values. Remove it immediately from the branch and ensure it's in .gitignore.
2. Squash branch history: The 16-commit history (including multiple merge commits and "Fixed bugs" messages) needs to be squashed into a clean, logical series — ideally 2-3 commits: (a) core refactor + migration, (b) plugin updates, (c) docs/tests.
3. Scope consideration: 68 files changed is inherently risky for a refactor that modifies public plugin IDs. Consider splitting into smaller PRs, or get explicit maintainer approval for the monolithic approach.
Closes #548
Description
This PR standardizes all plugin ID naming conventions to
snake_case(lowercase letters, numbers, and underscores, removing all hyphens). This ensures consistent tooling, contributor expectations, and clean backend interfaces.Key changes include:
^[a-z][a-z0-9_]*$matching and directory name matching consistency checks insidePluginMetadataValidator(plugin_validator.py).metadata.json. Removed the duplicatewaf-detectionplugin folder.\r\nline endings inparser.pyfiles with LF\nbefore hashing to match the backend and prevent test validation mismatches on Windows.Type of Change
How Has This Been Tested?
python -X utf8 scripts/validate_plugins.pyto verify all 59 plugins pass the new validator check cleanly.python -m pytest testing/backend/unit/test_plugin_validator.py testing/backend/test_google_dorking_plugin.py testing/backend/unit/test_plugins.pyto confirm all validator, manager, and contract tests pass successfully (139 passed).Checklist