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
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution ×4 in danny-avila/LibreChat
- HIGH code analysis flagged dynamic code execution ×4 in danny-avila/LibreChat
- HIGH code analysis flagged dynamic code execution ×4 in danny-avila/LibreChat
- HIGH code analysis flagged committed secret ×4, dynamic code execution ×5 in danny-avila/LibreChat
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.
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
- over-broad OAuth scopehttps://www.googleapis.com/auth/cloud-platformdanny-avila-LibreChat-8154a31/packages/api/src/endpoints/anthropic/vertex.ts:194
scopes: 'https://www.googleapis.com/auth/cloud-platform', - over-broad OAuth scopehttps://www.googleapis.com/auth/cloud-platformdanny-avila-LibreChat-8154a31/packages/api/src/files/mistral/crud.ts:553
scope: 'https://www.googleapis.com/auth/cloud-platform',
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