diff --git a/.env.example b/.env.example index b0635076bc..371366b55d 100644 --- a/.env.example +++ b/.env.example @@ -131,9 +131,11 @@ NEXT_PRIVATE_SMTP_SECURE= # OPTIONAL: if this is true and NEXT_PRIVATE_SMTP_SECURE is false then TLS is not used even if the server supports STARTTLS extension NEXT_PRIVATE_SMTP_UNSAFE_IGNORE_TLS= # REQUIRED: Defines the sender name to use for the from address. -NEXT_PRIVATE_SMTP_FROM_NAME="Documenso" +NEXT_PRIVATE_SMTP_FROM_NAME="Crove Sign" # REQUIRED: Defines the email address to use as the from address. -NEXT_PRIVATE_SMTP_FROM_ADDRESS="noreply@documenso.com" +NEXT_PRIVATE_SMTP_FROM_ADDRESS="noreply@sign.crove.com" +# OPTIONAL: Support contact shown in transactional emails (password reset "contact us"). +NEXT_PUBLIC_SUPPORT_EMAIL="support@dos.ai" # OPTIONAL: Defines the service for nodemailer NEXT_PRIVATE_SMTP_SERVICE= # OPTIONAL: The API key to use for Resend.com diff --git a/apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx b/apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx index 0cd5e3c4ce..b791a4745a 100644 --- a/apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx +++ b/apps/remix/app/components/dialogs/envelope-distribute-dialog.tsx @@ -359,7 +359,7 @@ export const EnvelopeDistributeDialog = ({ ))} - Documenso + Crove Sign diff --git a/apps/remix/app/components/embed/embed-document-completed.tsx b/apps/remix/app/components/embed/embed-document-completed.tsx index da11e59efd..be94ca76b5 100644 --- a/apps/remix/app/components/embed/embed-document-completed.tsx +++ b/apps/remix/app/components/embed/embed-document-completed.tsx @@ -18,7 +18,7 @@ export const EmbedDocumentCompleted = ({ name, signature }: EmbedDocumentComplet
diff --git a/apps/remix/app/components/general/settings-upsell/branding-upsell.tsx b/apps/remix/app/components/general/settings-upsell/branding-upsell.tsx index f74432cf77..8db54e02ce 100644 --- a/apps/remix/app/components/general/settings-upsell/branding-upsell.tsx +++ b/apps/remix/app/components/general/settings-upsell/branding-upsell.tsx @@ -8,27 +8,27 @@ import { useTimedCycle } from './use-timed-cycle'; const DEMO_BRANDS = [ { - name: 'Documenso', - letter: 'D', - domain: 'noreply@app.documenso.com', + name: 'Crove Sign', + letter: 'C', + domain: 'noreply@sign.crove.com', accent: '#A2E771', ink: '#162C07', tint: '#F2FBEA', sheen: 'rgba(162, 231, 113, 0.32)', }, { - name: 'Documenso', - letter: 'D', - domain: 'noreply@app.documenso.com', + name: 'Crove Sign', + letter: 'C', + domain: 'noreply@sign.crove.com', accent: '#387BC7', ink: '#ffffff', tint: '#EDF3FA', sheen: 'rgba(56, 123, 199, 0.28)', }, { - name: 'Documenso', - letter: 'D', - domain: 'noreply@app.documenso.com', + name: 'Crove Sign', + letter: 'C', + domain: 'noreply@sign.crove.com', accent: '#9747F5', ink: '#ffffff', tint: '#F4EDFE', diff --git a/apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx b/apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx index 183ad3b80e..44135e1f93 100644 --- a/apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx +++ b/apps/remix/app/components/general/settings-upsell/email-domains-upsell.tsx @@ -92,7 +92,7 @@ export const EmailDomainsUpsell = () => { )} - {isBranded ? Sending from your domain : Sending from app.documenso.com} + {isBranded ? Sending from your domain : Sending from Crove Sign} @@ -147,7 +147,7 @@ export const EmailDomainsUpsell = () => { transition={{ duration: 0.28, ease: EASE }} className="flex min-w-0 items-center gap-1.5" > - {isBranded ? brandedSender.name : 'Documenso'} + {isBranded ? brandedSender.name : 'Crove Sign'} {/* Inside the keyed row so it exits with the name and pops back in on every cycle step. */} {isBranded && ( @@ -174,7 +174,7 @@ export const EmailDomainsUpsell = () => { transition={{ duration: 0.28, ease: EASE }} className="truncate" > - {isBranded ? brandedSender.email : 'noreply@app.documenso.com'} + {isBranded ? brandedSender.email : 'noreply@sign.crove.com'}
diff --git a/apps/remix/app/routes/embed+/v2+/authoring+/_layout.tsx b/apps/remix/app/routes/embed+/v2+/authoring+/_layout.tsx index 87ded302a7..050f62444a 100644 --- a/apps/remix/app/routes/embed+/v2+/authoring+/_layout.tsx +++ b/apps/remix/app/routes/embed+/v2+/authoring+/_layout.tsx @@ -194,7 +194,7 @@ export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) {
  • If you are using staging, ensure that you have set the host prop on the embedding component to the - staging domain (https://stg-app.documenso.com) + your staging domain
  • diff --git a/packages/email/templates/reset-password.tsx b/packages/email/templates/reset-password.tsx index ce76690239..b008b9425b 100644 --- a/packages/email/templates/reset-password.tsx +++ b/packages/email/templates/reset-password.tsx @@ -1,3 +1,4 @@ +import { SUPPORT_EMAIL } from '@documenso/lib/constants/app'; import type { TPasswordChangeSource } from '@documenso/lib/jobs/definitions/emails/send-password-reset-success-email'; import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react'; @@ -58,7 +59,7 @@ export const ResetPasswordTemplate = ({ Didn't request a password change? We are here to help you secure your account, just{' '} - + contact us . @@ -73,7 +74,7 @@ export const ResetPasswordTemplate = ({ If this was you, no action is needed. If it wasn't, reset your password immediately and{' '} - + contact us . diff --git a/packages/lib/constants/app.ts b/packages/lib/constants/app.ts index 7a47b2021d..83ec2aed3a 100644 --- a/packages/lib/constants/app.ts +++ b/packages/lib/constants/app.ts @@ -93,7 +93,7 @@ export const IS_DOCUMENSO_CLOUD = () => env('NEXT_PUBLIC_IS_DOCUMENSO_CLOUD') == export const API_V2_BETA_URL = '/api/v2-beta'; export const API_V2_URL = '/api/v2'; -export const SUPPORT_EMAIL = env('NEXT_PUBLIC_SUPPORT_EMAIL') ?? 'support@documenso.com'; +export const SUPPORT_EMAIL = env('NEXT_PUBLIC_SUPPORT_EMAIL') ?? 'support@dos.ai'; export const USE_INTERNAL_URL_BROWSERLESS = () => env('NEXT_PUBLIC_USE_INTERNAL_URL_BROWSERLESS') === 'true'; diff --git a/packages/lib/constants/auth.ts b/packages/lib/constants/auth.ts index f995c339fe..f0f61ef138 100644 --- a/packages/lib/constants/auth.ts +++ b/packages/lib/constants/auth.ts @@ -16,7 +16,7 @@ export const SALT_ROUNDS = 12; export const TIMING_SAFE_DUMMY_PASSWORD_HASH = '$2y$12$eAJ6CR54acEljh1J/AN.peIPUd19yidDQRKhynGQriewBgzF1bQdm'; export const IDENTITY_PROVIDER_NAME: Record = { - DOCUMENSO: 'Documenso', + DOCUMENSO: 'Crove Sign', GOOGLE: 'Google', MICROSOFT: 'Microsoft', OIDC: 'OIDC', diff --git a/packages/lib/constants/email.ts b/packages/lib/constants/email.ts index a6742c5a86..61e683b32e 100644 --- a/packages/lib/constants/email.ts +++ b/packages/lib/constants/email.ts @@ -1,7 +1,7 @@ import { env } from '../utils/env'; -export const FROM_ADDRESS = env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@documenso.com'; -export const FROM_NAME = env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Documenso'; +export const FROM_ADDRESS = env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@sign.crove.com'; +export const FROM_NAME = env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Crove Sign'; export const DOCUMENSO_INTERNAL_EMAIL = { name: FROM_NAME, diff --git a/packages/lib/server-only/2fa/email/generate-2fa-credentials-from-email.ts b/packages/lib/server-only/2fa/email/generate-2fa-credentials-from-email.ts index 7e67b5eb0c..426fd35961 100644 --- a/packages/lib/server-only/2fa/email/generate-2fa-credentials-from-email.ts +++ b/packages/lib/server-only/2fa/email/generate-2fa-credentials-from-email.ts @@ -4,7 +4,7 @@ import { createTOTPKeyURI } from 'oslo/otp'; import { DOCUMENSO_ENCRYPTION_KEY } from '../../../constants/crypto'; -const ISSUER = 'Documenso Email 2FA'; +const ISSUER = 'Crove Sign Email 2FA'; export type GenerateTwoFactorCredentialsFromEmailOptions = { envelopeId: string; diff --git a/packages/lib/server-only/2fa/setup-2fa.ts b/packages/lib/server-only/2fa/setup-2fa.ts index 515d017793..4d40da83ed 100644 --- a/packages/lib/server-only/2fa/setup-2fa.ts +++ b/packages/lib/server-only/2fa/setup-2fa.ts @@ -11,7 +11,7 @@ type SetupTwoFactorAuthenticationOptions = { user: Pick; }; -const ISSUER = 'Documenso'; +const ISSUER = 'Crove Sign'; export const setupTwoFactorAuthentication = async ({ user }: SetupTwoFactorAuthenticationOptions) => { const key = DOCUMENSO_ENCRYPTION_KEY; diff --git a/packages/lib/server-only/auth/send-forgot-password.ts b/packages/lib/server-only/auth/send-forgot-password.ts index c29d92b543..d951e64511 100644 --- a/packages/lib/server-only/auth/send-forgot-password.ts +++ b/packages/lib/server-only/auth/send-forgot-password.ts @@ -57,8 +57,8 @@ export const sendForgotPassword = async ({ userId }: SendForgotPasswordOptions) name: user.name || '', }, from: { - name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Documenso', - address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@documenso.com', + name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Crove Sign', + address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@sign.crove.com', }, subject: i18n._(msg`Forgot Password?`), html, diff --git a/packages/lib/server-only/auth/send-reset-password.ts b/packages/lib/server-only/auth/send-reset-password.ts index e87537f3f2..4d044ba4aa 100644 --- a/packages/lib/server-only/auth/send-reset-password.ts +++ b/packages/lib/server-only/auth/send-reset-password.ts @@ -50,8 +50,8 @@ export const sendResetPassword = async ({ userId, source }: SendResetPasswordOpt name: user.name || '', }, from: { - name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Documenso', - address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@documenso.com', + name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Crove Sign', + address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@sign.crove.com', }, subject, html, diff --git a/packages/lib/utils/authenticator.ts b/packages/lib/utils/authenticator.ts index 5984603a97..7a44931023 100644 --- a/packages/lib/utils/authenticator.ts +++ b/packages/lib/utils/authenticator.ts @@ -9,7 +9,7 @@ export const getAuthenticatorOptions = () => { const rpId = webAppBaseUrl.hostname; return { - rpName: 'Documenso', + rpName: 'Crove Sign', rpId, origin: NEXT_PUBLIC_WEBAPP_URL(), timeout: PASSKEY_TIMEOUT,