Skip to content

Commit

Permalink
πŸ”₯ refactor: remove deprecated env (lobehub#2983)
Browse files Browse the repository at this point in the history
* πŸ”₯ refactor: remove deprecated env

* βœ… test: fix test
  • Loading branch information
arvinxx authored Jun 23, 2024
1 parent 4995501 commit 15a681f
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 197 deletions.
23 changes: 0 additions & 23 deletions src/config/__tests__/analytics.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,27 +44,4 @@ describe('getAnalyticsConfig', () => {
GOOGLE_ANALYTICS_MEASUREMENT_ID: 'ga_id',
});
});

it('should use deprecated env vars and log warnings', () => {
process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN = 'deprecated.com';
process.env.NEXT_PUBLIC_POSTHOG_KEY = 'deprecated_key';
process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID = 'deprecated_id';

const config = getAnalyticsConfig();

expect(config.ENABLED_PLAUSIBLE_ANALYTICS).toBeTruthy();
expect(config.ENABLED_POSTHOG_ANALYTICS).toBeTruthy();
expect(config.ENABLED_UMAMI_ANALYTICS).toBeTruthy();

expect(console.warn).toHaveBeenCalledTimes(3);
expect(console.warn).toHaveBeenCalledWith(
'NEXT_PUBLIC_PLAUSIBLE_DOMAIN is deprecated. Please use PLAUSIBLE_DOMAIN instead. We will remove it in LobeChat 1.0',
);
expect(console.warn).toHaveBeenCalledWith(
'NEXT_PUBLIC_POSTHOG_KEY is deprecated. Please use POSTHOG_KEY instead. We will remove it in LobeChat 1.0',
);
expect(console.warn).toHaveBeenCalledWith(
'NEXT_PUBLIC_UMAMI_WEBSITE_ID is deprecated. Please use UMAMI_WEBSITE_ID instead. We will remove it in LobeChat 1.0',
);
});
});
104 changes: 9 additions & 95 deletions src/config/analytics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,82 +2,7 @@
import { createEnv } from '@t3-oss/env-nextjs';
import { z } from 'zod';

declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace NodeJS {
interface ProcessEnv {
/**
* @deprecated
*/
NEXT_PUBLIC_ANALYTICS_PLAUSIBLE?: string;
/**
* @deprecated
*/
NEXT_PUBLIC_ANALYTICS_POSTHOG: string;
/**
* @deprecated
*/
NEXT_PUBLIC_PLAUSIBLE_DOMAIN?: string;

/**
* @deprecated
*/
NEXT_PUBLIC_PLAUSIBLE_SCRIPT_BASE_URL?: string;
/**
* @deprecated
*/
NEXT_PUBLIC_POSTHOG_HOST: string;
/**
* @deprecated
*/
NEXT_PUBLIC_POSTHOG_KEY: string;

/**
* @deprecated
*/
NEXT_PUBLIC_UMAMI_SCRIPT_URL?: string;
/**
* @deprecated
*/
NEXT_PUBLIC_UMAMI_WEBSITE_ID?: string;
}
}
}

export const getAnalyticsConfig = () => {
if (process.env.NEXT_PUBLIC_PLAUSIBLE_SCRIPT_BASE_URL) {
console.warn(
'NEXT_PUBLIC_PLAUSIBLE_SCRIPT_BASE_URL is deprecated. Please use PLAUSIBLE_SCRIPT_BASE_URL instead. We will remove it in LobeChat 1.0',
);
}
if (process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN) {
console.warn(
'NEXT_PUBLIC_PLAUSIBLE_DOMAIN is deprecated. Please use PLAUSIBLE_DOMAIN instead. We will remove it in LobeChat 1.0',
);
}

if (process.env.NEXT_PUBLIC_POSTHOG_KEY) {
console.warn(
'NEXT_PUBLIC_POSTHOG_KEY is deprecated. Please use POSTHOG_KEY instead. We will remove it in LobeChat 1.0',
);
}
if (process.env.NEXT_PUBLIC_POSTHOG_HOST) {
console.warn(
'NEXT_PUBLIC_POSTHOG_HOST is deprecated. Please use POSTHOG_HOST instead. We will remove it in LobeChat 1.0',
);
}

if (process.env.NEXT_PUBLIC_UMAMI_SCRIPT_URL) {
console.warn(
'NEXT_PUBLIC_UMAMI_SCRIPT_URL is deprecated. Please use UMAMI_SCRIPT_URL instead. We will remove it in LobeChat 1.0',
);
}
if (process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID) {
console.warn(
'NEXT_PUBLIC_UMAMI_WEBSITE_ID is deprecated. Please use UMAMI_WEBSITE_ID instead. We will remove it in LobeChat 1.0',
);
}

return createEnv({
server: {
ENABLED_PLAUSIBLE_ANALYTICS: z.boolean(),
Expand All @@ -104,31 +29,20 @@ export const getAnalyticsConfig = () => {
},
runtimeEnv: {
// Plausible Analytics
ENABLED_PLAUSIBLE_ANALYTICS:
!!process.env.PLAUSIBLE_DOMAIN || !!process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN,
PLAUSIBLE_DOMAIN: process.env.PLAUSIBLE_DOMAIN || process.env.NEXT_PUBLIC_PLAUSIBLE_DOMAIN,
PLAUSIBLE_SCRIPT_BASE_URL:
process.env.PLAUSIBLE_SCRIPT_BASE_URL ||
process.env.NEXT_PUBLIC_PLAUSIBLE_SCRIPT_BASE_URL ||
'https://plausible.io',
ENABLED_PLAUSIBLE_ANALYTICS: !!process.env.PLAUSIBLE_DOMAIN,
PLAUSIBLE_DOMAIN: process.env.PLAUSIBLE_DOMAIN,
PLAUSIBLE_SCRIPT_BASE_URL: process.env.PLAUSIBLE_SCRIPT_BASE_URL || 'https://plausible.io',

// Posthog Analytics
ENABLED_POSTHOG_ANALYTICS: !!process.env.POSTHOG_KEY || !!process.env.NEXT_PUBLIC_POSTHOG_KEY,
POSTHOG_KEY: process.env.POSTHOG_KEY || process.env.NEXT_PUBLIC_POSTHOG_KEY,
POSTHOG_HOST:
process.env.POSTHOG_HOST ||
process.env.NEXT_PUBLIC_POSTHOG_HOST ||
'https://app.posthog.com',
ENABLED_POSTHOG_ANALYTICS: !!process.env.POSTHOG_KEY,
POSTHOG_KEY: process.env.POSTHOG_KEY,
POSTHOG_HOST: process.env.POSTHOG_HOST || 'https://app.posthog.com',
DEBUG_POSTHOG_ANALYTICS: process.env.DEBUG_POSTHOG_ANALYTICS === '1',

// Umami Analytics
ENABLED_UMAMI_ANALYTICS:
!!process.env.UMAMI_WEBSITE_ID || !!process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID,
UMAMI_SCRIPT_URL:
process.env.UMAMI_SCRIPT_URL ||
process.env.NEXT_PUBLIC_UMAMI_SCRIPT_URL ||
'https://analytics.umami.is/script.js',
UMAMI_WEBSITE_ID: process.env.UMAMI_WEBSITE_ID || process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID,
ENABLED_UMAMI_ANALYTICS: !!process.env.UMAMI_WEBSITE_ID,
UMAMI_SCRIPT_URL: process.env.UMAMI_SCRIPT_URL || 'https://analytics.umami.is/script.js',
UMAMI_WEBSITE_ID: process.env.UMAMI_WEBSITE_ID,

// Clarity Analytics
ENABLED_CLARITY_ANALYTICS: !!process.env.CLARITY_PROJECT_ID,
Expand Down
26 changes: 3 additions & 23 deletions src/config/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,8 @@ declare global {
CLERK_WEBHOOK_SECRET?: string;

// ===== Next Auth ===== //
/**
* @deprecated
*/
ENABLE_OAUTH_SSO?: string;
NEXT_AUTH_SECRET?: string;
/**
* @deprecated
*/
SSO_PROVIDERS?: string;

NEXT_AUTH_SSO_PROVIDERS?: string;

AUTH0_CLIENT_ID?: string;
Expand Down Expand Up @@ -50,18 +43,6 @@ declare global {
}

export const getAuthConfig = () => {
if (process.env.ENABLE_OAUTH_SSO) {
console.warn(
'`ENABLE_OAUTH_SSO` is deprecated and will be removed in LobeChat 1.0. just set `NEXT_AUTH_SECRET` enough',
);
}

if (process.env.SSO_PROVIDERS) {
console.warn(
'`SSO_PROVIDERS` is deprecated and will be removed in LobeChat 1.0. Please replace with `NEXT_AUTH_SSO_PROVIDERS`',
);
}

return createEnv({
client: {
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string().optional(),
Expand Down Expand Up @@ -114,9 +95,8 @@ export const getAuthConfig = () => {
CLERK_WEBHOOK_SECRET: process.env.CLERK_WEBHOOK_SECRET,

// Next Auth
NEXT_PUBLIC_ENABLE_NEXT_AUTH:
!!process.env.NEXT_AUTH_SECRET || !!process.env.ENABLE_OAUTH_SSO,
NEXT_AUTH_SSO_PROVIDERS: process.env.NEXT_AUTH_SSO_PROVIDERS || process.env.SSO_PROVIDERS,
NEXT_PUBLIC_ENABLE_NEXT_AUTH: !!process.env.NEXT_AUTH_SECRET,
NEXT_AUTH_SSO_PROVIDERS: process.env.NEXT_AUTH_SSO_PROVIDERS,
NEXT_AUTH_SECRET: process.env.NEXT_AUTH_SECRET,

// Auth0
Expand Down
45 changes: 3 additions & 42 deletions src/config/llm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,7 @@
import { createEnv } from '@t3-oss/env-nextjs';
import { z } from 'zod';

declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace NodeJS {
interface ProcessEnv {
/**
* @deprecated
*/
CUSTOM_MODELS?: string;
/**
* @deprecated
*/
OLLAMA_CUSTOM_MODELS?: string;
/**
* @deprecated
*/
OPENROUTER_CUSTOM_MODELS?: string;
}
}
}

export const getLLMConfig = () => {
if (process.env.CUSTOM_MODELS) {
console.warn(
'DEPRECATED: `CUSTOM_MODELS` is deprecated, please use `OPENAI_MODEL_LIST` instead, we will remove `CUSTOM_MODELS` in the LobeChat 1.0',
);
}

if (process.env.OLLAMA_CUSTOM_MODELS) {
console.warn(
'DEPRECATED: `OLLAMA_CUSTOM_MODELS` is deprecated, please use `OLLAMA_MODEL_LIST` instead, we will remove `OLLAMA_CUSTOM_MODELS` in the LobeChat 1.0',
);
}

if (process.env.OPENROUTER_CUSTOM_MODELS) {
console.warn(
'DEPRECATED: `OPENROUTER_CUSTOM_MODELS` is deprecated, please use `OPENROUTER_MODEL_LIST` instead, we will remove `OPENROUTER_CUSTOM_MODELS` in the LobeChat 1.0',
);
}

// region format: iad1,sfo1
let regions: string[] = [];
if (process.env.OPENAI_FUNCTION_REGIONS) {
Expand Down Expand Up @@ -127,7 +89,7 @@ export const getLLMConfig = () => {
ENABLED_OPENAI: process.env.ENABLED_OPENAI !== '0',
OPENAI_API_KEY: process.env.OPENAI_API_KEY,
OPENAI_PROXY_URL: process.env.OPENAI_PROXY_URL,
OPENAI_MODEL_LIST: process.env.OPENAI_MODEL_LIST || process.env.CUSTOM_MODELS,
OPENAI_MODEL_LIST: process.env.OPENAI_MODEL_LIST,
OPENAI_FUNCTION_REGIONS: regions as any,

ENABLED_AZURE_OPENAI: !!process.env.AZURE_API_KEY,
Expand Down Expand Up @@ -162,8 +124,7 @@ export const getLLMConfig = () => {

ENABLED_OPENROUTER: !!process.env.OPENROUTER_API_KEY,
OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY,
OPENROUTER_MODEL_LIST:
process.env.OPENROUTER_MODEL_LIST || process.env.OPENROUTER_CUSTOM_MODELS,
OPENROUTER_MODEL_LIST: process.env.OPENROUTER_MODEL_LIST,

ENABLED_TOGETHERAI: !!process.env.TOGETHERAI_API_KEY,
TOGETHERAI_API_KEY: process.env.TOGETHERAI_API_KEY,
Expand All @@ -187,7 +148,7 @@ export const getLLMConfig = () => {

ENABLED_OLLAMA: process.env.ENABLED_OLLAMA !== '0',
OLLAMA_PROXY_URL: process.env.OLLAMA_PROXY_URL || '',
OLLAMA_MODEL_LIST: process.env.OLLAMA_MODEL_LIST || process.env.OLLAMA_CUSTOM_MODELS,
OLLAMA_MODEL_LIST: process.env.OLLAMA_MODEL_LIST,

ENABLED_QWEN: !!process.env.QWEN_API_KEY,
QWEN_API_KEY: process.env.QWEN_API_KEY,
Expand Down
14 changes: 0 additions & 14 deletions src/server/routers/edge/config/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,20 +127,6 @@ describe('configRouter', () => {
});
});

describe('CUSTOM_MODELS', () => {
it('custom deletion, addition, and renaming of models', async () => {
process.env.CUSTOM_MODELS =
'-all,+llama,+claude-2,-gpt-3.5-turbo,gpt-4-0125-preview=gpt-4-turbo,gpt-4-0125-preview=gpt-4-32k';

const response = await router.getGlobalConfig();

// Assert
const result = response.languageModel?.openai?.serverModelCards;

expect(result).toMatchSnapshot();
});
});

describe('OPENROUTER_MODEL_LIST', () => {
it('custom deletion, addition, and renaming of models', async () => {
process.env.OPENROUTER_MODEL_LIST =
Expand Down

0 comments on commit 15a681f

Please sign in to comment.