LibreChat/api/server/routes/rum.js
Ravi Kumar L fbc990f684
📈 fix: Isolate RUM Telemetry Proxy Auth from App Auth (#13765)
* 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
2026-06-15 12:49:44 -04:00

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;