From 265908b05b3d50d61708ed19d57ccfeb0f322a87 Mon Sep 17 00:00:00 2001 From: Linus Rath <139418639+rathlinus@users.noreply.github.com> Date: Tue, 5 May 2026 20:17:45 +0200 Subject: [PATCH] fix: resolve PLUGIN_DEV_DIR plugins in admin config route --- app/api/admin/plugins/[id]/config/route.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/api/admin/plugins/[id]/config/route.ts b/app/api/admin/plugins/[id]/config/route.ts index b8ea0029..7b2dfbf5 100644 --- a/app/api/admin/plugins/[id]/config/route.ts +++ b/app/api/admin/plugins/[id]/config/route.ts @@ -1,9 +1,18 @@ import { NextRequest, NextResponse } from 'next/server'; import { getPlugin } from '@/lib/admin/plugin-registry'; +import { getDevPlugin } from '@/lib/admin/plugin-dev'; import { getPluginConfig, setPluginConfig, deletePluginConfigKey } from '@/lib/admin/plugin-config'; import { requireAdminAuth } from '@/lib/admin/session'; import { getStalwartCredentials } from '@/lib/stalwart/credentials'; +/** Resolve a plugin from the persisted registry first, then PLUGIN_DEV_DIR. */ +async function resolvePlugin(id: string) { + const registered = await getPlugin(id); + if (registered) return registered; + const dev = await getDevPlugin(id); + return dev?.plugin ?? null; +} + /** * GET /api/admin/plugins/[id]/config - Read plugin config * @@ -35,7 +44,7 @@ export async function GET( } } - const plugin = await getPlugin(id); + const plugin = await resolvePlugin(id); if (!plugin) { return NextResponse.json({ error: 'Plugin not found' }, { status: 404 }); } @@ -80,7 +89,7 @@ export async function PUT( return NextResponse.json({ error: 'Invalid plugin ID' }, { status: 400 }); } - const plugin = await getPlugin(id); + const plugin = await resolvePlugin(id); if (!plugin) { return NextResponse.json({ error: 'Plugin not found' }, { status: 404 }); }