Skip to content

Add embedded plugin directory mode#225

Open
thgO-O wants to merge 5 commits into
masterfrom
feature/plugins-embed-mode
Open

Add embedded plugin directory mode#225
thgO-O wants to merge 5 commits into
masterfrom
feature/plugins-embed-mode

Conversation

@thgO-O
Copy link
Copy Markdown
Collaborator

@thgO-O thgO-O commented May 21, 2026

Summary

Adds an embedded mode for the public plugin directory so BTCPay Server can render the Plugin Builder catalog inside Manage Plugins.

Changes

  • Adds embed=1 support for the public directory list.
  • Adds embedded plugin details rendering for BTCPay drawer usage.
  • Supports host context messages for hidden plugin identifiers, selected plugin, color mode, BTCPay version, and pre-release state.
  • Filters installed/disabled plugins from the embedded directory.
  • Keeps the standalone public directory unchanged.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 21, 2026

Review Change Stack

Warning

Rate limit exceeded

@thgO-O has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 49 minutes and 7 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 173cc72e-d5b2-4248-bfd1-a628e8d68215

📥 Commits

Reviewing files that changed from the base of the PR and between 1dbdf20 and e60d418.

📒 Files selected for processing (2)
  • PluginBuilder/Views/Home/AllPlugins.cshtml
  • PluginBuilder/Views/Home/GetPluginDetails.cshtml

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key(s) in object: 'auto_resolve_threads'
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Walkthrough

This PR implements iframe embedding support for the plugin directory and individual plugin details pages. The embed=1 query parameter enables embed mode globally: the layout applies CSS styling, hides the public header, and loads the embed script; views render with embed-aware routing and hide certain UI elements (sign-in prompt, download button); review actions propagate the embed context through redirects; and a new client-side script handles height reporting and parent-host communication for dynamic filtering and theming.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • btcpayserver/btcpayserver-plugin-builder#119: Updates sort parameter handling and sort dropdown controls in AllPlugins.cshtml and HomeController.AllPlugins, overlapping with this PR's changes to preserve the embed query when submitting/sorting.
  • btcpayserver/btcpayserver-plugin-builder#107: Modifies VoteReview and DeleteReview actions in HomeController.cs for routing/redirect behavior, directly overlapping with this PR's addition of the embed flag to those same action signatures.

Suggested reviewers

  • rockstardev
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding embedded plugin directory mode functionality across the codebase.
Description check ✅ Passed The description is well-related to the changeset, providing a clear summary of the embedded mode feature, changes made, and noting that the standalone directory remains unchanged.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/plugins-embed-mode

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant