mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-06-28 18:31:24 +00:00
* fix(rum): isolate telemetry proxy auth * feat(rum): track proxy error metrics * refactor(rum): simplify proxy auth strategy flow * test(rum): clarify proxy success metric assertion * test(metrics): use typed supertest import * test(metrics): add local supertest types * test(metrics): keep supertest types local * test(metrics): use official supertest types * fix(rum): log proxy auth strategy errors * fix(rum): classify proxy auth errors in metrics * style(rum): sort telemetry metric imports * ci: mention import sort check command * ci: show targeted import sort example
28 lines
790 B
JavaScript
28 lines
790 B
JavaScript
const express = require('express');
|
|
const { getRumProxyBodyLimit, isRumProxyEnabled, proxyRumRequest } = require('@librechat/api');
|
|
const { requireRumProxyAuth } = require('~/server/middleware');
|
|
|
|
const router = express.Router();
|
|
const rawOtlpBody = express.raw({
|
|
limit: getRumProxyBodyLimit(),
|
|
type: ['application/x-protobuf', 'application/octet-stream'],
|
|
});
|
|
|
|
function requireRumProxyEnabled(_req, res, next) {
|
|
if (!isRumProxyEnabled()) {
|
|
return res.status(404).json({ message: 'RUM proxy is not configured' });
|
|
}
|
|
|
|
return next();
|
|
}
|
|
|
|
router.post(
|
|
'/v1/traces',
|
|
requireRumProxyEnabled,
|
|
requireRumProxyAuth,
|
|
rawOtlpBody,
|
|
proxyRumRequest,
|
|
);
|
|
router.post('/v1/logs', requireRumProxyEnabled, requireRumProxyAuth, rawOtlpBody, proxyRumRequest);
|
|
|
|
module.exports = router;
|