diff --git a/apps/web/prisma/migrations/20250819065902_reset_dmarc_status/migration.sql b/apps/web/prisma/migrations/20250819065902_reset_dmarc_status/migration.sql new file mode 100644 index 0000000..e736b51 --- /dev/null +++ b/apps/web/prisma/migrations/20250819065902_reset_dmarc_status/migration.sql @@ -0,0 +1,3 @@ +-- Reset all dmarcAdded to false since previous verification logic was incorrect +-- DMARC should be checked on main domain, not subdomain +UPDATE "Domain" SET "dmarcAdded" = false WHERE "dmarcAdded" = true; \ No newline at end of file diff --git a/apps/web/src/app/(dashboard)/domains/[domainId]/page.tsx b/apps/web/src/app/(dashboard)/domains/[domainId]/page.tsx index 2ed57e2..0b57183 100644 --- a/apps/web/src/app/(dashboard)/domains/[domainId]/page.tsx +++ b/apps/web/src/app/(dashboard)/domains/[domainId]/page.tsx @@ -42,7 +42,7 @@ export default function DomainItemPage({ { refetchInterval: (q) => (q?.state.data?.isVerifying ? 10000 : false), refetchIntervalInBackground: true, - } + }, ); const verifyQuery = api.domain.startVerification.useMutation(); @@ -54,7 +54,7 @@ export default function DomainItemPage({ onSettled: () => { domainQuery.refetch(); }, - } + }, ); }; @@ -194,11 +194,9 @@ export default function DomainItemPage({
- (optional) + (recommended) - +
@@ -234,7 +232,7 @@ const DomainSettings: React.FC<{ domain: Domain }> = ({ domain }) => { const utils = api.useUtils(); const [clickTracking, setClickTracking] = React.useState( - domain.clickTracking + domain.clickTracking, ); const [openTracking, setOpenTracking] = React.useState(domain.openTracking); @@ -247,7 +245,7 @@ const DomainSettings: React.FC<{ domain: Domain }> = ({ domain }) => { utils.domain.invalidate(); toast.success("Click tracking updated"); }, - } + }, ); } @@ -260,7 +258,7 @@ const DomainSettings: React.FC<{ domain: Domain }> = ({ domain }) => { utils.domain.invalidate(); toast.success("Open tracking updated"); }, - } + }, ); } return ( diff --git a/apps/web/src/server/service/domain-service.ts b/apps/web/src/server/service/domain-service.ts index 3052eea..84cffe2 100644 --- a/apps/web/src/server/service/domain-service.ts +++ b/apps/web/src/server/service/domain-service.ts @@ -58,7 +58,7 @@ export async function createDomain( teamId: number, name: string, region: string, - sesTenantId?: string + sesTenantId?: string, ) { const domainStr = tldts.getDomain(name); @@ -105,7 +105,7 @@ export async function getDomain(id: number) { if (domain.isVerifying) { const domainIdentity = await ses.getDomainIdentity( domain.name, - domain.region + domain.region, ); const dkimStatus = domainIdentity.DkimAttributes?.Status; @@ -114,7 +114,7 @@ export async function getDomain(id: number) { const verificationStatus = domainIdentity.VerificationStatus; const lastCheckedTime = domainIdentity.VerificationInfo?.LastCheckedTimestamp; - const _dmarcRecord = await getDmarcRecord(domain.name); + const _dmarcRecord = await getDmarcRecord(tldts.getDomain(domain.name)!); const dmarcRecord = _dmarcRecord?.[0]?.[0]; domain = await db.domain.update({ @@ -150,7 +150,7 @@ export async function getDomain(id: number) { export async function updateDomain( id: number, - data: { clickTracking?: boolean; openTracking?: boolean } + data: { clickTracking?: boolean; openTracking?: boolean }, ) { return db.domain.update({ where: { id }, @@ -170,7 +170,7 @@ export async function deleteDomain(id: number) { const deleted = await ses.deleteDomain( domain.name, domain.region, - domain.sesTenantId ?? undefined + domain.sesTenantId ?? undefined, ); if (!deleted) {