mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-30 06:15:18 +01:00
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
|
|
const express = require('express');
|
||
|
|
const { generateCheckAccess, createApiKeyHandlers } = require('@librechat/api');
|
||
|
|
const { PermissionTypes, Permissions } = require('librechat-data-provider');
|
||
|
|
const {
|
||
|
|
getAgentApiKeyById,
|
||
|
|
createAgentApiKey,
|
||
|
|
deleteAgentApiKey,
|
||
|
|
listAgentApiKeys,
|
||
|
|
} = require('~/models');
|
||
|
|
const { requireJwtAuth } = require('~/server/middleware');
|
||
|
|
const { getRoleByName } = require('~/models/Role');
|
||
|
|
|
||
|
|
const router = express.Router();
|
||
|
|
|
||
|
|
const handlers = createApiKeyHandlers({
|
||
|
|
createAgentApiKey,
|
||
|
|
listAgentApiKeys,
|
||
|
|
deleteAgentApiKey,
|
||
|
|
getAgentApiKeyById,
|
||
|
|
});
|
||
|
|
|
||
|
|
const checkRemoteAgentsUse = generateCheckAccess({
|
||
|
|
permissionType: PermissionTypes.REMOTE_AGENTS,
|
||
|
|
permissions: [Permissions.USE],
|
||
|
|
getRoleByName,
|
||
|
|
});
|
||
|
|
|
||
|
|
router.post('/', requireJwtAuth, checkRemoteAgentsUse, handlers.createApiKey);
|
||
|
|
|
||
|
|
router.get('/', requireJwtAuth, checkRemoteAgentsUse, handlers.listApiKeys);
|
||
|
|
|
||
|
|
router.get('/:id', requireJwtAuth, checkRemoteAgentsUse, handlers.getApiKey);
|
||
|
|
|
||
|
|
router.delete('/:id', requireJwtAuth, checkRemoteAgentsUse, handlers.deleteApiKey);
|
||
|
|
|
||
|
|
module.exports = router;
|