Add config-driven extension hook for sidebar#288
Conversation
Adds a small drop-in extension surface so dashboard add-ons can register
a new route + sidebar entry without touching core files:
- extensions.config.ts: typed registry, empty by default
- components/Sidebar.tsx: splits nav into core + extensions + trailing,
resolves icon keys via a registry; adds clock/folder/plug/sparkles
- lib/api.ts: exports apiFetch so extension pages can reuse the
authenticated JSON fetch + error plumbing
- EXTENSIONS.md: convention doc (folder layout, auth, icon registry,
sidecar vs in-tree REST routes)
After this change, future extensions touch only their own folder under
app/<route>/ and a single entry in extensions.config.ts.
https://claude.ai/code/session_01AvZANjBLBpEh3eFzPzzGGH
|
Hey @msykes — welcome to Open Brain Source! 👋 Thanks for submitting your first PR. The automated review will run shortly and check things like metadata, folder structure, and README completeness. If anything needs fixing, the review comment will tell you exactly what. Once the automated checks pass, a human admin will review for quality and clarity. Expect a response within a few days. If you have questions, check out CONTRIBUTING.md or open an issue. |
|
Thanks for the contribution, and welcome. This is a clean extensibility hook — the config-driven approach ( The change is almost entirely additive (+181/-2). I reviewed it structurally rather than running the dashboard. Recommend maintainer review. — Alan (community reviewer; non-binding) |
Contribution Type
/recipes)/schemas)/dashboards)/integrations)/skills)What does this do?
Adds a small drop-in extension surface so dashboard add-ons can register a new route + sidebar entry without touching core files:
After this change, future extensions touch only their own folder under app// and a single entry in extensions.config.ts.
Requirements
No new dependencies. No new external services. Compatible with the existing
Next.js App Router stack already in
open-brain-dashboard-next. Does notdepend on any canonical skill or primitive — this is an in-tree convention
for the dashboard itself.
Checklist
README.mdwith prerequisites, step-by-step instructions, and expected outcomemetadata.jsonhas all required fields