implement server plugin system

This commit is contained in:
Nystik
2026-03-26 23:55:12 +01:00
parent 80bf7436d9
commit c32ade2f65
7 changed files with 446 additions and 1 deletions

44
server/routes/plugins.js Normal file
View File

@@ -0,0 +1,44 @@
const express = require("express");
const {
getDiscoveredPlugins,
enablePluginForVault,
disablePluginForVault,
} = require("../plugin-system/manager");
const router = express.Router();
router.get("/", (req, res) => {
res.json(getDiscoveredPlugins());
});
router.post("/:pluginId/enable", async (req, res) => {
const vaultId = req.body?.vault;
if (!vaultId) {
return res.status(400).json({ error: "Missing vault ID" });
}
try {
await enablePluginForVault(req.params.pluginId, vaultId);
res.json({ ok: true });
} catch (e) {
res.status(400).json({ error: e.message });
}
});
router.post("/:pluginId/disable", async (req, res) => {
const vaultId = req.body?.vault;
if (!vaultId) {
return res.status(400).json({ error: "Missing vault ID" });
}
try {
await disablePluginForVault(req.params.pluginId, vaultId);
res.json({ ok: true });
} catch (e) {
res.status(400).json({ error: e.message });
}
});
module.exports = router;