diff --git a/pods/server/src/__start.ts b/pods/server/src/__start.ts index eb51916a25..462719d31a 100644 --- a/pods/server/src/__start.ts +++ b/pods/server/src/__start.ts @@ -73,6 +73,7 @@ setMetadata(serverCore.metadata.FilesUrl, config.filesUrl) setMetadata(serverToken.metadata.Secret, config.serverSecret) setMetadata(serverNotification.metadata.SesUrl, config.sesUrl ?? '') setMetadata(serverNotification.metadata.SesAuthToken, config.sesAuthToken) +setMetadata(serverNotification.metadata.WebPushUrl, config.webPushUrl ?? config.sesUrl) setMetadata(serverTelegram.metadata.BotUrl, process.env.TELEGRAM_BOT_URL) setMetadata(serverAiBot.metadata.EndpointURL, process.env.AI_BOT_URL) setMetadata(serverCalendar.metadata.EndpointURL, process.env.CALENDAR_URL) diff --git a/server-plugins/notification-resources/src/push.ts b/server-plugins/notification-resources/src/push.ts index 5ad4270f5e..19f6d11b06 100644 --- a/server-plugins/notification-resources/src/push.ts +++ b/server-plugins/notification-resources/src/push.ts @@ -157,9 +157,10 @@ export async function createPushNotification ( senderAvatar?: Data, path?: string[] ): Promise { - const sesURL: string | undefined = getMetadata(serverNotification.metadata.SesUrl) - const sesAuth: string | undefined = getMetadata(serverNotification.metadata.SesAuthToken) - if (sesURL === undefined || sesURL === '') return + const pushURL: string | undefined = getMetadata(serverNotification.metadata.WebPushUrl) + // TODO: Remove auth token after migration to new services + const authToken: string | undefined = getMetadata(serverNotification.metadata.SesAuthToken) + if (pushURL === undefined || pushURL === '') return const userSubscriptions = subscriptions.filter((it) => target.includes(it.user)) const data: PushData = { title, @@ -186,11 +187,11 @@ export async function createPushNotification ( } } - void sendPushToSubscription(sesURL, sesAuth, control, target, userSubscriptions, data) + void sendPushToSubscription(pushURL, authToken, control, target, userSubscriptions, data) } async function sendPushToSubscription ( - sesURL: string, + pushURL: string, sesAuth: string | undefined, control: TriggerControl, targetUser: PersonId[], @@ -200,7 +201,7 @@ async function sendPushToSubscription ( try { const result: Ref[] = ( await ( - await fetch(concatLink(sesURL, '/web-push'), { + await fetch(concatLink(pushURL, '/web-push'), { method: 'post', keepalive: true, headers: { diff --git a/server-plugins/notification/src/index.ts b/server-plugins/notification/src/index.ts index c39ed85f4d..1ba795ddc7 100644 --- a/server-plugins/notification/src/index.ts +++ b/server-plugins/notification/src/index.ts @@ -130,6 +130,7 @@ export default plugin(serverNotificationId, { metadata: { SesUrl: '' as Metadata, SesAuthToken: '' as Metadata, + WebPushUrl: '' as Metadata, InboxOnlyNotifications: '' as Metadata }, class: { diff --git a/server/server/src/starter.ts b/server/server/src/starter.ts index 1a8fef9921..22b0cec3f9 100644 --- a/server/server/src/starter.ts +++ b/server/server/src/starter.ts @@ -7,6 +7,7 @@ export interface ServerEnv { filesUrl: string | undefined sesUrl: string | undefined sesAuthToken: string | undefined + webPushUrl: string | undefined accountsUrl: string serverPort: number enableCompression: boolean @@ -46,6 +47,7 @@ export function serverConfigFromEnv (): ServerEnv { const filesUrl = process.env.FILES_URL const sesUrl = process.env.SES_URL const sesAuthToken = process.env.SES_AUTH_TOKEN + const webPushUrl = process.env.WEB_PUSH_URL const accountsUrl = process.env.ACCOUNTS_URL if (accountsUrl === undefined) { @@ -64,6 +66,7 @@ export function serverConfigFromEnv (): ServerEnv { filesUrl, sesUrl, sesAuthToken, + webPushUrl, accountsUrl, serverPort, enableCompression,