Files
Juan DenisandClaude Opus 4.8 95681f8b80 refactor(status): extract status-pages backend into serverkit-status extension
Plan 47 Phase 2. The status-pages blueprint (public /status/<slug> + /badge +
authenticated management API) and its service move into
builtin-extensions/serverkit-status/backend/ (entry_point status_pages:
status_pages_bp, url_prefix unchanged). Core no longer registers /api/v1/status
(management) or imports the service; the unused /api/v1/observability/status-pages
alias is dropped. The StatusPage/StatusComponent/etc models stay core (G2). The
public status/badge pages work whenever the extension is installed.

The core WordPress health-check job (run_health_checks) now reaches
StatusPageService.sync_component_from_health via get_installed_extension_attr and
no-ops cleanly on a lean panel.

Tests: test_status_extraction.py (8) — extraction shape, install=routes,
health-job no-op, relocated status-page mutation + component-check authz.
Adjusted test_observability_namespace + test_api_authz_hardening accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 22:34:24 -04:00

39 lines
1.3 KiB
JSON

{
"name": "serverkit-status",
"display_name": "Status Pages",
"version": "1.0.0",
"description": "Public status pages backed by uptime monitors, with the management UI as a tab in the Observability group. Installing the extension serves the public /status/<slug> and /status/badge/<slug> pages too.",
"author": "ServerKit",
"license": "MIT",
"category": "monitoring",
"homepage": "https://github.com/jhd3197/ServerKit",
"permissions": [],
"entry_point": "status_pages:status_pages_bp",
"url_prefix": "/api/v1/status",
"icon": "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\"/><path d=\"M2 12h20\"/>",
"contributions": {
"tabs": [
{
"group": "monitoring",
"to": "/status-pages",
"label": "Status Pages",
"icon": "<circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\"/><path d=\"M2 12h20\"/>"
}
],
"routes": [
{ "path": "status-pages", "component": "StatusPagesPage", "group": "monitoring" }
],
"page_titles": {
"/status-pages": "Status Pages"
},
"command_palette": [
{
"label": "Status Pages",
"path": "/status-pages",
"category": "Pages",
"keywords": "uptime incidents public status"
}
]
}
}