mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-09-21 07:36:25 +00:00
* feat: add Mongo-backed admin insights * feat: gate insights with environment variable * fix: tighten insights access and activity metrics * fix: preserve insights date selections * perf: parallelize insights search aggregation * test: wait for MCP conflict recovery * test: satisfy strict MCP recovery typing * fix: disable insights pagination while loading * fix: localize insights range shortcuts * fix: bound insights search input
17 lines
933 B
JavaScript
17 lines
933 B
JavaScript
const express = require('express');
|
|
const { createInsightsAccessHandler, createInsightsHandler, isEnabled } = require('@librechat/api');
|
|
const { SystemCapabilities } = require('@librechat/data-schemas');
|
|
const { requireJwtAuth, checkAdmin } = require('~/server/middleware');
|
|
const { requireCapability } = require('~/server/middleware/roles/capabilities');
|
|
const db = require('~/models');
|
|
|
|
const router = express.Router();
|
|
const requireAdminAccess = requireCapability(SystemCapabilities.ACCESS_ADMIN);
|
|
const requireInsightsAccess = requireCapability(SystemCapabilities.READ_INSIGHTS);
|
|
const isInsightsEnabled = () => isEnabled(process.env.ENABLE_INSIGHTS);
|
|
|
|
router.use(requireJwtAuth, checkAdmin, requireAdminAccess, requireInsightsAccess);
|
|
router.get('/access', createInsightsAccessHandler({ isInsightsEnabled }));
|
|
router.get('/', createInsightsHandler({ isInsightsEnabled, getInsights: db.getInsights }));
|
|
|
|
module.exports = router;
|