Files
speckle-server/packages/server/modules/shared/helpers/envHelper.ts
T
Gergő Jedlicska 40a6701799 feat(server): add switchable admin authz override (#1378)
* feat(server): add switchable admin authz override

* fix(server): make sure tests work with the new admin override

* feat(server authz): make sure to add all requested roles to server admins in admin override mode
2023-02-17 16:31:06 +01:00

106 lines
2.5 KiB
TypeScript

import { MisconfiguredEnvironmentError } from '@/modules/shared/errors'
import { trimEnd } from 'lodash'
export function isTestEnv() {
return process.env.NODE_ENV === 'test'
}
export function isDevEnv() {
return process.env.NODE_ENV === 'development'
}
export function isProdEnv() {
return process.env.NODE_ENV === 'production'
}
export function getServerVersion() {
return process.env.SPECKLE_SERVER_VERSION || 'dev'
}
export function isApolloMonitoringEnabled() {
return [true, 'true'].includes(process.env.APOLLO_SCHEMA_REPORTING || false)
}
export function getApolloServerVersion() {
return process.env.APOLLO_SERVER_USER_VERSION
}
export function getFileSizeLimitMB() {
return getIntFromEnv('FILE_SIZE_LIMIT_MB', '100')
}
export function getIntFromEnv(envVarKey: string, aDefault = '0'): number {
return parseInt(process.env[envVarKey] || aDefault)
}
export function getRedisUrl() {
if (!process.env.REDIS_URL) {
throw new MisconfiguredEnvironmentError('REDIS_URL env var not configured')
}
return process.env.REDIS_URL
}
export function getOidcDiscoveryUrl() {
if (!process.env.OIDC_DISCOVERY_URL) {
throw new MisconfiguredEnvironmentError('OIDC_DISCOVERY_URL env var not configured')
}
return process.env.OIDC_DISCOVERY_URL
}
export function getOidcClientId() {
if (!process.env.OIDC_CLIENT_ID) {
throw new MisconfiguredEnvironmentError('OIDC_CLIENT_ID env var not configured')
}
return process.env.OIDC_CLIENT_ID
}
export function getOidcClientSecret() {
if (!process.env.OIDC_CLIENT_SECRET) {
throw new MisconfiguredEnvironmentError('OIDC_CLIENT_SECRET env var not configured')
}
return process.env.OIDC_CLIENT_SECRET
}
export function getOidcName() {
if (!process.env.OIDC_NAME) {
throw new MisconfiguredEnvironmentError('OIDC_NAME env var not configured')
}
return process.env.OIDC_NAME
}
/**
* Get app base url / canonical url / origin
*/
export function getBaseUrl() {
if (!process.env.CANONICAL_URL) {
throw new MisconfiguredEnvironmentError('CANONICAL_URL env var not configured')
}
return trimEnd(process.env.CANONICAL_URL, '/')
}
/**
* Whether notification job consumption & handling should be disabled
*/
export function shouldDisableNotificationsConsumption() {
return ['1', 'true'].includes(
process.env.DISABLE_NOTIFICATIONS_CONSUMPTION || 'false'
)
}
/**
* Check whether we're running an SSL server
*/
export function isSSLServer() {
return /^https:\/\//.test(getBaseUrl())
}
export function adminOverrideEnabled() {
return process.env.ADMIN_OVERRIDE_ENABLED === 'true'
}