From 74b3b283f7dcba9bf2ede93843e2215bb51a0e9d Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 13 Apr 2026 21:30:19 -0700 Subject: [PATCH 01/33] Fix #2848 --- config/db/db.sqlite-journal | Bin 0 -> 8720 bytes server/routers/client/listClients.ts | 119 ++++++----------------- server/routers/client/listUserDevices.ts | 100 +++++-------------- server/routers/site/listSites.ts | 45 +++++++-- 4 files changed, 94 insertions(+), 170 deletions(-) create mode 100644 config/db/db.sqlite-journal diff --git a/config/db/db.sqlite-journal b/config/db/db.sqlite-journal new file mode 100644 index 0000000000000000000000000000000000000000..46b7df58754fea40205eefd5c1412c307c55edfc GIT binary patch literal 8720 zcmeGiO>Z05aVg89sMuaRiNXR#<3#|~A!t$j{t#*?D{>__Q^C^lkk!tnSj^KKK^D}>`04C$LcFW}|5sJT405Rb+ZkyJVo%VZ<5RB|zuOT{zkTbuRW-l2Nb*Wb>t?<5L+ zv@Ef!vG7VkI;_-d^+I`VVQZ_tx|h8U94DynKIA(cO+7^7;I0qM&jqMi%lrUoejmxQ z+MC}|WnER~4OKH#NjL2mYd4iP+uJ_cTi@vyj^5Um^{s>3iCg0BM6sv0TZg#~wc8Vv zL|h=vPh#^w&3=Z>Ui!rTD8#vRrYg>t62T)C61F0ba;!|q-ziPW5NQw8%s4^aR3$T1(}Kb*}_RFI;kr>WU# zDh!ap%rGQ|Q0iGBQRptPRkjw@*9r$~nRGt9u$r%LzH=kd&aM^r)zw~lEqx^C`sw{` z(kD11@KzIc;%#;`eEjH7*Fh)W)@DgE5VNalZQfuK@E0JTk9vz?C@Mf>E8yom8cZgg z4|w~C`3Y0t5&1*tEMU*kUtpSt^iT8;^uOuv>3`CHr@x`UroW=Ur2k5Papv&MSH30c zQ~JjfSd9P=sF(dgcFs4rDk&m55|Cy{yOO{|CN)I0%}Yw7t4If3L}FgaS2?!EG4*nB zv(7Qaa)Gdm%tp1i&Q`aX8{9U-)@zkw891zSZiTIvYRoP#>j;zR25)qAYYF3EuXd0kN=oahhd(;%NE*^v!_^ow zka^vxA_zKOW(@c1D6|Tya^V}9=J6~^l2q0GK8wDI+ zipubUA*l+Ep8{9n04DIdz>8=m^e*iWUb*5MoHe6nhgTFN7CX8-x#*1-7Y?BZ21p%y zlgKD>;$kKgyEql(uJ|Z3Df9yw^1H!zp~m7QX}G)^F?V{Yb>58P!6iZ;4iZSVRkG$6 zMrmcCEX5FB@>Jb27p8(Y=AN#b#nDmE`l9du>YVAa2bWD1tuh9Y>rT#lm2=^iX3ppH z=a?b2;b7+5;BzNA9arOEQni*7l%8l7WC@AFm~nH9?Mj92i?6A9%ZwF?n(oRGEX zg-NV~XM3y5MvRtWo`8s!OZj@xp9(3^xd9P*H) zI8{0xbD`C-91~%IU+gR$yyy1^FJJcEvkos?NBcEB(t9Vm?Q}s*mT}V4UU&Y-3feEG z{J~AA9C^2(Ng|vrlF@e(_sNnbKv(48{KxCZ)0aC{gk*A3QJX&N4;DeS@X4yV84o)` zs5Ny8wcMpAsWc=AZA?xD!(rdHnNN1pqa*136_9H6K+fk`PfR?4d{g1u=o*lQ?(Lp2 zbM!;MlcR+CUSlRb9C4Zur2pGeiQ5jMLb{($IlutuajcF;IUOh_ zlU2BJxlIg)jP6vh8YbDOHVP*T+k&WeOK2Hi8c>}lW@JJ%F#Z`-JiM-c=r{LM+^}S>FH-Ouhr3PHem2Mkpl7PuW zs}obfcT=AJ87{^j56;2(#{vEqj^Eyep^NY8`w|S>O&HcIFysp`q<#&<+%*_pdmV<^ KOOGFY9Q_&BqR?Fc literal 0 HcmV?d00001 diff --git a/server/routers/client/listClients.ts b/server/routers/client/listClients.ts index 0bf798509..f5d69857d 100644 --- a/server/routers/client/listClients.ts +++ b/server/routers/client/listClients.ts @@ -29,65 +29,9 @@ import { } from "drizzle-orm"; import { NextFunction, Request, Response } from "express"; import createHttpError from "http-errors"; -import NodeCache from "node-cache"; -import semver from "semver"; import { z } from "zod"; import { fromError } from "zod-validation-error"; -const olmVersionCache = new NodeCache({ stdTTL: 3600 }); - -async function getLatestOlmVersion(): Promise { - try { - const cachedVersion = olmVersionCache.get("latestOlmVersion"); - if (cachedVersion) { - return cachedVersion; - } - - const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), 1500); - - const response = await fetch( - "https://api.github.com/repos/fosrl/olm/tags", - { - signal: controller.signal - } - ); - - clearTimeout(timeoutId); - - if (!response.ok) { - logger.warn( - `Failed to fetch latest Olm version from GitHub: ${response.status} ${response.statusText}` - ); - return null; - } - - let tags = await response.json(); - if (!Array.isArray(tags) || tags.length === 0) { - logger.warn("No tags found for Olm repository"); - return null; - } - tags = tags.filter((version) => !version.name.includes("rc")); - const latestVersion = tags[0].name; - - olmVersionCache.set("latestOlmVersion", latestVersion, 3600); - - return latestVersion; - } catch (error: any) { - if (error.name === "AbortError") { - logger.warn("Request to fetch latest Olm version timed out (1.5s)"); - } else if (error.cause?.code === "UND_ERR_CONNECT_TIMEOUT") { - logger.warn("Connection timeout while fetching latest Olm version"); - } else { - logger.warn( - "Error fetching latest Olm version:", - error.message || error - ); - } - return null; - } -} - const listClientsParamsSchema = z.strictObject({ orgId: z.string() }); @@ -413,44 +357,45 @@ export async function listClients( }; }); - const latestOlVersionPromise = getLatestOlmVersion(); + // REMOVING THIS BECAUSE WE HAVE DIFFERENT TYPES OF CLIENTS NOW + // const latestOlmVersionPromise = getLatestOlmVersion(); - const olmsWithUpdates: OlmWithUpdateAvailable[] = clientsWithSites.map( - (client) => { - const OlmWithUpdate: OlmWithUpdateAvailable = { ...client }; - // Initially set to false, will be updated if version check succeeds - OlmWithUpdate.olmUpdateAvailable = false; - return OlmWithUpdate; - } - ); + // const olmsWithUpdates: OlmWithUpdateAvailable[] = clientsWithSites.map( + // (client) => { + // const OlmWithUpdate: OlmWithUpdateAvailable = { ...client }; + // // Initially set to false, will be updated if version check succeeds + // OlmWithUpdate.olmUpdateAvailable = false; + // return OlmWithUpdate; + // } + // ); // Try to get the latest version, but don't block if it fails - try { - const latestOlVersion = await latestOlVersionPromise; + // try { + // const latestOlmVersion = await latestOlVersionPromise; - if (latestOlVersion) { - olmsWithUpdates.forEach((client) => { - try { - client.olmUpdateAvailable = semver.lt( - client.olmVersion ? client.olmVersion : "", - latestOlVersion - ); - } catch (error) { - client.olmUpdateAvailable = false; - } - }); - } - } catch (error) { - // Log the error but don't let it block the response - logger.warn( - "Failed to check for OLM updates, continuing without update info:", - error - ); - } + // if (latestOlVersion) { + // olmsWithUpdates.forEach((client) => { + // try { + // client.olmUpdateAvailable = semver.lt( + // client.olmVersion ? client.olmVersion : "", + // latestOlVersion + // ); + // } catch (error) { + // client.olmUpdateAvailable = false; + // } + // }); + // } + // } catch (error) { + // // Log the error but don't let it block the response + // logger.warn( + // "Failed to check for OLM updates, continuing without update info:", + // error + // ); + // } return response(res, { data: { - clients: olmsWithUpdates, + clients: clientsWithSites, pagination: { total: totalCount, page, diff --git a/server/routers/client/listUserDevices.ts b/server/routers/client/listUserDevices.ts index 0ae31165a..d793faf09 100644 --- a/server/routers/client/listUserDevices.ts +++ b/server/routers/client/listUserDevices.ts @@ -30,65 +30,10 @@ import { } from "drizzle-orm"; import { NextFunction, Request, Response } from "express"; import createHttpError from "http-errors"; -import NodeCache from "node-cache"; import semver from "semver"; import { z } from "zod"; import { fromError } from "zod-validation-error"; -const olmVersionCache = new NodeCache({ stdTTL: 3600 }); - -async function getLatestOlmVersion(): Promise { - try { - const cachedVersion = olmVersionCache.get("latestOlmVersion"); - if (cachedVersion) { - return cachedVersion; - } - - const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), 1500); - - const response = await fetch( - "https://api.github.com/repos/fosrl/olm/tags", - { - signal: controller.signal - } - ); - - clearTimeout(timeoutId); - - if (!response.ok) { - logger.warn( - `Failed to fetch latest Olm version from GitHub: ${response.status} ${response.statusText}` - ); - return null; - } - - let tags = await response.json(); - if (!Array.isArray(tags) || tags.length === 0) { - logger.warn("No tags found for Olm repository"); - return null; - } - tags = tags.filter((version) => !version.name.includes("rc")); - const latestVersion = tags[0].name; - - olmVersionCache.set("latestOlmVersion", latestVersion, 3600); - - return latestVersion; - } catch (error: any) { - if (error.name === "AbortError") { - logger.warn("Request to fetch latest Olm version timed out (1.5s)"); - } else if (error.cause?.code === "UND_ERR_CONNECT_TIMEOUT") { - logger.warn("Connection timeout while fetching latest Olm version"); - } else { - logger.warn( - "Error fetching latest Olm version:", - error.message || error - ); - } - return null; - } -} - const listUserDevicesParamsSchema = z.strictObject({ orgId: z.string() }); @@ -453,29 +398,30 @@ export async function listUserDevices( } ); - // Try to get the latest version, but don't block if it fails - try { - const latestOlmVersion = await getLatestOlmVersion(); + // REMOVING THIS BECAUSE WE HAVE DIFFERENT TYPES OF CLIENTS NOW + // // Try to get the latest version, but don't block if it fails + // try { + // const latestOlmVersion = await getLatestOlmVersion(); - if (latestOlmVersion) { - olmsWithUpdates.forEach((client) => { - try { - client.olmUpdateAvailable = semver.lt( - client.olmVersion ? client.olmVersion : "", - latestOlmVersion - ); - } catch (error) { - client.olmUpdateAvailable = false; - } - }); - } - } catch (error) { - // Log the error but don't let it block the response - logger.warn( - "Failed to check for OLM updates, continuing without update info:", - error - ); - } + // if (latestOlmVersion) { + // olmsWithUpdates.forEach((client) => { + // try { + // client.olmUpdateAvailable = semver.lt( + // client.olmVersion ? client.olmVersion : "", + // latestOlmVersion + // ); + // } catch (error) { + // client.olmUpdateAvailable = false; + // } + // }); + // } + // } catch (error) { + // // Log the error but don't let it block the response + // logger.warn( + // "Failed to check for OLM updates, continuing without update info:", + // error + // ); + // } return response(res, { data: { diff --git a/server/routers/site/listSites.ts b/server/routers/site/listSites.ts index 6f085d74d..b65182908 100644 --- a/server/routers/site/listSites.ts +++ b/server/routers/site/listSites.ts @@ -21,6 +21,11 @@ import semver from "semver"; import { z } from "zod"; import { fromError } from "zod-validation-error"; +// Stale-while-revalidate: keeps the last successfully fetched version so that +// a transient network failure / timeout does not flip every site back to +// newtUpdateAvailable: false. +let staleNewtVersion: string | null = null; + async function getLatestNewtVersion(): Promise { try { const cachedVersion = await cache.get("latestNewtVersion"); @@ -29,7 +34,7 @@ async function getLatestNewtVersion(): Promise { } const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), 1500); // Reduced timeout to 1.5 seconds + const timeoutId = setTimeout(() => controller.abort(), 1500); const response = await fetch( "https://api.github.com/repos/fosrl/newt/tags", @@ -44,18 +49,46 @@ async function getLatestNewtVersion(): Promise { logger.warn( `Failed to fetch latest Newt version from GitHub: ${response.status} ${response.statusText}` ); - return null; + return staleNewtVersion; } let tags = await response.json(); if (!Array.isArray(tags) || tags.length === 0) { logger.warn("No tags found for Newt repository"); - return null; + return staleNewtVersion; } - tags = tags.filter((version) => !version.name.includes("rc")); + + // Remove release-candidates, then sort descending by semver so that + // duplicate tags (e.g. "1.10.3" and "v1.10.3") and any ordering quirks + // from the GitHub API do not cause an older tag to be selected. + tags = tags.filter((tag: any) => !tag.name.includes("rc")); + tags.sort((a: any, b: any) => { + const va = semver.coerce(a.name); + const vb = semver.coerce(b.name); + if (!va && !vb) return 0; + if (!va) return 1; + if (!vb) return -1; + return semver.rcompare(va, vb); + }); + + // Deduplicate: keep only the first (highest) entry per normalised version + const seen = new Set(); + tags = tags.filter((tag: any) => { + const normalised = semver.coerce(tag.name)?.version; + if (!normalised || seen.has(normalised)) return false; + seen.add(normalised); + return true; + }); + + if (tags.length === 0) { + logger.warn("No valid semver tags found for Newt repository"); + return staleNewtVersion; + } + const latestVersion = tags[0].name; - await cache.set("latestNewtVersion", latestVersion, 3600); + staleNewtVersion = latestVersion; + await cache.set("cache:latestNewtVersion", latestVersion, 3600); return latestVersion; } catch (error: any) { @@ -73,7 +106,7 @@ async function getLatestNewtVersion(): Promise { error.message || error ); } - return null; + return staleNewtVersion; } } From e20a21bacdad9583c0938e019278c8a5dd983d6c Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 14 Apr 2026 19:46:19 -0700 Subject: [PATCH 02/33] Contact support --- messages/en-US.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 7578574b6..d32ad85c1 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "Send events to any HTTP endpoint with flexible authentication and templating.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Coming soon.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Coming soon.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Choose a destination type to get started.", "streamingFailedToLoad": "Failed to load destinations", "streamingUnexpectedError": "An unexpected error occurred.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "My HTTP destination", "httpDestUrlLabel": "Destination URL", "httpDestUrlErrorHttpRequired": "URL must use http or https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required on cloud deployments", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Enter a valid URL (e.g. https://example.com/webhook)", "httpDestAuthTitle": "Authentication", "httpDestAuthDescription": "Choose how requests to your endpoint are authenticated.", From af709331fb35f6ec5172cf7e00edb7d4e0a9bbbf Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 14 Apr 2026 19:46:25 -0700 Subject: [PATCH 03/33] Add missing DnsRecords type --- server/db/pg/schema/schema.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/server/db/pg/schema/schema.ts b/server/db/pg/schema/schema.ts index bde3e9aec..acc3bb17f 100644 --- a/server/db/pg/schema/schema.ts +++ b/server/db/pg/schema/schema.ts @@ -1080,6 +1080,7 @@ export type ResourceWhitelist = InferSelectModel; export type VersionMigration = InferSelectModel; export type ResourceRule = InferSelectModel; export type Domain = InferSelectModel; +export type DnsRecord = InferSelectModel; export type SupporterKey = InferSelectModel; export type Idp = InferSelectModel; export type ApiKey = InferSelectModel; From cd25cde47ffe2031902b875a19005ca5a4fc6365 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:47:50 -0700 Subject: [PATCH 04/33] New translations en-us.json (French) --- messages/fr-FR.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/fr-FR.json b/messages/fr-FR.json index 8ede738ec..eaa5a684a 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Envoyez des événements à n'importe quel point de terminaison HTTP avec une authentification flexible et un template.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Flux d'événements vers un compartiment de stockage d'objet compatible S3. Bientôt.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Transférer des événements directement sur votre compte Datadog. Prochainement.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Choisissez un type de destination pour commencer.", "streamingFailedToLoad": "Impossible de charger les destinations", "streamingUnexpectedError": "Une erreur inattendue s'est produite.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Ma destination HTTP", "httpDestUrlLabel": "URL de destination", "httpDestUrlErrorHttpRequired": "L'URL doit utiliser http ou https", - "httpDestUrlErrorHttpsRequired": "HTTPS est requis pour les déploiements du cloud", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Entrez une URL valide (par exemple https://example.com/webhook)", "httpDestAuthTitle": "Authentification", "httpDestAuthDescription": "Choisissez comment les requêtes à votre terminaison sont authentifiées.", From d4fc60f2f4dda1ad576ab3ab23235633c1d68c83 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:47:52 -0700 Subject: [PATCH 05/33] New translations en-us.json (Spanish) --- messages/es-ES.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/es-ES.json b/messages/es-ES.json index 72251ffba..b97daa697 100644 --- a/messages/es-ES.json +++ b/messages/es-ES.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Enviar eventos a cualquier extremo HTTP con autenticación flexible y plantilla.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Transmite eventos a un bucket de almacenamiento de objetos compatible con S3. Próximamente.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Reenviar eventos directamente a tu cuenta de Datadog. Próximamente.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Elija un tipo de destino para empezar.", "streamingFailedToLoad": "Error al cargar destinos", "streamingUnexpectedError": "Se ha producido un error inesperado.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Mi destino HTTP", "httpDestUrlLabel": "URL de destino", "httpDestUrlErrorHttpRequired": "URL debe usar http o https", - "httpDestUrlErrorHttpsRequired": "HTTPS es necesario en implementaciones en la nube", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Introduzca una URL válida (ej. https://example.com/webhook)", "httpDestAuthTitle": "Autenticación", "httpDestAuthDescription": "Elija cómo están autenticadas las solicitudes en su punto final.", From 013c1ab92c3ba3a38f55ecf085424dffb6bbdb47 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:47:53 -0700 Subject: [PATCH 06/33] New translations en-us.json (Bulgarian) --- messages/bg-BG.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/bg-BG.json b/messages/bg-BG.json index 10204713a..64e5e481e 100644 --- a/messages/bg-BG.json +++ b/messages/bg-BG.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Уеб хук", "streamingHttpWebhookDescription": "Изпратете събития до всяка HTTP крайна точка с гъвкаво удостоверяване и шаблониране.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Предавайте събития на хранилище, съвместимо с S3. Очаквайте скоро.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Пресочвайте събития директно към вашият акаунт в Datadog. Очаквайте скоро.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Изберете вид на дестинацията, за да започнете.", "streamingFailedToLoad": "Неуспешно зареждане на дестинации", "streamingUnexpectedError": "Възникна неочаквана грешка.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Моята HTTP дестинация", "httpDestUrlLabel": "Дестинация URL", "httpDestUrlErrorHttpRequired": "URL адресът трябва да използва http или https", - "httpDestUrlErrorHttpsRequired": "SSL е необходимо за облачни инсталации", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Въведете валиден URL (напр. https://example.com/webhook)", "httpDestAuthTitle": "Удостоверяване", "httpDestAuthDescription": "Изберете как заявленията ви се удостоверяват.", From 77d01d50db760a9f5ebe1414d9e357526fb5339c Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:47:55 -0700 Subject: [PATCH 07/33] New translations en-us.json (Czech) --- messages/cs-CZ.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/cs-CZ.json b/messages/cs-CZ.json index 5b7122867..e28cb07f2 100644 --- a/messages/cs-CZ.json +++ b/messages/cs-CZ.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP webový háček", "streamingHttpWebhookDescription": "Odeslat události na libovolný HTTP koncový bod s pružnou autentizací a šablonou.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Streamujte události do úložiště, které je kompatibilní se S3. Brzy přijde.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Přeposlat události přímo do vašeho účtu Datadog účtu. Brzy přijde.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Vyberte cílový typ pro začátek.", "streamingFailedToLoad": "Nepodařilo se načíst destinace", "streamingUnexpectedError": "Došlo k neočekávané chybě.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Moje HTTP cíl", "httpDestUrlLabel": "Cílová adresa URL", "httpDestUrlErrorHttpRequired": "URL musí používat http nebo https", - "httpDestUrlErrorHttpsRequired": "HTTPS je vyžadován při nasazení do cloudu", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Zadejte platnou URL (např. https://example.com/webhook)", "httpDestAuthTitle": "Autentifikace", "httpDestAuthDescription": "Zvolte, jak jsou požadavky na tvůj koncový bod ověřeny.", From 4d82b37cab04217b2ab59fa6cc3bfe037c559bef Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:47:57 -0700 Subject: [PATCH 08/33] New translations en-us.json (German) --- messages/de-DE.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/de-DE.json b/messages/de-DE.json index 5edc95cbc..6ab5c197a 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "Sende Ereignisse an jeden HTTP-Endpunkt mit flexibler Authentifizierung und Vorlage.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Streame Ereignisse in eine S3-kompatible Objekt-Speicher-Eimer. Kommt bald.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Events direkt an Ihr Datadog Konto weiterleiten. Kommen Sie bald.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Wählen Sie einen Zieltyp aus, um loszulegen.", "streamingFailedToLoad": "Fehler beim Laden der Ziele", "streamingUnexpectedError": "Ein unerwarteter Fehler ist aufgetreten.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Mein HTTP-Ziel", "httpDestUrlLabel": "Ziel-URL", "httpDestUrlErrorHttpRequired": "URL muss http oder https verwenden", - "httpDestUrlErrorHttpsRequired": "HTTPS wird für Cloud-Deployment benötigt", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Geben Sie eine gültige URL ein (z.B. https://example.com/webhook)", "httpDestAuthTitle": "Authentifizierung", "httpDestAuthDescription": "Legen Sie fest, wie Anfragen an Ihren Endpunkt authentifiziert werden.", From 599fa5eb30292c57b5fe3937cdfd03830b02ccb9 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:47:59 -0700 Subject: [PATCH 09/33] New translations en-us.json (Italian) --- messages/it-IT.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/it-IT.json b/messages/it-IT.json index 5e0f13a7e..e7e06aad9 100644 --- a/messages/it-IT.json +++ b/messages/it-IT.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Invia eventi a qualsiasi endpoint HTTP con autenticazione e template flessibili.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Trasmetti eventi su un contenitore di archiviazione per oggetti compatibile con S3. Presto in arrivo.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Inoltra gli eventi direttamente al tuo account Datadog. In arrivo.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Scegli un tipo di destinazione per iniziare.", "streamingFailedToLoad": "Impossibile caricare le destinazioni", "streamingUnexpectedError": "Si è verificato un errore imprevisto.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "La mia destinazione HTTP", "httpDestUrlLabel": "Url Di Destinazione", "httpDestUrlErrorHttpRequired": "L'URL deve usare http o https", - "httpDestUrlErrorHttpsRequired": "HTTPS è richiesto sulle distribuzioni cloud", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Inserisci un URL valido (es. https://example.com/webhook)", "httpDestAuthTitle": "Autenticazione", "httpDestAuthDescription": "Scegli come vengono autenticate le richieste al tuo endpoint.", From 19ef05529637b0c7ecd9c8411863cbb512365efd Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:48:00 -0700 Subject: [PATCH 10/33] New translations en-us.json (Korean) --- messages/ko-KR.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/ko-KR.json b/messages/ko-KR.json index ccf1f2ca8..f8b213245 100644 --- a/messages/ko-KR.json +++ b/messages/ko-KR.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP 웹훅", "streamingHttpWebhookDescription": "유연한 인증 및 템플릿 작성 기능을 갖춘 HTTP 엔드포인트에 이벤트를 전송합니다.", "streamingS3Title": "아마존 S3", - "streamingS3Description": "S3 호환 객체 스토리지 버킷에 이벤트를 스트리밍합니다. 곧 제공됩니다.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "데이터독", - "streamingDatadogDescription": "이벤트를 직접 Datadog 계정으로 전달합니다. 곧 제공됩니다.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "목표 유형을 선택하여 시작합니다.", "streamingFailedToLoad": "대상 로드에 실패했습니다", "streamingUnexpectedError": "예기치 않은 오류가 발생했습니다.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "내 HTTP 대상", "httpDestUrlLabel": "대상 URL", "httpDestUrlErrorHttpRequired": "URL은 http 또는 https를 사용해야 합니다", - "httpDestUrlErrorHttpsRequired": "클라우드 배포에는 HTTPS가 필요합니다", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "유효한 URL을 입력하세요 (예: https://example.com/webhook)", "httpDestAuthTitle": "인증", "httpDestAuthDescription": "엔드포인트에 대한 요청 인증 방법을 선택하세요.", From 37378895cfb9313a6f4a8f061a73a4ba032937d3 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:48:02 -0700 Subject: [PATCH 11/33] New translations en-us.json (Dutch) --- messages/nl-NL.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/nl-NL.json b/messages/nl-NL.json index d7d64abc1..4a554f11d 100644 --- a/messages/nl-NL.json +++ b/messages/nl-NL.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "Stuur gebeurtenissen naar elk HTTP eindpunt met flexibele authenticatie en template.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events naar een S3-compatibele object-opslagemmer. Binnenkort beschikbaar.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Stuur gebeurtenissen rechtstreeks door naar je Datadog account. Binnenkort beschikbaar.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Kies een bestemmingstype om te beginnen.", "streamingFailedToLoad": "Laden van bestemmingen mislukt", "streamingUnexpectedError": "Er is een onverwachte fout opgetreden.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Mijn HTTP-bestemming", "httpDestUrlLabel": "Bestemming URL", "httpDestUrlErrorHttpRequired": "URL moet http of https gebruiken", - "httpDestUrlErrorHttpsRequired": "HTTPS is vereist op cloud implementaties", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Voer een geldige URL in (bijv. https://example.com/webhook)", "httpDestAuthTitle": "Authenticatie", "httpDestAuthDescription": "Kies hoe verzoeken voor uw eindpunt zijn geverifieerd.", From d615f34f94c1fb3af382f26ab3a2b1cbb7512628 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:48:04 -0700 Subject: [PATCH 12/33] New translations en-us.json (Polish) --- messages/pl-PL.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/pl-PL.json b/messages/pl-PL.json index e58aafda1..6fb1656c3 100644 --- a/messages/pl-PL.json +++ b/messages/pl-PL.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Wyślij zdarzenia do dowolnego punktu końcowego HTTP z elastycznym uwierzytelnianiem i szablonem.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Zdarzenia strumieniowe do magazynu obiektów kompatybilnych z S3. Już wkrótce.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Przekaż wydarzenia bezpośrednio do Twojego konta Datadog. Już wkrótce.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Wybierz typ docelowy, aby rozpocząć.", "streamingFailedToLoad": "Nie udało się załadować miejsc docelowych", "streamingUnexpectedError": "Wystąpił nieoczekiwany błąd.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Mój cel HTTP", "httpDestUrlLabel": "Adres docelowy", "httpDestUrlErrorHttpRequired": "Adres URL musi używać http lub https", - "httpDestUrlErrorHttpsRequired": "HTTPS jest wymagany dla wdrożenia w chmurze", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Wprowadź poprawny adres URL (np. https://example.com/webhook)", "httpDestAuthTitle": "Uwierzytelnianie", "httpDestAuthDescription": "Wybierz sposób uwierzytelniania żądań do Twojego punktu końcowego.", From a909c5cbe0a9a9f3d8eab883dcdd8ea5fd9cb1cc Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:48:06 -0700 Subject: [PATCH 13/33] New translations en-us.json (Portuguese) --- messages/pt-PT.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/pt-PT.json b/messages/pt-PT.json index 8b36732d3..02623f239 100644 --- a/messages/pt-PT.json +++ b/messages/pt-PT.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Envie os eventos para qualquer endpoint HTTP com autenticação flexível e modelo.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Transmitir eventos para um balde de armazenamento de objetos compatível com S3. Em breve.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Encaminha eventos diretamente para a sua conta no Datadog. Em breve.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Escolha um tipo de destino para começar.", "streamingFailedToLoad": "Falha ao carregar destinos", "streamingUnexpectedError": "Ocorreu um erro inesperado.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Meu destino HTTP", "httpDestUrlLabel": "URL de destino", "httpDestUrlErrorHttpRequired": "A URL deve usar http ou https", - "httpDestUrlErrorHttpsRequired": "HTTPS é necessário em implantações em nuvem", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Informe uma URL válida (por exemplo, https://example.com/webhook)", "httpDestAuthTitle": "Autenticação", "httpDestAuthDescription": "Escolha como os pedidos para seu endpoint são autenticados.", From 83ba463a344bef426d46b7716bb0563e723d5a03 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:48:07 -0700 Subject: [PATCH 14/33] New translations en-us.json (Russian) --- messages/ru-RU.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/ru-RU.json b/messages/ru-RU.json index 12a285100..18b22a49e 100644 --- a/messages/ru-RU.json +++ b/messages/ru-RU.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP вебхук", "streamingHttpWebhookDescription": "Отправлять события на любую конечную точку HTTP с гибкой аутентификацией и шаблоном.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Потоковая передача событий к пакету хранения объектов, совместимому с S3.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Перенаправлять события непосредственно на ваш аккаунт в Datadog. Скоро будет доступно.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Выберите тип назначения, чтобы начать.", "streamingFailedToLoad": "Не удалось загрузить места назначения", "streamingUnexpectedError": "Произошла непредвиденная ошибка.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Мой HTTP адрес назначения", "httpDestUrlLabel": "URL назначения", "httpDestUrlErrorHttpRequired": "URL должен использовать http или https", - "httpDestUrlErrorHttpsRequired": "Требуется HTTPS при развертывании облака", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Введите действительный URL (например, https://example.com/webhook)", "httpDestAuthTitle": "Аутентификация", "httpDestAuthDescription": "Выберите, как запросы к вашей конечной точке аутентифицированы.", From a2f822889dc7eb3cd2ae68e3293244f575097ad7 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:48:09 -0700 Subject: [PATCH 15/33] New translations en-us.json (Turkish) --- messages/tr-TR.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/tr-TR.json b/messages/tr-TR.json index f13f6588b..0b466f3f9 100644 --- a/messages/tr-TR.json +++ b/messages/tr-TR.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "Esnek kimlik doğrulama ve şablon oluşturmayla her HTTP uç noktasına olaylar gönderin.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Olayları S3 uyumlu bir nesne depolama kovasına iletin. Yakında gelicek.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Olayları doğrudan Datadog hesabınıza iletin. Yakında gelicek.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Başlamak için bir hedef türü seçin.", "streamingFailedToLoad": "Hedefler yüklenemedi", "streamingUnexpectedError": "Beklenmeyen bir hata oluştu.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Benim HTTP hedefim", "httpDestUrlLabel": "Hedef URL", "httpDestUrlErrorHttpRequired": "URL http veya https kullanmalıdır", - "httpDestUrlErrorHttpsRequired": "Bulut dağıtımlarında HTTPS gereklidir", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Geçerli bir URL girin (örn. https://example.com/webhook)", "httpDestAuthTitle": "Kimlik Doğrulama", "httpDestAuthDescription": "Uç noktanıza yapılan isteklerin nasıl kimlik doğrulandığını seçin.", From 5a792e99132db45e3365b8e906c83a502c822ebc Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:48:11 -0700 Subject: [PATCH 16/33] New translations en-us.json (Chinese Simplified) --- messages/zh-CN.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 4d5d96d7e..6c357e78d 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "将事件发送到任意HTTP端点并灵活验证和模板。", "streamingS3Title": "Amazon S3", - "streamingS3Description": "将事件串流到 S3 兼容的对象存储桶。即将推出。", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "直接转发事件到您的Datadog 帐户。即将推出。", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "选择要开始的目标类型。", "streamingFailedToLoad": "加载目的地失败", "streamingUnexpectedError": "发生意外错误.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "我的 HTTP 目标", "httpDestUrlLabel": "目标网址", "httpDestUrlErrorHttpRequired": "URL 必须使用 http 或 https", - "httpDestUrlErrorHttpsRequired": "云端部署需要HTTPS", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "输入一个有效的 URL (例如,https://example.com/webhook)", "httpDestAuthTitle": "认证", "httpDestAuthDescription": "选择如何验证您的端点的请求。", From b6c6590aad0dfe12e5ea2fb79de274c37336c017 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 19:48:12 -0700 Subject: [PATCH 17/33] New translations en-us.json (Norwegian Bokmal) --- messages/nb-NO.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/messages/nb-NO.json b/messages/nb-NO.json index 8e864f5b7..a6237be88 100644 --- a/messages/nb-NO.json +++ b/messages/nb-NO.json @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "Send hendelser til alle HTTP-endepunkter med fleksibel autentisering og maling.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Strøm hendelser til en S3-kompatibel objektlagringskjøt. Kommer snart.", + "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Videresend arrangementer direkte til din Datadog-konto. Kommer snart.", + "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", "streamingTypePickerDescription": "Velg en måltype for å komme i gang.", "streamingFailedToLoad": "Kan ikke laste inn destinasjoner", "streamingUnexpectedError": "En uventet feil oppstod.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Min HTTP destinasjon", "httpDestUrlLabel": "Destinasjons URL", "httpDestUrlErrorHttpRequired": "URL-adressen må bruke httpp eller https", - "httpDestUrlErrorHttpsRequired": "HTTPS er nødvendig for distribusjon av sky", + "httpDestUrlErrorHttpsRequired": "HTTPS is required", "httpDestUrlErrorInvalid": "Skriv inn en gyldig nettadresse (f.eks. https://eksempel.com/webhook)", "httpDestAuthTitle": "Autentisering", "httpDestAuthDescription": "Velg hvordan ønsker til sluttpunktet ditt er autentisert.", From 1c78a6b48318e30e03c9745c9d83ede05947fff1 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 14 Apr 2026 20:21:34 -0700 Subject: [PATCH 18/33] Adjust self serve --- messages/en-US.json | 2 +- server/lib/billing/licenses.ts | 4 ++-- .../routers/billing/hooks/handleSubscriptionCreated.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index d32ad85c1..d1ce572bd 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Scale", - "description": "Enterprise features, 50 users, 50 sites, and priority support." + "description": "Enterprise features, 50 users, 100 sites, and priority support." } }, "personalUseOnly": "Personal use only (free license - no checkout)", diff --git a/server/lib/billing/licenses.ts b/server/lib/billing/licenses.ts index 3fecb32b5..ff942d11b 100644 --- a/server/lib/billing/licenses.ts +++ b/server/lib/billing/licenses.ts @@ -9,8 +9,8 @@ export type LicensePriceSet = { export const licensePriceSet: LicensePriceSet = { // Free license matches the freeLimitSet - [LicenseId.SMALL_LICENSE]: "price_1SxKHiD3Ee2Ir7WmvtEh17A8", - [LicenseId.BIG_LICENSE]: "price_1SxKHiD3Ee2Ir7WmMUiP0H6Y" + [LicenseId.SMALL_LICENSE]: "price_1TMJzmD3Ee2Ir7Wm05NlGImT", + [LicenseId.BIG_LICENSE]: "price_1TMJzzD3Ee2Ir7WmzJw9TerS" }; export const licensePriceSetSandbox: LicensePriceSet = { diff --git a/server/private/routers/billing/hooks/handleSubscriptionCreated.ts b/server/private/routers/billing/hooks/handleSubscriptionCreated.ts index a40142526..8e87cd769 100644 --- a/server/private/routers/billing/hooks/handleSubscriptionCreated.ts +++ b/server/private/routers/billing/hooks/handleSubscriptionCreated.ts @@ -217,7 +217,7 @@ export async function handleSubscriptionCreated( subscriptionPriceId === priceSet[LicenseId.BIG_LICENSE] ) { numUsers = 50; - numSites = 50; + numSites = 100; } else { logger.error( `Unknown price ID ${subscriptionPriceId} for subscription ${subscription.id}` From ae36d3228f2242208d27756c7604353fd4d49911 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 14 Apr 2026 20:23:56 -0700 Subject: [PATCH 19/33] Remove journal --- config/db/.gitignore | 1 + config/db/db.sqlite-journal | Bin 8720 -> 0 bytes 2 files changed, 1 insertion(+) create mode 100644 config/db/.gitignore delete mode 100644 config/db/db.sqlite-journal diff --git a/config/db/.gitignore b/config/db/.gitignore new file mode 100644 index 000000000..9d4b1bb9c --- /dev/null +++ b/config/db/.gitignore @@ -0,0 +1 @@ +*-journal diff --git a/config/db/db.sqlite-journal b/config/db/db.sqlite-journal deleted file mode 100644 index 46b7df58754fea40205eefd5c1412c307c55edfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8720 zcmeGiO>Z05aVg89sMuaRiNXR#<3#|~A!t$j{t#*?D{>__Q^C^lkk!tnSj^KKK^D}>`04C$LcFW}|5sJT405Rb+ZkyJVo%VZ<5RB|zuOT{zkTbuRW-l2Nb*Wb>t?<5L+ zv@Ef!vG7VkI;_-d^+I`VVQZ_tx|h8U94DynKIA(cO+7^7;I0qM&jqMi%lrUoejmxQ z+MC}|WnER~4OKH#NjL2mYd4iP+uJ_cTi@vyj^5Um^{s>3iCg0BM6sv0TZg#~wc8Vv zL|h=vPh#^w&3=Z>Ui!rTD8#vRrYg>t62T)C61F0ba;!|q-ziPW5NQw8%s4^aR3$T1(}Kb*}_RFI;kr>WU# zDh!ap%rGQ|Q0iGBQRptPRkjw@*9r$~nRGt9u$r%LzH=kd&aM^r)zw~lEqx^C`sw{` z(kD11@KzIc;%#;`eEjH7*Fh)W)@DgE5VNalZQfuK@E0JTk9vz?C@Mf>E8yom8cZgg z4|w~C`3Y0t5&1*tEMU*kUtpSt^iT8;^uOuv>3`CHr@x`UroW=Ur2k5Papv&MSH30c zQ~JjfSd9P=sF(dgcFs4rDk&m55|Cy{yOO{|CN)I0%}Yw7t4If3L}FgaS2?!EG4*nB zv(7Qaa)Gdm%tp1i&Q`aX8{9U-)@zkw891zSZiTIvYRoP#>j;zR25)qAYYF3EuXd0kN=oahhd(;%NE*^v!_^ow zka^vxA_zKOW(@c1D6|Tya^V}9=J6~^l2q0GK8wDI+ zipubUA*l+Ep8{9n04DIdz>8=m^e*iWUb*5MoHe6nhgTFN7CX8-x#*1-7Y?BZ21p%y zlgKD>;$kKgyEql(uJ|Z3Df9yw^1H!zp~m7QX}G)^F?V{Yb>58P!6iZ;4iZSVRkG$6 zMrmcCEX5FB@>Jb27p8(Y=AN#b#nDmE`l9du>YVAa2bWD1tuh9Y>rT#lm2=^iX3ppH z=a?b2;b7+5;BzNA9arOEQni*7l%8l7WC@AFm~nH9?Mj92i?6A9%ZwF?n(oRGEX zg-NV~XM3y5MvRtWo`8s!OZj@xp9(3^xd9P*H) zI8{0xbD`C-91~%IU+gR$yyy1^FJJcEvkos?NBcEB(t9Vm?Q}s*mT}V4UU&Y-3feEG z{J~AA9C^2(Ng|vrlF@e(_sNnbKv(48{KxCZ)0aC{gk*A3QJX&N4;DeS@X4yV84o)` zs5Ny8wcMpAsWc=AZA?xD!(rdHnNN1pqa*136_9H6K+fk`PfR?4d{g1u=o*lQ?(Lp2 zbM!;MlcR+CUSlRb9C4Zur2pGeiQ5jMLb{($IlutuajcF;IUOh_ zlU2BJxlIg)jP6vh8YbDOHVP*T+k&WeOK2Hi8c>}lW@JJ%F#Z`-JiM-c=r{LM+^}S>FH-Ouhr3PHem2Mkpl7PuW zs}obfcT=AJ87{^j56;2(#{vEqj^Eyep^NY8`w|S>O&HcIFysp`q<#&<+%*_pdmV<^ KOOGFY9Q_&BqR?Fc From ffd345f044a7602e394aa7e6ae0c7a5f529325f4 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:36 -0700 Subject: [PATCH 20/33] New translations en-us.json (French) --- messages/fr-FR.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/fr-FR.json b/messages/fr-FR.json index eaa5a684a..6b2efec27 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Échelle", - "description": "Fonctionnalités d'entreprise, 50 utilisateurs, 50 sites et une prise en charge prioritaire." + "description": "Fonctionnalités d'entreprise, 50 utilisateurs, 100 sites et support prioritaire." } }, "personalUseOnly": "Usage personnel uniquement (licence gratuite - pas de validation)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Envoyez des événements à n'importe quel point de terminaison HTTP avec une authentification flexible et un template.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Flux d'événements vers un compartiment de stockage d'objet compatible S3. Bientôt.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Transférer des événements directement sur votre compte Datadog. Prochainement.", "streamingTypePickerDescription": "Choisissez un type de destination pour commencer.", "streamingFailedToLoad": "Impossible de charger les destinations", "streamingUnexpectedError": "Une erreur inattendue s'est produite.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Ma destination HTTP", "httpDestUrlLabel": "URL de destination", "httpDestUrlErrorHttpRequired": "L'URL doit utiliser http ou https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "HTTPS est requis pour les déploiements du cloud", "httpDestUrlErrorInvalid": "Entrez une URL valide (par exemple https://example.com/webhook)", "httpDestAuthTitle": "Authentification", "httpDestAuthDescription": "Choisissez comment les requêtes à votre terminaison sont authentifiées.", From f7633a43ce65e32cd0469365ec304db9f91112f1 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:38 -0700 Subject: [PATCH 21/33] New translations en-us.json (Bulgarian) --- messages/bg-BG.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/bg-BG.json b/messages/bg-BG.json index 64e5e481e..a44d1948f 100644 --- a/messages/bg-BG.json +++ b/messages/bg-BG.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Скала", - "description": "Предприятие, 50 потребители, 50 сайта и приоритетна поддръжка." + "description": "Функции за корпоративни клиенти, 50 потребители, 100 сайта и приоритетна поддръжка." } }, "personalUseOnly": "Само за лична употреба (безплатен лиценз - без проверка)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Уеб хук", "streamingHttpWebhookDescription": "Изпратете събития до всяка HTTP крайна точка с гъвкаво удостоверяване и шаблониране.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Предавайте събития на хранилище, съвместимо с S3. Очаквайте скоро.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Пресочвайте събития директно към вашият акаунт в Datadog. Очаквайте скоро.", "streamingTypePickerDescription": "Изберете вид на дестинацията, за да започнете.", "streamingFailedToLoad": "Неуспешно зареждане на дестинации", "streamingUnexpectedError": "Възникна неочаквана грешка.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Моята HTTP дестинация", "httpDestUrlLabel": "Дестинация URL", "httpDestUrlErrorHttpRequired": "URL адресът трябва да използва http или https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "SSL е необходимо за облачни инсталации", "httpDestUrlErrorInvalid": "Въведете валиден URL (напр. https://example.com/webhook)", "httpDestAuthTitle": "Удостоверяване", "httpDestAuthDescription": "Изберете как заявленията ви се удостоверяват.", From af3abef3bf78ea2a22c43d61309c37d102170291 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:39 -0700 Subject: [PATCH 22/33] New translations en-us.json (Czech) --- messages/cs-CZ.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/cs-CZ.json b/messages/cs-CZ.json index e28cb07f2..3a797e564 100644 --- a/messages/cs-CZ.json +++ b/messages/cs-CZ.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Měřítko", - "description": "Podnikové funkce, 50 uživatelů, 50 míst a prioritní podpory." + "description": "Podnikové funkce, 50 uživatelů, 100 stránek a prioritní podpora." } }, "personalUseOnly": "Pouze pro osobní použití (zdarma licence - bez ověření)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP webový háček", "streamingHttpWebhookDescription": "Odeslat události na libovolný HTTP koncový bod s pružnou autentizací a šablonou.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Streamujte události do úložiště, které je kompatibilní se S3. Brzy přijde.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Přeposlat události přímo do vašeho účtu Datadog účtu. Brzy přijde.", "streamingTypePickerDescription": "Vyberte cílový typ pro začátek.", "streamingFailedToLoad": "Nepodařilo se načíst destinace", "streamingUnexpectedError": "Došlo k neočekávané chybě.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Moje HTTP cíl", "httpDestUrlLabel": "Cílová adresa URL", "httpDestUrlErrorHttpRequired": "URL musí používat http nebo https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "HTTPS je vyžadován při nasazení do cloudu", "httpDestUrlErrorInvalid": "Zadejte platnou URL (např. https://example.com/webhook)", "httpDestAuthTitle": "Autentifikace", "httpDestAuthDescription": "Zvolte, jak jsou požadavky na tvůj koncový bod ověřeny.", From a4da3c7ba2320aa05851af45e84aa01ad4b4b739 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:41 -0700 Subject: [PATCH 23/33] New translations en-us.json (German) --- messages/de-DE.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/de-DE.json b/messages/de-DE.json index 6ab5c197a..2b5e92865 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Maßstab", - "description": "Enterprise Features, 50 Benutzer, 50 Sites und Prioritätsunterstützung." + "description": "Unternehmensmerkmale, 50 Benutzer, 100 Standorte und prioritärer Support." } }, "personalUseOnly": "Nur persönliche Nutzung (kostenlose Lizenz - kein Checkout)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "Sende Ereignisse an jeden HTTP-Endpunkt mit flexibler Authentifizierung und Vorlage.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Streame Ereignisse in eine S3-kompatible Objekt-Speicher-Eimer. Kommt bald.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Events direkt an Ihr Datadog Konto weiterleiten. Kommen Sie bald.", "streamingTypePickerDescription": "Wählen Sie einen Zieltyp aus, um loszulegen.", "streamingFailedToLoad": "Fehler beim Laden der Ziele", "streamingUnexpectedError": "Ein unerwarteter Fehler ist aufgetreten.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Mein HTTP-Ziel", "httpDestUrlLabel": "Ziel-URL", "httpDestUrlErrorHttpRequired": "URL muss http oder https verwenden", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "HTTPS wird für Cloud-Deployment benötigt", "httpDestUrlErrorInvalid": "Geben Sie eine gültige URL ein (z.B. https://example.com/webhook)", "httpDestAuthTitle": "Authentifizierung", "httpDestAuthDescription": "Legen Sie fest, wie Anfragen an Ihren Endpunkt authentifiziert werden.", From b2f391307bee15f7b967880094ab02d0f2fe4947 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:43 -0700 Subject: [PATCH 24/33] New translations en-us.json (Italian) --- messages/it-IT.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/it-IT.json b/messages/it-IT.json index e7e06aad9..6a771b5a3 100644 --- a/messages/it-IT.json +++ b/messages/it-IT.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Scala", - "description": "Funzionalità aziendali, 50 utenti, 50 siti e supporto prioritario." + "description": "Funzionalità aziendali, 50 utenti, 100 siti e supporto prioritario." } }, "personalUseOnly": "Uso personale esclusivo (licenza gratuita - nessun pagamento)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Invia eventi a qualsiasi endpoint HTTP con autenticazione e template flessibili.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Trasmetti eventi su un contenitore di archiviazione per oggetti compatibile con S3. Presto in arrivo.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Inoltra gli eventi direttamente al tuo account Datadog. In arrivo.", "streamingTypePickerDescription": "Scegli un tipo di destinazione per iniziare.", "streamingFailedToLoad": "Impossibile caricare le destinazioni", "streamingUnexpectedError": "Si è verificato un errore imprevisto.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "La mia destinazione HTTP", "httpDestUrlLabel": "Url Di Destinazione", "httpDestUrlErrorHttpRequired": "L'URL deve usare http o https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "HTTPS è richiesto sulle distribuzioni cloud", "httpDestUrlErrorInvalid": "Inserisci un URL valido (es. https://example.com/webhook)", "httpDestAuthTitle": "Autenticazione", "httpDestAuthDescription": "Scegli come vengono autenticate le richieste al tuo endpoint.", From 18e194e15283689d3057329ca2a69f9fa2c68bf7 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:44 -0700 Subject: [PATCH 25/33] New translations en-us.json (Korean) --- messages/ko-KR.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/ko-KR.json b/messages/ko-KR.json index f8b213245..b444d9f4d 100644 --- a/messages/ko-KR.json +++ b/messages/ko-KR.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "스케일", - "description": "기업 기능, 50명의 사용자, 50개의 사이트, 우선 지원." + "description": "기업 기능, 50명의 사용자, 100개의 사이트, 그리고 우선 지원." } }, "personalUseOnly": "개인용으로만 사용 (무료 라이선스 - 결제 없음)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP 웹훅", "streamingHttpWebhookDescription": "유연한 인증 및 템플릿 작성 기능을 갖춘 HTTP 엔드포인트에 이벤트를 전송합니다.", "streamingS3Title": "아마존 S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "S3 호환 객체 스토리지 버킷에 이벤트를 스트리밍합니다. 곧 제공됩니다.", "streamingDatadogTitle": "데이터독", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "이벤트를 직접 Datadog 계정으로 전달합니다. 곧 제공됩니다.", "streamingTypePickerDescription": "목표 유형을 선택하여 시작합니다.", "streamingFailedToLoad": "대상 로드에 실패했습니다", "streamingUnexpectedError": "예기치 않은 오류가 발생했습니다.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "내 HTTP 대상", "httpDestUrlLabel": "대상 URL", "httpDestUrlErrorHttpRequired": "URL은 http 또는 https를 사용해야 합니다", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "클라우드 배포에는 HTTPS가 필요합니다", "httpDestUrlErrorInvalid": "유효한 URL을 입력하세요 (예: https://example.com/webhook)", "httpDestAuthTitle": "인증", "httpDestAuthDescription": "엔드포인트에 대한 요청 인증 방법을 선택하세요.", From 95c6bb4de6ac94044d166a2ffe9f746442d258bd Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:46 -0700 Subject: [PATCH 26/33] New translations en-us.json (Dutch) --- messages/nl-NL.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/nl-NL.json b/messages/nl-NL.json index 4a554f11d..987e08419 100644 --- a/messages/nl-NL.json +++ b/messages/nl-NL.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Schaal", - "description": "Enterprise functies, 50 gebruikers, 50 sites en prioriteit ondersteuning." + "description": "Enterprise-functies, 50 gebruikers, 100 sites en prioritaire ondersteuning." } }, "personalUseOnly": "Alleen voor persoonlijk gebruik (gratis licentie - geen afrekening)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "Stuur gebeurtenissen naar elk HTTP eindpunt met flexibele authenticatie en template.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Stream events naar een S3-compatibele object-opslagemmer. Binnenkort beschikbaar.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Stuur gebeurtenissen rechtstreeks door naar je Datadog account. Binnenkort beschikbaar.", "streamingTypePickerDescription": "Kies een bestemmingstype om te beginnen.", "streamingFailedToLoad": "Laden van bestemmingen mislukt", "streamingUnexpectedError": "Er is een onverwachte fout opgetreden.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Mijn HTTP-bestemming", "httpDestUrlLabel": "Bestemming URL", "httpDestUrlErrorHttpRequired": "URL moet http of https gebruiken", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "HTTPS is vereist op cloud implementaties", "httpDestUrlErrorInvalid": "Voer een geldige URL in (bijv. https://example.com/webhook)", "httpDestAuthTitle": "Authenticatie", "httpDestAuthDescription": "Kies hoe verzoeken voor uw eindpunt zijn geverifieerd.", From e481a4d847fc043cfc5c3c1a838b2db9a7d324b6 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:48 -0700 Subject: [PATCH 27/33] New translations en-us.json (Polish) --- messages/pl-PL.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/pl-PL.json b/messages/pl-PL.json index 6fb1656c3..eb4b4af2f 100644 --- a/messages/pl-PL.json +++ b/messages/pl-PL.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Skala", - "description": "Cechy przedsiębiorstw, 50 użytkowników, 50 obiektów i wsparcie priorytetowe." + "description": "Funkcje dla przedsiębiorstw, 50 użytkowników, 100 witryn i priorytetowe wsparcie." } }, "personalUseOnly": "Tylko do użytku osobistego (darmowa licencja - bez płatności)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Wyślij zdarzenia do dowolnego punktu końcowego HTTP z elastycznym uwierzytelnianiem i szablonem.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Zdarzenia strumieniowe do magazynu obiektów kompatybilnych z S3. Już wkrótce.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Przekaż wydarzenia bezpośrednio do Twojego konta Datadog. Już wkrótce.", "streamingTypePickerDescription": "Wybierz typ docelowy, aby rozpocząć.", "streamingFailedToLoad": "Nie udało się załadować miejsc docelowych", "streamingUnexpectedError": "Wystąpił nieoczekiwany błąd.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Mój cel HTTP", "httpDestUrlLabel": "Adres docelowy", "httpDestUrlErrorHttpRequired": "Adres URL musi używać http lub https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "HTTPS jest wymagany dla wdrożenia w chmurze", "httpDestUrlErrorInvalid": "Wprowadź poprawny adres URL (np. https://example.com/webhook)", "httpDestAuthTitle": "Uwierzytelnianie", "httpDestAuthDescription": "Wybierz sposób uwierzytelniania żądań do Twojego punktu końcowego.", From 097744275f37b596a6bb0c27d213b740a8fc743e Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:49 -0700 Subject: [PATCH 28/33] New translations en-us.json (Portuguese) --- messages/pt-PT.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/pt-PT.json b/messages/pt-PT.json index 02623f239..a16101e43 100644 --- a/messages/pt-PT.json +++ b/messages/pt-PT.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Escala", - "description": "Recursos de empresa, 50 usuários, 50 sites e apoio prioritário." + "description": "Recursos empresariais, 50 usuários, 100 sites, e suporte prioritário." } }, "personalUseOnly": "Uso pessoal apenas (licença gratuita - sem checkout)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Envie os eventos para qualquer endpoint HTTP com autenticação flexível e modelo.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Transmitir eventos para um balde de armazenamento de objetos compatível com S3. Em breve.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Encaminha eventos diretamente para a sua conta no Datadog. Em breve.", "streamingTypePickerDescription": "Escolha um tipo de destino para começar.", "streamingFailedToLoad": "Falha ao carregar destinos", "streamingUnexpectedError": "Ocorreu um erro inesperado.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Meu destino HTTP", "httpDestUrlLabel": "URL de destino", "httpDestUrlErrorHttpRequired": "A URL deve usar http ou https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "HTTPS é necessário em implantações em nuvem", "httpDestUrlErrorInvalid": "Informe uma URL válida (por exemplo, https://example.com/webhook)", "httpDestAuthTitle": "Autenticação", "httpDestAuthDescription": "Escolha como os pedidos para seu endpoint são autenticados.", From 01a40daf38a089af17d5b7be7568293c302df4fa Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:51 -0700 Subject: [PATCH 29/33] New translations en-us.json (Russian) --- messages/ru-RU.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/ru-RU.json b/messages/ru-RU.json index 18b22a49e..279f8b1a8 100644 --- a/messages/ru-RU.json +++ b/messages/ru-RU.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Масштаб", - "description": "Функции предприятия, 50 пользователей, 50 сайтов, а также приоритетная поддержка." + "description": "Функции корпоративного уровня, 50 пользователей, 100 сайтов и приоритетная поддержка." } }, "personalUseOnly": "Только для личного использования (бесплатная лицензия - без оформления на кассе)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP вебхук", "streamingHttpWebhookDescription": "Отправлять события на любую конечную точку HTTP с гибкой аутентификацией и шаблоном.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Потоковая передача событий к пакету хранения объектов, совместимому с S3.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Перенаправлять события непосредственно на ваш аккаунт в Datadog. Скоро будет доступно.", "streamingTypePickerDescription": "Выберите тип назначения, чтобы начать.", "streamingFailedToLoad": "Не удалось загрузить места назначения", "streamingUnexpectedError": "Произошла непредвиденная ошибка.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Мой HTTP адрес назначения", "httpDestUrlLabel": "URL назначения", "httpDestUrlErrorHttpRequired": "URL должен использовать http или https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "Требуется HTTPS при развертывании облака", "httpDestUrlErrorInvalid": "Введите действительный URL (например, https://example.com/webhook)", "httpDestAuthTitle": "Аутентификация", "httpDestAuthDescription": "Выберите, как запросы к вашей конечной точке аутентифицированы.", From fe68533ff2234e9c7e55f06418107964af53f00c Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:53 -0700 Subject: [PATCH 30/33] New translations en-us.json (Turkish) --- messages/tr-TR.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/tr-TR.json b/messages/tr-TR.json index 0b466f3f9..e38b93ca8 100644 --- a/messages/tr-TR.json +++ b/messages/tr-TR.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Ölçek", - "description": "Kurumsal özellikler, 50 kullanıcı, 50 site ve öncelikli destek." + "description": "Kurumsal özellikler, 50 kullanıcı, 100 site ve öncelikli destek." } }, "personalUseOnly": "Kişisel kullanım için (ücretsiz lisans - ödeme yok)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "Esnek kimlik doğrulama ve şablon oluşturmayla her HTTP uç noktasına olaylar gönderin.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Olayları S3 uyumlu bir nesne depolama kovasına iletin. Yakında gelicek.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Olayları doğrudan Datadog hesabınıza iletin. Yakında gelicek.", "streamingTypePickerDescription": "Başlamak için bir hedef türü seçin.", "streamingFailedToLoad": "Hedefler yüklenemedi", "streamingUnexpectedError": "Beklenmeyen bir hata oluştu.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Benim HTTP hedefim", "httpDestUrlLabel": "Hedef URL", "httpDestUrlErrorHttpRequired": "URL http veya https kullanmalıdır", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "Bulut dağıtımlarında HTTPS gereklidir", "httpDestUrlErrorInvalid": "Geçerli bir URL girin (örn. https://example.com/webhook)", "httpDestAuthTitle": "Kimlik Doğrulama", "httpDestAuthDescription": "Uç noktanıza yapılan isteklerin nasıl kimlik doğrulandığını seçin.", From 2dbb21a7f2904235ffb6c5be734e97a45637653f Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:55 -0700 Subject: [PATCH 31/33] New translations en-us.json (Chinese Simplified) --- messages/zh-CN.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 6c357e78d..761f39524 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "缩放比例", - "description": "企业特征、50个用户、50个站点和优先支持。" + "description": "企业功能,50个用户,100个站点,以及优先支持。" } }, "personalUseOnly": "仅限个人使用(免费许可 - 无需结账)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "将事件发送到任意HTTP端点并灵活验证和模板。", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "将事件串流到 S3 兼容的对象存储桶。即将推出。", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "直接转发事件到您的Datadog 帐户。即将推出。", "streamingTypePickerDescription": "选择要开始的目标类型。", "streamingFailedToLoad": "加载目的地失败", "streamingUnexpectedError": "发生意外错误.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "我的 HTTP 目标", "httpDestUrlLabel": "目标网址", "httpDestUrlErrorHttpRequired": "URL 必须使用 http 或 https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "云端部署需要HTTPS", "httpDestUrlErrorInvalid": "输入一个有效的 URL (例如,https://example.com/webhook)", "httpDestAuthTitle": "认证", "httpDestAuthDescription": "选择如何验证您的端点的请求。", From bd73609b9eb1f955ca79c6bf93323204c69c8eb8 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:56 -0700 Subject: [PATCH 32/33] New translations en-us.json (Norwegian Bokmal) --- messages/nb-NO.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/nb-NO.json b/messages/nb-NO.json index a6237be88..91593503a 100644 --- a/messages/nb-NO.json +++ b/messages/nb-NO.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Skala", - "description": "Enterprise features, 50 brukere, 50 nettsteder og prioritetsstøtte." + "description": "Funksjoner for bedrifter, 50 brukere, 100 nettsteder og prioritert support." } }, "personalUseOnly": "Kun personlig bruk (gratis lisens - ingen kasse)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "HTTP Webhook", "streamingHttpWebhookDescription": "Send hendelser til alle HTTP-endepunkter med fleksibel autentisering og maling.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Strøm hendelser til en S3-kompatibel objektlagringskjøt. Kommer snart.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Videresend arrangementer direkte til din Datadog-konto. Kommer snart.", "streamingTypePickerDescription": "Velg en måltype for å komme i gang.", "streamingFailedToLoad": "Kan ikke laste inn destinasjoner", "streamingUnexpectedError": "En uventet feil oppstod.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Min HTTP destinasjon", "httpDestUrlLabel": "Destinasjons URL", "httpDestUrlErrorHttpRequired": "URL-adressen må bruke httpp eller https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "HTTPS er nødvendig for distribusjon av sky", "httpDestUrlErrorInvalid": "Skriv inn en gyldig nettadresse (f.eks. https://eksempel.com/webhook)", "httpDestAuthTitle": "Autentisering", "httpDestAuthDescription": "Velg hvordan ønsker til sluttpunktet ditt er autentisert.", From bcc429221e11c2a7177da5375bcb682cbf97be55 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Tue, 14 Apr 2026 20:30:58 -0700 Subject: [PATCH 33/33] New translations en-us.json (Spanish) --- messages/es-ES.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/messages/es-ES.json b/messages/es-ES.json index b97daa697..34c4cc970 100644 --- a/messages/es-ES.json +++ b/messages/es-ES.json @@ -2351,7 +2351,7 @@ }, "scale": { "title": "Escala", - "description": "Características de la empresa, 50 usuarios, 50 sitios y soporte prioritario." + "description": "Funcionalidades empresariales, 50 usuarios, 100 sitios y soporte prioritario." } }, "personalUseOnly": "Solo uso personal (licencia gratuita - sin salida)", @@ -2824,9 +2824,9 @@ "streamingHttpWebhookTitle": "Webhook HTTP", "streamingHttpWebhookDescription": "Enviar eventos a cualquier extremo HTTP con autenticación flexible y plantilla.", "streamingS3Title": "Amazon S3", - "streamingS3Description": "Stream events to an S3-compatible object storage bucket. Contact support to enable this destination.", + "streamingS3Description": "Transmite eventos a un bucket de almacenamiento de objetos compatible con S3. Próximamente.", "streamingDatadogTitle": "Datadog", - "streamingDatadogDescription": "Forward events directly to your Datadog account. Contact support to enable this destination.", + "streamingDatadogDescription": "Reenviar eventos directamente a tu cuenta de Datadog. Próximamente.", "streamingTypePickerDescription": "Elija un tipo de destino para empezar.", "streamingFailedToLoad": "Error al cargar destinos", "streamingUnexpectedError": "Se ha producido un error inesperado.", @@ -2849,7 +2849,7 @@ "httpDestNamePlaceholder": "Mi destino HTTP", "httpDestUrlLabel": "URL de destino", "httpDestUrlErrorHttpRequired": "URL debe usar http o https", - "httpDestUrlErrorHttpsRequired": "HTTPS is required", + "httpDestUrlErrorHttpsRequired": "HTTPS es necesario en implementaciones en la nube", "httpDestUrlErrorInvalid": "Introduzca una URL válida (ej. https://example.com/webhook)", "httpDestAuthTitle": "Autenticación", "httpDestAuthDescription": "Elija cómo están autenticadas las solicitudes en su punto final.",