chore: Centralize env parsing, validation, defaults, and deprecation notices (#3487)
* chore: Centralize env parsing, defaults, deprecation * wip * test * test * tsc * docs, more validation * fix: Allow empty REDIS_URL (defaults to localhost) * test * fix: SLACK_MESSAGE_ACTIONS not bool * fix: Add SMTP port validation
This commit is contained in:
@@ -1,26 +1,29 @@
|
||||
import { PublicEnv } from "@shared/types";
|
||||
import { Environment } from "@server/env";
|
||||
|
||||
// Note: This entire object is stringified in the HTML exposed to the client
|
||||
// do not add anything here that should be a secret or password
|
||||
export default function present(env: Record<string, any>): PublicEnv {
|
||||
export default function present(env: Environment): PublicEnv {
|
||||
return {
|
||||
URL: env.URL.replace(/\/$/, ""),
|
||||
AWS_S3_UPLOAD_BUCKET_URL: env.AWS_S3_UPLOAD_BUCKET_URL,
|
||||
AWS_S3_ACCELERATE_URL: env.AWS_S3_ACCELERATE_URL,
|
||||
AWS_S3_UPLOAD_BUCKET_URL: process.env.AWS_S3_UPLOAD_BUCKET_URL || "",
|
||||
AWS_S3_ACCELERATE_URL: process.env.AWS_S3_ACCELERATE_URL || "",
|
||||
CDN_URL: (env.CDN_URL || "").replace(/\/$/, ""),
|
||||
COLLABORATION_URL: (env.COLLABORATION_URL || env.URL)
|
||||
.replace(/\/$/, "")
|
||||
.replace(/^http/, "ws"),
|
||||
DEPLOYMENT: env.DEPLOYMENT,
|
||||
ENVIRONMENT: env.NODE_ENV,
|
||||
ENVIRONMENT: env.ENVIRONMENT,
|
||||
SENTRY_DSN: env.SENTRY_DSN,
|
||||
TEAM_LOGO: env.TEAM_LOGO,
|
||||
SLACK_KEY: env.SLACK_KEY,
|
||||
SLACK_CLIENT_ID: env.SLACK_CLIENT_ID,
|
||||
SLACK_APP_ID: env.SLACK_APP_ID,
|
||||
MAXIMUM_IMPORT_SIZE: env.MAXIMUM_IMPORT_SIZE || 1024 * 1000 * 5,
|
||||
SUBDOMAINS_ENABLED: env.SUBDOMAINS_ENABLED === "true",
|
||||
EMAIL_ENABLED: !!env.SMTP_HOST || env.NODE_ENV === "development",
|
||||
MAXIMUM_IMPORT_SIZE: env.MAXIMUM_IMPORT_SIZE,
|
||||
SUBDOMAINS_ENABLED: env.SUBDOMAINS_ENABLED,
|
||||
DEFAULT_LANGUAGE: env.DEFAULT_LANGUAGE,
|
||||
EMAIL_ENABLED: !!env.SMTP_HOST || env.ENVIRONMENT === "development",
|
||||
GOOGLE_ANALYTICS_ID: env.GOOGLE_ANALYTICS_ID,
|
||||
RELEASE: env.SOURCE_COMMIT || env.SOURCE_VERSION || undefined,
|
||||
RELEASE:
|
||||
process.env.SOURCE_COMMIT || process.env.SOURCE_VERSION || undefined,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import env from "@server/env";
|
||||
import { User } from "@server/models";
|
||||
|
||||
type Options = {
|
||||
@@ -38,8 +39,7 @@ export default (
|
||||
|
||||
if (options.includeDetails) {
|
||||
userData.email = user.email;
|
||||
userData.language =
|
||||
user.language || process.env.DEFAULT_LANGUAGE || "en_US";
|
||||
userData.language = user.language || env.DEFAULT_LANGUAGE;
|
||||
}
|
||||
|
||||
return userData;
|
||||
|
||||
Reference in New Issue
Block a user