feat: add marketplace packaging for first-party plugins and enable marketplace in templates#368
Conversation
…rketplace in templates Plugin marketplace packaging: - audit-log: added icon.png and README.md for marketplace listing - atproto: added icon.png and README.md for marketplace listing - webhook-notifier: added icon.png and README.md for marketplace listing (all three already had sandbox entries and exports, making them marketplace-ready for the existing seed workflow) Template marketplace configuration: - marketing-cloudflare: added sandboxRunner and marketplace URL - portfolio-cloudflare: added sandboxRunner and marketplace URL - starter-cloudflare: added sandboxRunner and marketplace URL (blog-cloudflare already had both configured) The existing deploy-marketplace.yml CI workflow will automatically bundle and publish these plugins on merge to main. No workflow changes needed.
|
@emdash-cms/admin
@emdash-cms/auth
@emdash-cms/blocks
@emdash-cms/cloudflare
emdash
create-emdash
@emdash-cms/gutenberg-to-portable-text
@emdash-cms/x402
@emdash-cms/plugin-ai-moderation
@emdash-cms/plugin-atproto
@emdash-cms/plugin-audit-log
@emdash-cms/plugin-color
@emdash-cms/plugin-embeds
@emdash-cms/plugin-forms
@emdash-cms/plugin-webhook-notifier
commit: |
There was a problem hiding this comment.
Pull request overview
Prepares first-party plugins for EmDash Marketplace publishing by adding required listing assets (README + icon) and enables marketplace support in Cloudflare-based Astro templates by configuring sandboxRunner and marketplace in emdash() integration config.
Changes:
- Enable marketplace support in
marketing-cloudflare,portfolio-cloudflare, andstarter-cloudflaretemplates viasandboxRunner: sandbox()+ marketplace URL. - Add
README.md+icon.pngassets foraudit-log,atproto, andwebhook-notifierplugins to support marketplace listings. - Align Cloudflare template config with the existing
blog-cloudflarepattern for marketplace configuration.
Reviewed changes
Copilot reviewed 6 out of 9 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| templates/starter-cloudflare/astro.config.mjs | Adds Cloudflare sandbox runner + marketplace URL to enable marketplace UI/features in the template. |
| templates/portfolio-cloudflare/astro.config.mjs | Adds Cloudflare sandbox runner + marketplace URL to enable marketplace UI/features in the template. |
| templates/marketing-cloudflare/astro.config.mjs | Adds Cloudflare sandbox runner + marketplace URL to enable marketplace UI/features in the template. |
| packages/plugins/webhook-notifier/README.md | Adds marketplace README content (currently contains capability/feature/install guidance mismatches vs implementation/CLI). |
| packages/plugins/webhook-notifier/icon.png | Adds plugin icon asset for marketplace bundling/publishing. |
| packages/plugins/audit-log/README.md | Adds marketplace README content (currently lists features not implemented + references a non-existent CLI install command). |
| packages/plugins/audit-log/icon.png | Adds plugin icon asset for marketplace bundling/publishing. |
| packages/plugins/atproto/README.md | Adds marketplace README content (capabilities/install section needs alignment with actual descriptor/CLI). |
| packages/plugins/atproto/icon.png | Adds plugin icon asset for marketplace bundling/publishing. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Template sandbox runtime: - All 4 Cloudflare templates now have src/worker.ts re-exporting PluginBridge from @emdash-cms/cloudflare/sandbox - All 4 wrangler.jsonc files updated with "main": "./src/worker.ts" and worker_loaders LOADER binding - Without this, sandboxRunner: sandbox() silently fails and marketplace plugin installs return SANDBOX_NOT_AVAILABLE - blog-cloudflare had the same gap (pre-existing, fixed here) README accuracy: - audit-log: removed media deletion (not implemented) and retention settings (not implemented), removed nonexistent CLI install command - atproto: fixed capability from network:fetch to network:fetch:any, removed nonexistent CLI install command - webhook-notifier: corrected to single URL + token (not multiple endpoints), removed custom headers claim, removed nonexistent CLI install command, added actual settings (events filter, includeData)
Overlapping PRsThis PR modifies files that are also changed by other open PRs: This may cause merge conflicts or duplicated work. A maintainer will coordinate. |
What does this PR do?
Prepares three first-party plugins for marketplace publishing and enables marketplace support in three Cloudflare templates that were missing it.
The existing
deploy-marketplace.ymlCI workflow already handles bundling and publishing plugins with sandbox entries on merge to main. This PR just adds the missing assets (icons, READMEs) and template config so that:Type of change
Checklist
pnpm typecheckpassespnpm --silent lint:json | jq '.diagnostics | length'returns 0 (1 pre-existing warning in router.tsx)pnpm testpassespnpm formathas been runAI-generated code disclosure
Changes
Plugin marketplace packaging
Three plugins that already have sandbox entries and exports now have the assets needed for marketplace listing:
audit-logicon.png,README.mdatprotoicon.png,README.mdwebhook-notifiericon.png,README.mdIcons are placeholder (copied from marketplace-test) and should be replaced with proper branding.
Template marketplace configuration
Three Cloudflare templates now have
sandboxRunnerandmarketplaceconfigured:marketing-cloudflaresandbox()import,sandboxRunner: sandbox(),marketplaceURLportfolio-cloudflarestarter-cloudflareblog-cloudflarealready had both configured.Non-Cloudflare templates (
blog,marketing,portfolio,starter,blank) are not changed because they lack the Dynamic Workers sandbox required for marketplace plugins.CI workflow
No changes needed. The existing
deploy-marketplace.ymlworkflow already:emdash plugin publish --buildpackages/plugins/**changesNot included in this PR
Screenshots / test output
No visual changes. Template config changes are build-time only.