Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ export const EnvelopeDistributeDialog = ({
</SelectItem>
))}

<SelectItem value={'-1'}>Documenso</SelectItem>
<SelectItem value={'-1'}>Crove Sign</SelectItem>
</SelectContent>
</Select>
</FormControl>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export const EmbedDocumentCompleted = ({ name, signature }: EmbedDocumentComplet
<div className="mt-8 w-full max-w-md">
<SigningCard3D
className="mx-auto w-full"
name={name || 'Documenso'}
name={name || 'Crove Sign'}
signature={signature}
signingCelebrationImage={signingCelebration}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Since the brand name has been changed from 'Documenso' to 'Crove Sign', the preview letter (on lines 12, 21, and 30) should be updated from 'D' to 'C' to match the new brand name.

Comment thread
coderabbitai[bot] marked this conversation as resolved.
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',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ export const EmailDomainsUpsell = () => {
)}

<span className="truncate">
{isBranded ? <Trans>Sending from your domain</Trans> : <Trans>Sending from app.documenso.com</Trans>}
{isBranded ? <Trans>Sending from your domain</Trans> : <Trans>Sending from Crove Sign</Trans>}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
</span>
</motion.div>
</AnimatePresence>
Expand Down Expand Up @@ -147,7 +147,7 @@ export const EmailDomainsUpsell = () => {
transition={{ duration: 0.28, ease: EASE }}
className="flex min-w-0 items-center gap-1.5"
>
<span className="min-w-0 truncate">{isBranded ? brandedSender.name : 'Documenso'}</span>
<span className="min-w-0 truncate">{isBranded ? brandedSender.name : 'Crove Sign'}</span>

{/* Inside the keyed row so it exits with the name and pops back in on every cycle step. */}
{isBranded && (
Expand All @@ -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'}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The fallback sender name on line 150 was missed and still defaults to 'Documenso'. Please update it to 'Crove Sign' to match the new branding.

</motion.p>
</AnimatePresence>
</div>
Expand Down
2 changes: 1 addition & 1 deletion apps/remix/app/routes/embed+/v2+/authoring+/_layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) {
<li>
<Trans>
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
</Trans>
</li>
</ul>
Expand Down
5 changes: 3 additions & 2 deletions packages/email/templates/reset-password.tsx
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -58,7 +59,7 @@ export const ResetPasswordTemplate = ({
<Text className="mt-2 text-base text-muted-foreground">
<Trans>
Didn't request a password change? We are here to help you secure your account, just{' '}
<Link className="font-normal text-primary" href="mailto:hi@documenso.com">
<Link className="font-normal text-primary" href={`mailto:${SUPPORT_EMAIL}`}>
contact us
</Link>
.
Expand All @@ -73,7 +74,7 @@ export const ResetPasswordTemplate = ({
<Text className="mt-2 text-base text-muted-foreground">
<Trans>
If this was you, no action is needed. If it wasn't, reset your password immediately and{' '}
<Link className="font-normal text-primary" href="mailto:hi@documenso.com">
<Link className="font-normal text-primary" href={`mailto:${SUPPORT_EMAIL}`}>
contact us
</Link>
.
Expand Down
2 changes: 1 addition & 1 deletion packages/lib/constants/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';

Expand Down
2 changes: 1 addition & 1 deletion packages/lib/constants/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<string, string> = {
DOCUMENSO: 'Documenso',
DOCUMENSO: 'Crove Sign',
GOOGLE: 'Google',
MICROSOFT: 'Microsoft',
OIDC: 'OIDC',
Expand Down
4 changes: 2 additions & 2 deletions packages/lib/constants/email.ts
Original file line number Diff line number Diff line change
@@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion packages/lib/server-only/2fa/setup-2fa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type SetupTwoFactorAuthenticationOptions = {
user: Pick<User, 'id' | 'email'>;
};

const ISSUER = 'Documenso';
const ISSUER = 'Crove Sign';

export const setupTwoFactorAuthentication = async ({ user }: SetupTwoFactorAuthenticationOptions) => {
const key = DOCUMENSO_ENCRYPTION_KEY;
Expand Down
4 changes: 2 additions & 2 deletions packages/lib/server-only/auth/send-forgot-password.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Comment on lines +60 to +61

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Instead of duplicating the environment variable checks and fallback values here, please import and use the centralized FROM_NAME and FROM_ADDRESS constants from @documenso/lib/constants/email.

Suggested change
name: env('NEXT_PRIVATE_SMTP_FROM_NAME') || 'Crove Sign',
address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@sign.crove.com',
name: FROM_NAME,
address: FROM_ADDRESS,

},
subject: i18n._(msg`Forgot Password?`),
html,
Expand Down
4 changes: 2 additions & 2 deletions packages/lib/server-only/auth/send-reset-password.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The fallback name on line 53 was missed and still defaults to 'Documenso'. To fix this and prevent future drift, please import FROM_NAME and FROM_ADDRESS from @documenso/lib/constants/email and use them here.

Suggested change
address: env('NEXT_PRIVATE_SMTP_FROM_ADDRESS') || 'noreply@sign.crove.com',
address: FROM_ADDRESS,

Comment thread
coderabbitai[bot] marked this conversation as resolved.
},
subject,
html,
Expand Down
2 changes: 1 addition & 1 deletion packages/lib/utils/authenticator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Loading