Files
ServerKit/builtin-extensions/serverkit-wordpress/plugin.json
T
Juan DenisandClaude Opus 4.8 39d21f7a46 feat(extensions): Phase 5 — WordPress UI contributed by serverkit-wordpress
Completes #38: the WordPress frontend now belongs to the extension too, not just
the backend. The tab-group constraint (contributed routes are flat — there's no
way to contribute a shared TabGroupLayout parent inside the dashboard) is solved
by contributing a SINGLE splat route `wordpress/*` whose component
(WordPressExtension) self-renders the whole WordPress sub-router — reproducing the
exact structure core App.jsx used to own:
  - TabGroupLayout + WORDPRESS_TABS over the 3 list pages (sites / plugin library /
    pipelines),
  - full-bleed site + pipeline detail routes as siblings,
  - the legacy /wordpress/projects → /wordpress/pipelines deprecation redirects.

The 5 page components stay in core pages/ and are re-used (Pattern A, same as
serverkit-git/email/workflows); only the routing + nav/palette/title ownership
moves into the manifest.

- builtin-extensions/serverkit-wordpress/frontend/index.jsx (source) → synced to
  frontend/src/plugins/serverkit-wordpress/ (pre-bundled, D5) via
  scripts/sync-builtin-frontends.mjs (drift check green).
- plugin.json contributions: nav (WordPress), routes ([{path:"wordpress/*",
  component:"WordPressExtension"}]), page_titles, command_palette.
- Core App.jsx: removed the WordPress imports, the TabGroupLayout WORDPRESS_TABS
  route block, the detail routes, LegacyWpPipelineRedirect, and the now-unused
  ModuleRoute + WORDPRESS_TABS imports (kept the dynamic /wordpress/ title
  fallbacks). Removed the sidebar nav item and the two command-palette entries.
  WordPress now disappears cleanly (nav+routes+API) when the extension is
  uninstalled.

Verified: npm run lint (0 errors) + npm run build clean; the screenshots skill
renders /wordpress/42 correctly (visually confirmed — full detail page, Overview
tab, sidebar item active); backend flagship still seeds/loads (has_frontend now
true) with tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 00:50:10 -04:00

57 lines
2.5 KiB
JSON

{
"name": "serverkit-wordpress",
"display_name": "WordPress",
"version": "1.0.0",
"description": "The full WordPress suite — site provisioning, plugin library, environments/pipelines, updates, security hardening, vulnerability scanning, analytics and reports. Ships bundled and installed by default (a flagship), and can be uninstalled to slim the core.",
"author": "ServerKit",
"license": "MIT",
"category": "integration",
"homepage": "https://github.com/jhd3197/ServerKit",
"permissions": ["shell", "filesystem", "network", "docker", "database"],
"min_panel_version": "1.7.0",
"entry_point": "wordpress:wordpress_bp",
"url_prefix": "/api/v1/wordpress",
"extra_blueprints": [
{
"module": "wordpress_sites",
"attr": "wordpress_sites_bp",
"url_prefix": "/api/v1/wordpress"
},
{
"module": "environment_pipeline",
"attr": "environment_pipeline_bp",
"url_prefix": "/api/v1/wordpress/projects"
},
{
"module": "environment_pipeline",
"attr": "environment_pipeline_bp",
"url_prefix": "/api/v1/wordpress/pipelines",
"name": "environment_pipeline_pipelines"
}
],
"icon": "<path d=\"M12 2a10 10 0 100 20 10 10 0 000-20zm-8 10a8 8 0 011.4-4.5l4.7 12.9A8 8 0 014 12zm8 8c-.8 0-1.6-.1-2.3-.3l2.4-7 2.5 6.8.1.1A8 8 0 0112 20zm1.1-11.8c.5 0 .9-.1.9-.1.4 0 .4-.6-.1-.6 0 0-1.4.1-2.3.1-.8 0-2.2-.1-2.2-.1-.5 0-.6.6-.1.6 0 0 .4.1.9.1l1.3 3.6-1.9 5.6L6.6 8.2c.5 0 .9-.1.9-.1.4 0 .4-.6-.1-.6 0 0-1.4.1-2.3.1h-.4A8 8 0 0112 4a8 8 0 016.5 3.3h-.3c-.8 0-1.4.7-1.4 1.5 0 .7.4 1.3.8 2 .3.6.7 1.3.7 2.3 0 .7-.3 1.6-.6 2.7l-.8 2.7-2.9-8.8z\"/>",
"contributions": {
"nav": [
{
"id": "wordpress",
"label": "WordPress",
"route": "/wordpress",
"category": "infrastructure",
"icon": "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"/><path d=\"M3.5 9h17M3.5 15h17\"/>"
}
],
"routes": [
{ "path": "wordpress/*", "component": "WordPressExtension" }
],
"page_titles": {
"/wordpress": "WordPress Sites",
"/wordpress/plugins/library": "WordPress Plugin Library",
"/wordpress/pipelines": "WordPress Pipelines"
},
"command_palette": [
{ "label": "WordPress", "path": "/wordpress", "category": "Pages", "keywords": "wp sites" },
{ "label": "WordPress Pipelines", "path": "/wordpress/pipelines", "category": "Pages", "keywords": "wp environments projects pipeline" }
]
}
}