diff --git a/packages/lib/constants/app.ts b/packages/lib/constants/app.ts index 74ff6344b..d22de7647 100644 --- a/packages/lib/constants/app.ts +++ b/packages/lib/constants/app.ts @@ -6,7 +6,7 @@ export const APP_DOCUMENT_UPLOAD_SIZE_LIMIT = export const NEXT_PUBLIC_WEBAPP_URL = () => env('NEXT_PUBLIC_WEBAPP_URL') ?? 'http://localhost:3000'; -export const NEXT_PRIVATE_INTERNAL_WEBAPP_URL = +export const NEXT_PRIVATE_INTERNAL_WEBAPP_URL = () => env('NEXT_PRIVATE_INTERNAL_WEBAPP_URL') ?? NEXT_PUBLIC_WEBAPP_URL(); export const IS_BILLING_ENABLED = () => env('NEXT_PUBLIC_FEATURE_BILLING_ENABLED') === 'true'; @@ -16,4 +16,5 @@ export const API_V2_URL = '/api/v2'; export const SUPPORT_EMAIL = env('NEXT_PUBLIC_SUPPORT_EMAIL') ?? 'support@documenso.com'; -export const USE_INTERNAL_URL_BROWSERLESS = env('NEXT_PUBLIC_USE_INTERNAL_URL_BROWSERLESS') === 'true'; +export const USE_INTERNAL_URL_BROWSERLESS = () => + env('NEXT_PUBLIC_USE_INTERNAL_URL_BROWSERLESS') === 'true'; diff --git a/packages/lib/jobs/client/local.ts b/packages/lib/jobs/client/local.ts index e6e7e2039..999f47ee4 100644 --- a/packages/lib/jobs/client/local.ts +++ b/packages/lib/jobs/client/local.ts @@ -213,7 +213,7 @@ export class LocalJobProvider extends BaseJobProvider { }) { const { jobId, jobDefinitionId, data, isRetry } = options; - const endpoint = `${NEXT_PRIVATE_INTERNAL_WEBAPP_URL}/api/jobs/${jobDefinitionId}/${jobId}`; + const endpoint = `${NEXT_PRIVATE_INTERNAL_WEBAPP_URL()}/api/jobs/${jobDefinitionId}/${jobId}`; const signature = sign(data); const headers: Record = { diff --git a/packages/lib/server-only/htmltopdf/get-audit-logs-pdf.ts b/packages/lib/server-only/htmltopdf/get-audit-logs-pdf.ts index fd72e0a9a..d77d334f8 100644 --- a/packages/lib/server-only/htmltopdf/get-audit-logs-pdf.ts +++ b/packages/lib/server-only/htmltopdf/get-audit-logs-pdf.ts @@ -1,7 +1,11 @@ import { DateTime } from 'luxon'; import type { Browser } from 'playwright'; -import { NEXT_PUBLIC_WEBAPP_URL, NEXT_PRIVATE_INTERNAL_WEBAPP_URL, USE_INTERNAL_URL_BROWSERLESS } from '../../constants/app'; +import { + NEXT_PRIVATE_INTERNAL_WEBAPP_URL, + NEXT_PUBLIC_WEBAPP_URL, + USE_INTERNAL_URL_BROWSERLESS, +} from '../../constants/app'; import { type SupportedLanguageCodes, isValidLanguageCode } from '../../constants/i18n'; import { env } from '../../utils/env'; import { encryptSecondaryData } from '../crypto/encrypt'; @@ -48,14 +52,19 @@ export const getAuditLogsPdf = async ({ documentId, language }: GetAuditLogsPdfO { name: 'language', value: lang, - url: USE_INTERNAL_URL_BROWSERLESS() ? NEXT_PUBLIC_WEBAPP_URL() : NEXT_PRIVATE_INTERNAL_WEBAPP_URL(), + url: USE_INTERNAL_URL_BROWSERLESS() + ? NEXT_PUBLIC_WEBAPP_URL() + : NEXT_PRIVATE_INTERNAL_WEBAPP_URL(), }, ]); - await page.goto(`${USE_INTERNAL_URL_BROWSERLESS() ? NEXT_PUBLIC_WEBAPP_URL() : NEXT_PRIVATE_INTERNAL_WEBAPP_URL()}/__htmltopdf/audit-log?d=${encryptedId}`, { - waitUntil: 'networkidle', - timeout: 10_000, - }); + await page.goto( + `${USE_INTERNAL_URL_BROWSERLESS() ? NEXT_PUBLIC_WEBAPP_URL() : NEXT_PRIVATE_INTERNAL_WEBAPP_URL()}/__htmltopdf/audit-log?d=${encryptedId}`, + { + waitUntil: 'networkidle', + timeout: 10_000, + }, + ); // !: This is a workaround to ensure the page is loaded correctly. // !: It's not clear why but suddenly browserless cdp connections would diff --git a/packages/lib/server-only/htmltopdf/get-certificate-pdf.ts b/packages/lib/server-only/htmltopdf/get-certificate-pdf.ts index ef74e5a19..0fa07538f 100644 --- a/packages/lib/server-only/htmltopdf/get-certificate-pdf.ts +++ b/packages/lib/server-only/htmltopdf/get-certificate-pdf.ts @@ -1,7 +1,11 @@ import { DateTime } from 'luxon'; import type { Browser } from 'playwright'; -import { NEXT_PUBLIC_WEBAPP_URL, NEXT_PRIVATE_INTERNAL_WEBAPP_URL, USE_INTERNAL_URL_BROWSERLESS} from '../../constants/app'; +import { + NEXT_PRIVATE_INTERNAL_WEBAPP_URL, + NEXT_PUBLIC_WEBAPP_URL, + USE_INTERNAL_URL_BROWSERLESS, +} from '../../constants/app'; import { type SupportedLanguageCodes, isValidLanguageCode } from '../../constants/i18n'; import { env } from '../../utils/env'; import { encryptSecondaryData } from '../crypto/encrypt'; @@ -48,14 +52,19 @@ export const getCertificatePdf = async ({ documentId, language }: GetCertificate { name: 'lang', value: lang, - url: USE_INTERNAL_URL_BROWSERLESS() ? NEXT_PUBLIC_WEBAPP_URL() : NEXT_PRIVATE_INTERNAL_WEBAPP_URL(), + url: USE_INTERNAL_URL_BROWSERLESS() + ? NEXT_PUBLIC_WEBAPP_URL() + : NEXT_PRIVATE_INTERNAL_WEBAPP_URL(), }, ]); - await page.goto(`${USE_INTERNAL_URL_BROWSERLESS() ? NEXT_PUBLIC_WEBAPP_URL() : NEXT_PRIVATE_INTERNAL_WEBAPP_URL()}/__htmltopdf/certificate?d=${encryptedId}`, { - waitUntil: 'networkidle', - timeout: 10_000, - }); + await page.goto( + `${USE_INTERNAL_URL_BROWSERLESS() ? NEXT_PUBLIC_WEBAPP_URL() : NEXT_PRIVATE_INTERNAL_WEBAPP_URL()}/__htmltopdf/certificate?d=${encryptedId}`, + { + waitUntil: 'networkidle', + timeout: 10_000, + }, + ); // !: This is a workaround to ensure the page is loaded correctly. // !: It's not clear why but suddenly browserless cdp connections would diff --git a/packages/lib/server-only/webhooks/trigger/trigger-webhook.ts b/packages/lib/server-only/webhooks/trigger/trigger-webhook.ts index 0bb195501..998da6e53 100644 --- a/packages/lib/server-only/webhooks/trigger/trigger-webhook.ts +++ b/packages/lib/server-only/webhooks/trigger/trigger-webhook.ts @@ -29,7 +29,7 @@ export const triggerWebhook = async ({ event, data, userId, teamId }: TriggerWeb const signature = sign(body); await Promise.race([ - fetch(`${NEXT_PRIVATE_INTERNAL_WEBAPP_URL}/api/webhook/trigger`, { + fetch(`${NEXT_PRIVATE_INTERNAL_WEBAPP_URL()}/api/webhook/trigger`, { method: 'POST', headers: { 'content-type': 'application/json',