github analyzed 8154a31

danny-avila/LibreChat

github

Enhanced ChatGPT Clone: Features Agents, MCP, Skills, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. Active

maintainer
danny-avila
license
MIT
first seen
2026-05-22
last seen
2026-06-14
releases · 30d
1
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution ×4 in danny-avila/LibreChat
  2. HIGH code analysis flagged dynamic code execution ×4 in danny-avila/LibreChat
  3. HIGH code analysis flagged dynamic code execution ×4 in danny-avila/LibreChat
  4. HIGH code analysis flagged committed secret ×4, dynamic code execution ×5 in danny-avila/LibreChat
capabilities0 tools
transport stdio · streamable-http · http · sse counts 0 tools · 0 res · 0 prompts permission surface via code analysis

no tools enumerated yet for this server.

skills & danger signalsgithub-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 8154a31 · analyzer v17 · 23h ago

skills & prompt files 3

danger signals2

code evidencevv0.8.6 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 54

  • fs danny-avila-LibreChat-8154a31/.do/gitnexus/install-extensions.js :13 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/StableDiffusion.js :2 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/config/meiliLogger.js :2 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/config/winston.js :2 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/controllers/agents/v1.js :2 const fs = require('fs').promises;
  • fs danny-avila-LibreChat-8154a31/api/server/controllers/assistants/v1.js :1 const fs = require('fs').promises;
  • fs danny-avila-LibreChat-8154a31/api/server/experimental.js :2 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/index.js :2 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/routes/files/avatar.js :1 const fs = require('fs').promises;
  • fs danny-avila-LibreChat-8154a31/api/server/routes/files/files.js :1 const fs = require('fs').promises;
  • fs danny-avila-LibreChat-8154a31/api/server/routes/files/images.js :2 const fs = require('fs').promises;
  • fs danny-avila-LibreChat-8154a31/api/server/routes/files/multer.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Config/loadAsyncEndpoints.js :2 const fs = require('fs/promises');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/Audio/STTService.js :2 const fs = require('fs').promises;
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/Azure/crud.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/Azure/images.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/Firebase/crud.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/Firebase/images.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/Local/crud.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/Local/images.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/OpenAI/crud.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/VectorDB/crud.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/images/avatar.js :2 const fs = require('fs').promises;
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/images/convert.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/Files/process.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/services/start/tools.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/server/utils/import/importConversations.js :1 const fs = require('fs').promises;
  • fs danny-avila-LibreChat-8154a31/api/strategies/ldapStrategy.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/api/strategies/samlStrategy.js :1 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/client/vite.config.ts :2 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/config/flush-cache.js :16 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/config/helpers.js :5 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/config/packages.js :3 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/config/smart-reinstall.js :25 const fs = require('fs');
  • fs danny-avila-LibreChat-8154a31/config/translations/comparisons.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/config/translations/embeddings.ts :8 import * as fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/config/translations/instructions.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/config/translations/keys.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/config/translations/main.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/config/translations/process.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/config/translations/scan.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/cache/cacheConfig.ts :1 import { readFileSync, existsSync } from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/files/audio.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/files/code/extract.ts :3 import * as fs from 'fs/promises';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/files/documents/crud.ts :1 import * as fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/files/documents/libreoffice.ts :4 import { mkdtemp, readFile, rm, writeFile } from 'fs/promises';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/files/mistral/crud.ts :1 import * as fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/files/text.ts :3 import { createReadStream } from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/middleware/tenant.ts :1 import { unlink } from 'fs/promises';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/skills/deployment.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/storage/images.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/storage/s3/crud.ts :1 import fs from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/utils/files.ts :3 import { createReadStream } from 'fs';
  • fs danny-avila-LibreChat-8154a31/packages/api/src/utils/yaml.ts :1 import fs from 'fs';

shell / exec 13

  • shell danny-avila-LibreChat-8154a31/api/server/experimental.js :57 /** Number of worker processes to spawn (simulating multiple pods) */
  • shell danny-avila-LibreChat-8154a31/api/server/routes/config.js :33 * request does not pay the cost of `execFileSync('git', ...)` on the hot path.
  • shell danny-avila-LibreChat-8154a31/config/deployed-update.js :1 const { execSync } = require('child_process');
  • shell danny-avila-LibreChat-8154a31/config/helpers.js :8 const { execSync } = require('child_process');
  • shell danny-avila-LibreChat-8154a31/config/packages.js :5 const { execSync } = require('child_process');
  • shell danny-avila-LibreChat-8154a31/config/prepare.js :1 const { exec } = require('child_process');
  • shell danny-avila-LibreChat-8154a31/config/smart-reinstall.js :27 const { execSync } = require('child_process');
  • shell danny-avila-LibreChat-8154a31/config/stop-backend.js :2 const { exec } = require('child_process');
  • shell danny-avila-LibreChat-8154a31/config/translations/comparisons.ts :3 import { exec } from 'child_process';
  • shell danny-avila-LibreChat-8154a31/config/update.js :4 const { execSync } = require('child_process');
  • shell danny-avila-LibreChat-8154a31/packages/api/src/app/build.ts :1 import { execFileSync } from 'child_process';
  • shell danny-avila-LibreChat-8154a31/packages/api/src/files/documents/libreoffice.ts :3 import { spawn } from 'child_process';
  • shell danny-avila-LibreChat-8154a31/packages/data-provider/src/config.ts :2577 /** Key for target level fork (default) */

network 68

  • net danny-avila-LibreChat-8154a31/api/app/clients/BaseClient.js :2 const fetch = require('node-fetch');
  • net danny-avila-LibreChat-8154a31/api/app/clients/OllamaClient.js :2 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/app/clients/prompts/createContextHandlers.js :1 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/DALLE3.js :4 const { ProxyAgent, fetch } = require('undici');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/FluxAPI.js :1 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/GeminiImageGen.js :4 const { ProxyAgent } = require('undici');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/GoogleSearch.js :58 const response = await fetch(
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/OpenAIImageTools.js :1 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/OpenWeather.js :1 const fetch = require('node-fetch');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/StableDiffusion.js :4 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/TavilySearch.js :2 const { ProxyAgent, fetch } = require('undici');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/TavilySearchResults.js :1 const { ProxyAgent, fetch } = require('undici');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/TraversaalSearch.js :55 const response = await fetch('https://api-ares.traversaal.ai/live/predict', {
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/Wolfram.js :2 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/app/clients/tools/util/fileSearch.js :1 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/experimental.js :8 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/index.js :6 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/middleware/moderateText.js :1 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/services/Config/loadCustomConfig.js :2 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/services/Endpoints/assistants/initalize.js :2 const { ProxyAgent } = require('undici');
  • net danny-avila-LibreChat-8154a31/api/server/services/Endpoints/azureAssistants/initialize.js :2 const { ProxyAgent } = require('undici');
  • net danny-avila-LibreChat-8154a31/api/server/services/Files/Audio/STTService.js :1 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/services/Files/Audio/TTSService.js :1 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/services/Files/Azure/crud.js :4 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/services/Files/Firebase/crud.js :3 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/services/Files/Local/crud.js :3 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/services/Files/VectorDB/crud.js :2 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/services/Files/images/avatar.js :3 const fetch = require('node-fetch');
  • net danny-avila-LibreChat-8154a31/api/server/services/Files/images/encode.js :1 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/services/Runs/methods.js :1 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/server/utils/sendEmail.js :2 const axios = require('axios');
  • net danny-avila-LibreChat-8154a31/api/strategies/openidStrategy.js :1 const undici = require('undici');
  • net danny-avila-LibreChat-8154a31/client/src/components/Chat/Input/StreamAudio.tsx :97 const response = await fetch('/api/files/speech/tts', {
  • net danny-avila-LibreChat-8154a31/client/src/components/Chat/Messages/Content/DialogImage.tsx :60 const response = await fetch(url, { method: 'HEAD' });
  • net danny-avila-LibreChat-8154a31/client/src/components/Chat/Messages/Content/FilePreviewDialog.tsx :170 const resp = await fetch(result.data);
  • net danny-avila-LibreChat-8154a31/client/src/components/Chat/Messages/Content/Image.tsx :68 const response = await fetch(absoluteImageUrl);
  • net danny-avila-LibreChat-8154a31/client/src/data-provider/Files/sharepoint.ts :45 const response = await fetch(downloadUrl, {
  • net danny-avila-LibreChat-8154a31/client/src/data-provider/SSE/queries.ts :179 // transition re-promotes a fresh fetch (instead of busy-looping).
  • net danny-avila-LibreChat-8154a31/client/src/hooks/SSE/useEventHandlers.ts :1005 const response = await fetch(`${EndpointURLs[endpoint ?? '']}/abort`, {
  • net danny-avila-LibreChat-8154a31/client/src/hooks/useInfiniteScroll.ts :8 threshold?: number; // Percentage of scroll position to trigger fetch (0-1)
  • net danny-avila-LibreChat-8154a31/client/src/utils/errors.ts :1 import axios from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/api/src/app/checks.ts :144 const response = await fetch(`${process.env.RAG_API_URL}/health`);
  • net danny-avila-LibreChat-8154a31/packages/api/src/app/shutdown.ts :2 import type { Server } from 'http';
  • net danny-avila-LibreChat-8154a31/packages/api/src/auth/agent.ts :2 import http from 'node:http';
  • net danny-avila-LibreChat-8154a31/packages/api/src/endpoints/anthropic/llm.ts :1 import { Dispatcher, ProxyAgent } from 'undici';
  • net danny-avila-LibreChat-8154a31/packages/api/src/endpoints/custom/initialize.ts :141 // When `endpointConfig.headers` will be forwarded to the model fetch (i.e.
  • net danny-avila-LibreChat-8154a31/packages/api/src/endpoints/models.ts :1 import axios from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/api/src/endpoints/openai/config.ts :1 import { ProxyAgent } from 'undici';
  • net danny-avila-LibreChat-8154a31/packages/api/src/files/mistral/crud.ts :13 import type { AxiosError, AxiosRequestConfig } from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/api/src/files/rag.ts :1 import axios from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/api/src/files/text.ts :1 import axios from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/api/src/langfuse/feedback.ts :77 const res = await fetch(`${BASE}/api/public/scores/${encodeURIComponent(scoreId)}`, {
  • net danny-avila-LibreChat-8154a31/packages/api/src/mcp/connection.ts :1 import { isIP } from 'node:net';
  • net danny-avila-LibreChat-8154a31/packages/api/src/mcp/oauth/hardenedFetch.ts :1 import { Agent } from 'undici';
  • net danny-avila-LibreChat-8154a31/packages/api/src/middleware/remoteAgentAuth.ts :4 import { ProxyAgent, fetch as undiciFetch } from 'undici';
  • net danny-avila-LibreChat-8154a31/packages/api/src/oauth/tokens.ts :1 import axios from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/api/src/rum/proxy.ts :127 const response = await fetch(target, {
  • net danny-avila-LibreChat-8154a31/packages/api/src/storage/s3/crud.ts :554 const response = await fetch(URL);
  • net danny-avila-LibreChat-8154a31/packages/api/src/telemetry/sdk.ts :1 import { IncomingMessage } from 'node:http';
  • net danny-avila-LibreChat-8154a31/packages/api/src/types/anthropic.ts :2 import { Dispatcher } from 'undici';
  • net danny-avila-LibreChat-8154a31/packages/api/src/utils/axios.ts :1 import axios from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/api/src/utils/code.ts :1 import http from 'http';
  • net danny-avila-LibreChat-8154a31/packages/api/src/utils/generators.ts :1 import fetch from 'node-fetch';
  • net danny-avila-LibreChat-8154a31/packages/api/src/utils/key.ts :2 import axios from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/client/src/utils/cloudfront.ts :111 const response = await fetch(endpoint, {
  • net danny-avila-LibreChat-8154a31/packages/data-provider/src/actions.ts :3 import _axios from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/data-provider/src/data-service.ts :1 import type { AxiosResponse } from 'axios';
  • net danny-avila-LibreChat-8154a31/packages/data-provider/src/headers-helpers.ts :1 import axios from 'axios';

secrets 57

  • secrets danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/DALLE3.js :122 const apiKey = process.env.DALLE3_API_KEY ?? process.env.DALLE_API_KEY ?? '';
  • secrets danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/FluxAPI.js :168 const apiKey = process.env.FLUX_API_KEY || '';
  • secrets danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/GeminiImageGen.js :42 process.env.GOOGLE_SERVICE_KEY_FILE || path.join(process.cwd(), 'api', 'data', 'auth.json')
  • secrets danny-avila-LibreChat-8154a31/api/app/clients/tools/structured/OpenAIImageTools.js :71 const apiKey = process.env.IMAGE_GEN_OAI_API_KEY ?? '';
  • secrets danny-avila-LibreChat-8154a31/api/db/indexSync.js :23 if (!process.env.MEILI_HOST || !process.env.MEILI_MASTER_KEY) {
  • secrets danny-avila-LibreChat-8154a31/api/server/controllers/AuthController.js :71 if (!openidUserId || !process.env.JWT_REFRESH_SECRET) {
  • secrets danny-avila-LibreChat-8154a31/api/server/controllers/auth/TwoFactorAuthController.js :23 payload = jwt.verify(tempToken, process.env.JWT_SECRET);
  • secrets danny-avila-LibreChat-8154a31/api/server/controllers/auth/oauth.js :48 req.user.provider === 'openid' && isEnabled(process.env.OPENID_REUSE_TOKENS) === true
  • secrets danny-avila-LibreChat-8154a31/api/server/experimental.js :81 if (process.env.REDIS_PASSWORD) {
  • secrets danny-avila-LibreChat-8154a31/api/server/index.js :90 if (!process.env.METRICS_SECRET) {
  • secrets danny-avila-LibreChat-8154a31/api/server/middleware/limiters/twoFactorTempLimiter.js :45 const payload = jwt.verify(tempToken, process.env.JWT_SECRET);
  • secrets danny-avila-LibreChat-8154a31/api/server/middleware/moderateText.js :22 Authorization: `Bearer ${process.env.OPENAI_MODERATION_API_KEY}`,
  • secrets danny-avila-LibreChat-8154a31/api/server/middleware/optionalJwtAuth.js :16 isEnabled(process.env.OPENID_REUSE_TOKENS) &&
  • secrets danny-avila-LibreChat-8154a31/api/server/middleware/requireJwtAuth.js :20 if (!openidUserId || !process.env.JWT_REFRESH_SECRET) {
  • secrets danny-avila-LibreChat-8154a31/api/server/middleware/setTwoFactorTempUser.js :14 const payload = jwt.verify(tempToken, process.env.JWT_SECRET);
  • secrets danny-avila-LibreChat-8154a31/api/server/middleware/validateImageRequest.js :31 const payload = jwt.verify(refreshToken, process.env.JWT_REFRESH_SECRET);
  • secrets danny-avila-LibreChat-8154a31/api/server/middleware/validatePasswordReset.js :5 if (isEnabled(process.env.ALLOW_PASSWORD_RESET)) {
  • secrets danny-avila-LibreChat-8154a31/api/server/routes/actions.js :21 const JWT_SECRET = process.env.JWT_SECRET;
  • secrets danny-avila-LibreChat-8154a31/api/server/routes/admin/auth.js :525 if (!isEnabled(process.env.OPENID_REUSE_TOKENS)) {
  • secrets danny-avila-LibreChat-8154a31/api/server/routes/config.js :20 const passwordResetEnabled = isEnabled(process.env.ALLOW_PASSWORD_RESET);
  • secrets danny-avila-LibreChat-8154a31/api/server/routes/search.js :18 apiKey: process.env.MEILI_MASTER_KEY,
  • secrets danny-avila-LibreChat-8154a31/api/server/services/ActionService.js :35 const JWT_SECRET = process.env.JWT_SECRET;
  • secrets danny-avila-LibreChat-8154a31/api/server/services/AuthService.js :657 const expiresIn = math(process.env.REFRESH_TOKEN_EXPIRY, DEFAULT_REFRESH_TOKEN_EXPIRY);
  • secrets danny-avila-LibreChat-8154a31/api/server/services/Config/EndpointService.js :22 process.env.BEDROCK_AWS_BEARER_TOKEN,
  • secrets danny-avila-LibreChat-8154a31/api/server/services/Config/loadAsyncEndpoints.js :10 const serviceKeyPath = process.env.GOOGLE_SERVICE_KEY_FILE?.trim();
  • secrets danny-avila-LibreChat-8154a31/api/server/services/Config/rum.js :105 if (!process.env.RUM_PUBLIC_TOKEN) {
  • secrets danny-avila-LibreChat-8154a31/api/server/services/GraphApiService.js :23 isEnabled(process.env.OPENID_REUSE_TOKENS) &&
  • secrets danny-avila-LibreChat-8154a31/api/server/services/twoFactorService.js :247 return sign({ userId, twoFAPending: true }, process.env.JWT_SECRET, { expiresIn: '5m' });
  • secrets danny-avila-LibreChat-8154a31/api/server/socialLogins.js :29 if (!isEnabled(process.env.OPENID_REUSE_TOKENS)) {
  • secrets danny-avila-LibreChat-8154a31/api/server/utils/sendEmail.js :22 const mailgunApiKey = process.env.MAILGUN_API_KEY;
  • secrets danny-avila-LibreChat-8154a31/api/strategies/appleStrategy.js :43 keyID: process.env.APPLE_KEY_ID,
  • secrets danny-avila-LibreChat-8154a31/api/strategies/discordStrategy.js :29 clientSecret: process.env.DISCORD_CLIENT_SECRET,
  • secrets danny-avila-LibreChat-8154a31/api/strategies/facebookStrategy.js :18 clientSecret: process.env.FACEBOOK_CLIENT_SECRET,
  • secrets danny-avila-LibreChat-8154a31/api/strategies/githubStrategy.js :18 clientSecret: process.env.GITHUB_CLIENT_SECRET,
  • secrets danny-avila-LibreChat-8154a31/api/strategies/googleStrategy.js :18 clientSecret: process.env.GOOGLE_CLIENT_SECRET,
  • secrets danny-avila-LibreChat-8154a31/api/strategies/jwtStrategy.js :11 secretOrKey: process.env.JWT_SECRET,
  • secrets danny-avila-LibreChat-8154a31/api/strategies/openidStrategy.js :623 const requiredRoleTokenKind = process.env.OPENID_REQUIRED_ROLE_TOKEN_KIND;
  • secrets danny-avila-LibreChat-8154a31/api/strategies/validators.js :3 const MIN_PASSWORD_LENGTH = parseInt(process.env.MIN_PASSWORD_LENGTH, 10) || 8;
  • secrets danny-avila-LibreChat-8154a31/config/translations/anthropic.ts :12 apiKey: process.env.ANTHROPIC_API_KEY,
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/app/checks.ts :81 const passwordResetAllowed = isEnabled(process.env.ALLOW_PASSWORD_RESET);
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/app/metrics.ts :223 export const isMetricsConfigured = (): boolean => Boolean(process.env.METRICS_SECRET);
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/auth/codeapi.ts :85 const inlineKey = process.env.CODEAPI_JWT_PRIVATE_KEY;
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/cache/cacheConfig.ts :9 const REDIS_KEY_PREFIX_VAR = process.env.REDIS_KEY_PREFIX_VAR;
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/cdn/cloudfront.ts :29 const keyPairId = process.env.CLOUDFRONT_KEY_PAIR_ID ?? null;
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/cdn/firebase.ts :16 apiKey: process.env.FIREBASE_API_KEY,
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/cdn/s3.ts :37 const accessKeyId = process.env.AWS_ACCESS_KEY_ID;
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/crypto/jwt.ts :10 return jwt.sign({ id: userId }, process.env.JWT_SECRET!, {
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/endpoints/anthropic/vertex.ts :45 process.env.GOOGLE_SERVICE_KEY_FILE ||
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/endpoints/config/endpoints.ts :119 userProvideAccessKeyId: process.env.BEDROCK_AWS_ACCESS_KEY_ID === AuthType.USER_PROVIDED,
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/endpoints/google/initialize.ts :51 process.env.GOOGLE_SERVICE_KEY_FILE || path.join(process.cwd(), 'api', 'data', 'auth.json');
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/endpoints/models.ts :258 return opts.openAIApiKey || process.env.OPENAI_API_KEY;
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/files/mistral/crud.ts :515 process.env.GOOGLE_SERVICE_KEY_FILE ||
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/langfuse/feedback.ts :38 Boolean(process.env.LANGFUSE_PUBLIC_KEY && process.env.LANGFUSE_SECRET_KEY) &&
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/oauth/csrf.ts :52 const key = secret || process.env.JWT_SECRET;
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/utils/azure.ts :89 azureOpenAIApiKey: process.env.AZURE_API_KEY ?? process.env.AZURE_OPENAI_API_KEY,
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/utils/email.ts :9 !!process.env.MAILGUN_API_KEY && !!process.env.MAILGUN_DOMAIN && !!process.env.EMAIL_FROM;
  • secrets danny-avila-LibreChat-8154a31/packages/api/src/utils/oidc.ts :181 const openidClientSecret = process.env.OPENID_CLIENT_SECRET;

database 8

  • db danny-avila-LibreChat-8154a31/api/server/experimental.js :6 const Redis = require('ioredis');
  • db danny-avila-LibreChat-8154a31/api/server/routes/prompts.js :2 const { ObjectId } = require('mongodb');
  • db danny-avila-LibreChat-8154a31/config/flush-cache.js :98 const IoRedis = require('ioredis');
  • db danny-avila-LibreChat-8154a31/packages/api/src/cache/keyvMongo.ts :3 import { GridFSBucket } from 'mongodb';
  • db danny-avila-LibreChat-8154a31/packages/api/src/cache/redisClients.ts :1 import IoRedis from 'ioredis';
  • db danny-avila-LibreChat-8154a31/packages/api/src/stream/createStreamServices.ts :1 import type { Redis, Cluster } from 'ioredis';
  • db danny-avila-LibreChat-8154a31/packages/api/src/stream/implementations/RedisEventTransport.ts :1 import type { Redis, Cluster } from 'ioredis';
  • db danny-avila-LibreChat-8154a31/packages/api/src/stream/implementations/RedisJobStore.ts :5 import type { Redis, Cluster } from 'ioredis';

declared dependencies 28

  • @axe-core/playwright@^4.10.1
  • @eslint/compat@^1.2.6
  • @eslint/eslintrc@^3.3.4
  • @eslint/js@^9.20.0
  • @playwright/test@^1.56.1
  • @types/react-virtualized@^9.22.0
  • caniuse-lite@^1.0.30001741
  • cross-env@^7.0.3
  • elliptic@^6.6.1
  • eslint@^9.39.1
  • eslint-config-prettier@^10.0.1
  • eslint-import-resolver-typescript@^3.7.0
  • eslint-plugin-i18next@^6.1.1
  • eslint-plugin-import@^2.31.0
  • eslint-plugin-jest@^29.1.0
  • eslint-plugin-jsx-a11y@^6.10.2
  • eslint-plugin-prettier@^5.2.3
  • eslint-plugin-react@^7.37.4
  • eslint-plugin-react-hooks@^5.1.0
  • eslint-plugin-simple-import-sort@^12.1.1
  • globals@^15.14.0
  • husky@^9.1.7
  • jest@^30.2.0
  • lint-staged@^15.4.3
  • prettier@^3.5.0
  • prettier-plugin-tailwindcss@^0.6.11
  • turbo@^2.9.17
  • typescript-eslint@^8.60.1