Admin a463dc7836
Some checks failed
CI / verify (push) Has been cancelled
CI / print-rust (push) Has been cancelled
deploy: route desktop downloads through Coolify builders
2026-09-26 03:18:29 +00:00

36 lines
1.7 KiB
TypeScript

function required(name: string) {
const value = process.env[name]?.trim()
if (!value) throw new Error(`Missing required environment variable ${name}`)
return value
}
function list(name: string, fallback: string[]) {
const raw = process.env[name]?.trim()
if (!raw) return fallback
return [...new Set(raw.split(',').map((value) => value.trim()).filter(Boolean))]
}
const desktopClientId = process.env.KEYCLOAK_DESKTOP_CLIENT_ID?.trim() || 'fieldlens-print'
export const config = {
port: Number(process.env.PORT ?? '3000'),
databaseUrl: required('DATABASE_URL'),
issuer: required('KEYCLOAK_ISSUER').replace(/\/$/, ''),
jwksUri: (process.env.KEYCLOAK_JWKS_URI ?? '').trim(),
audience: process.env.KEYCLOAK_AUDIENCE?.trim() || 'fieldlens-api',
browserClientId: process.env.KEYCLOAK_BROWSER_CLIENT_ID?.trim() || 'fieldlens',
desktopClientId,
desktopClientIds: list('KEYCLOAK_DESKTOP_CLIENT_IDS', [
desktopClientId,
'fieldlens-print-desktop',
]),
machineClientId: process.env.KEYCLOAK_MACHINE_CLIENT_ID?.trim() || 'fieldlens-integration',
tenantId: process.env.FIELDLENS_TENANT_ID?.trim() || 'fieldlens-production',
environment: process.env.FIELDLENS_ENV?.trim() || 'development',
logLevel: process.env.LOG_LEVEL?.trim() || 'info',
webOrigin: process.env.WEB_ORIGIN?.trim() || 'http://localhost:5173',
staticDir: process.env.STATIC_DIR?.trim() || '',
desktopDownloadBaseUrl: process.env.FIELDLENS_DESKTOP_DOWNLOAD_BASE_URL?.trim() || 'https://fieldlens-desktop-build.arrowstack.dev',
linuxDesktopDownloadBaseUrl: process.env.FIELDLENS_LINUX_DESKTOP_DOWNLOAD_BASE_URL?.trim() || process.env.FIELDLENS_DESKTOP_DOWNLOAD_BASE_URL?.trim() || 'https://fieldlens-desktop-build.arrowstack.dev',
}