Repository navigation
Add proxmint/proxmint 0.1.0 tool plugin (high risk) - #3535
Merged
Merged
Conversation
crazywoola
approved these changes
Oct 28, 2026
crazywoola
left a comment
Member
There was a problem hiding this comment.
Pre Check Plugin and PR Risk Label passed for this revision. Inspected the submitted package, documentation, and relevant source; this is a non-draft plugin submission with no Web3 functionality identified. This is an eligibility review, not a comprehensive security audit.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plugin Submission
Plugin information
Submission type
What changed
Adds Proxmint as a tool provider with one tool, Fetch page. It reads a web page through the user's own Proxmint residential, datacenter or 4G/5G mobile proxy, from a chosen country and city, and returns the page as readable text (or raw HTML) plus a JSON object with the final URL, HTTP status, title and content type. Users bring their own Proxmint API key, and bandwidth comes out of their own Proxmint account. The plugin itself is free.
Risk level
The tool fetches user-supplied URLs through an HTTP proxy, which the submission requirements classify as high risk.
Required checks
.envfiles,.gitdirectories, virtual environments, caches, logs, or IDE files.PRIVACY.mdor a hosted privacy policy, andmanifest.yamlreferences it.Security and privacy notes
httpandhttpsURLs are accepted. The plugin never connects to the target host itself: every request is sent as a proxied request to the fixed gatewaygw.proxmint.com:823(anhttpxclient with an explicitproxy=, so environment proxy settings andNO_PROXYdo not apply), and the site is reached from the proxy's exit IP. A URL that points at a private or internal address cannot reach the Dify host's network.proxmint.comover HTTPS (GET /api/v1/account, to read the proxy login) andgw.proxmint.com:823(HTTP proxy). Both are declared undernetwork.domainsinmanifest.yaml.secret-inputprovider credential, sent only in theAuthorizationheader tohttps://proxmint.com/api/v1/account. The key is read-only. The proxy login it returns is kept in process memory for up to 10 minutes and sent only to the gateway as proxy authentication. Neither is logged, written to disk, or included in tool output or error messages.Local validation
dify plugin packagewith dify-plugin-daemon CLI 0.6.11: packaged successfully (14 files, no tests or caches).tools/_gateway.py:75returningCredentials(username, password): that function hands the proxy login to the HTTP client, and the login is never returned to Dify or logged.pytest tests, offline, against a stand-in gateway and account API): 5 passed, covering targeting in the proxy username, text and JSON output, truncation, the login cache and its reset after a gateway refusal, and credential validation.INSTALL_METHOD=serverlessand sentvalidate_tool_credentialsandinvoke_toolrequests to/invoke. With an invalid key, both returned the expected "Proxmint rejected the API key" error from the live API.secret-inputcredential, string, select and number parameters, and text and JSON messages. Its gateway client is the same code as our published LangChain (langchain-proxmint) and Haystack (proxmint-haystack) packages, which run against the same gateway.Reviewer notes
A self-hosted Dify behind a firewall needs outbound TCP to
gw.proxmint.com:823; the README says so under Connection requirements.