Skip to content

Update Precleared tool plugin to 0.1.1 (precleared/precleared) - #3528

Merged
crazywoola merged 1 commit into
langgenius:mainfrom
gabrielaoimevbore-beep:precleared-0.1.1
Oct 28, 2026
Merged

crazywoola merged 1 commit into
langgenius:mainfrom
gabrielaoimevbore-beep:precleared-0.1.1

Conversation

@gabrielaoimevbore-beep

Copy link
Copy Markdown
Contributor

Plugin Submission

Plugin information

Submission type

  • New plugin
  • Version update

What changed

Adds the United Arab Emirates (AE) as a sender country. The Sender country option of Check cold email compliance now offers GB, US or AE, matching the sending countries the Precleared API accepts. The input check in tools/client.py and the README were updated to match.

Nothing else changed: the same two tools and outputs, the same single network host, no new dependencies and no breaking changes. Compared with the 0.1.0 package, the only files that differ are manifest.yaml (version), tools/check_cold_email.yaml, tools/client.py and README.md.

Risk level

  • Low risk
  • Medium risk
  • High risk

Unchanged from 0.1.0: medium because the plugin sends user content, a recipient's email address and the pitch text, to an external service.

Required checks

  • I have read and followed the Marketplace submission requirements.
  • I have read and comply with the Plugin Development Guidelines.
  • I tested this plugin on Dify Community Edition and Dify Cloud, or documented any limitation below.
  • The package contains only files needed at runtime.
  • The package does not contain secrets, local credentials, .env files, .git directories, virtual environments, caches, logs, or IDE files.
  • The package does not contain executables or bundled binaries, or I explained why they are required below.
  • The plugin README includes setup steps, usage instructions, required APIs or credentials, connection requirements, and the source repository link.
  • The plugin includes PRIVACY.md or a hosted privacy policy, and manifest.yaml references it.
  • All user-facing text is primarily in English, with any localized README files following the i18n guidance.

Security and privacy notes

Unchanged from 0.1.0:

  • Network: outbound HTTPS requests to one fixed host only, precleared.dev, declared under network.domains in manifest.yaml: POST /api/v1/check, GET /api/v1/receipt and GET /api/v1/key. Users cannot change the destination, and there is no arbitrary URL fetching. Requests time out after 35 seconds, with 10 seconds to connect.
  • Data sent: the check sends the recipient's email address or domain and only the optional fields the user sets (sender country, address source, pitch, recipient country, fallback country, UK company number, pitch relevant, existing customer, suppressed). This is personal data, but not a sensitive category. Precleared stores each check and a signed receipt; receipts show the address masked. The receipt tool sends only the receipt ID. Details are in PRIVACY.md.
  • Credentials: a required Precleared API key (secret-input), sent only in the Authorization header to precleared.dev. It is validated with GET /api/v1/key, which uses none of the user's allowance. The key is never logged, and it is redacted from any message the plugin returns. Errors come back as plain messages without credentials.
  • Input constraints: a recipient email or domain is required; country codes must be two letters; sender country (GB, US or AE) and address source are fixed lists; receipt IDs must match cc_rcpt_ followed by 16 capital letters or digits. All of these are checked before any request is made.
  • Not present: no command or code execution, SQL, file operations, browser automation, user-controlled URLs or financial actions.

Local validation

cd integrations/dify
python -m pytest -q tests
45 passed
  • The 45 unit tests use mocked HTTP: both tools, every error code (400, 401, 402, 404, 429, 5xx, timeouts), the email-or-domain rule, credential validation and the new sender country (the 44 from 0.1.0 plus one).
  • One of them loads the plugin through dify_plugin 0.10.2's PluginRegistration, so every YAML file validates against the SDK models.
  • The package holds the same 15 files as the 0.1.0 package, in the same layout.
  • I didn't run the marketplace toolkit's validator locally for this version, so I'm relying on this repository's checks for it.

Reviewer notes

Disclosure: I built Precleared, and I wrote this with help from Claude.

Limitation, as with 0.1.0: tested with the unit tests and the SDK loader above, but not yet inside a running Dify workspace (Community Edition or Cloud).

🤖 Generated with Claude Code

https://claude.ai/code/session_01FQdvgNwwnTYBHUGD2dPwFh

Adds the United Arab Emirates (AE) as a sender country.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01FQdvgNwwnTYBHUGD2dPwFh
@github-actions github-actions Bot added the risk: medium Medium-risk Marketplace submission label Oct 27, 2026

@crazywoola crazywoola left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@crazywoola
crazywoola merged commit 63bdd68 into langgenius:main Oct 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk: medium Medium-risk Marketplace submission

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants