fix: update dmarc to main domain and not sub domain (#200)
This commit is contained in:
@@ -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;
|
@@ -42,7 +42,7 @@ export default function DomainItemPage({
|
|||||||
{
|
{
|
||||||
refetchInterval: (q) => (q?.state.data?.isVerifying ? 10000 : false),
|
refetchInterval: (q) => (q?.state.data?.isVerifying ? 10000 : false),
|
||||||
refetchIntervalInBackground: true,
|
refetchIntervalInBackground: true,
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
const verifyQuery = api.domain.startVerification.useMutation();
|
const verifyQuery = api.domain.startVerification.useMutation();
|
||||||
@@ -54,7 +54,7 @@ export default function DomainItemPage({
|
|||||||
onSettled: () => {
|
onSettled: () => {
|
||||||
domainQuery.refetch();
|
domainQuery.refetch();
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -194,11 +194,9 @@ export default function DomainItemPage({
|
|||||||
<TableCell>
|
<TableCell>
|
||||||
<div className="flex gap-2 items-center">
|
<div className="flex gap-2 items-center">
|
||||||
<span className="text-sm text-muted-foreground">
|
<span className="text-sm text-muted-foreground">
|
||||||
(optional)
|
(recommended)
|
||||||
</span>
|
</span>
|
||||||
<TextWithCopyButton
|
<TextWithCopyButton value="_dmarc" />
|
||||||
value={`_dmarc.${domainQuery.data?.subdomain || domainQuery.data?.name}`}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell className="">
|
<TableCell className="">
|
||||||
@@ -234,7 +232,7 @@ const DomainSettings: React.FC<{ domain: Domain }> = ({ domain }) => {
|
|||||||
const utils = api.useUtils();
|
const utils = api.useUtils();
|
||||||
|
|
||||||
const [clickTracking, setClickTracking] = React.useState(
|
const [clickTracking, setClickTracking] = React.useState(
|
||||||
domain.clickTracking
|
domain.clickTracking,
|
||||||
);
|
);
|
||||||
const [openTracking, setOpenTracking] = React.useState(domain.openTracking);
|
const [openTracking, setOpenTracking] = React.useState(domain.openTracking);
|
||||||
|
|
||||||
@@ -247,7 +245,7 @@ const DomainSettings: React.FC<{ domain: Domain }> = ({ domain }) => {
|
|||||||
utils.domain.invalidate();
|
utils.domain.invalidate();
|
||||||
toast.success("Click tracking updated");
|
toast.success("Click tracking updated");
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,7 +258,7 @@ const DomainSettings: React.FC<{ domain: Domain }> = ({ domain }) => {
|
|||||||
utils.domain.invalidate();
|
utils.domain.invalidate();
|
||||||
toast.success("Open tracking updated");
|
toast.success("Open tracking updated");
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
|
@@ -58,7 +58,7 @@ export async function createDomain(
|
|||||||
teamId: number,
|
teamId: number,
|
||||||
name: string,
|
name: string,
|
||||||
region: string,
|
region: string,
|
||||||
sesTenantId?: string
|
sesTenantId?: string,
|
||||||
) {
|
) {
|
||||||
const domainStr = tldts.getDomain(name);
|
const domainStr = tldts.getDomain(name);
|
||||||
|
|
||||||
@@ -105,7 +105,7 @@ export async function getDomain(id: number) {
|
|||||||
if (domain.isVerifying) {
|
if (domain.isVerifying) {
|
||||||
const domainIdentity = await ses.getDomainIdentity(
|
const domainIdentity = await ses.getDomainIdentity(
|
||||||
domain.name,
|
domain.name,
|
||||||
domain.region
|
domain.region,
|
||||||
);
|
);
|
||||||
|
|
||||||
const dkimStatus = domainIdentity.DkimAttributes?.Status;
|
const dkimStatus = domainIdentity.DkimAttributes?.Status;
|
||||||
@@ -114,7 +114,7 @@ export async function getDomain(id: number) {
|
|||||||
const verificationStatus = domainIdentity.VerificationStatus;
|
const verificationStatus = domainIdentity.VerificationStatus;
|
||||||
const lastCheckedTime =
|
const lastCheckedTime =
|
||||||
domainIdentity.VerificationInfo?.LastCheckedTimestamp;
|
domainIdentity.VerificationInfo?.LastCheckedTimestamp;
|
||||||
const _dmarcRecord = await getDmarcRecord(domain.name);
|
const _dmarcRecord = await getDmarcRecord(tldts.getDomain(domain.name)!);
|
||||||
const dmarcRecord = _dmarcRecord?.[0]?.[0];
|
const dmarcRecord = _dmarcRecord?.[0]?.[0];
|
||||||
|
|
||||||
domain = await db.domain.update({
|
domain = await db.domain.update({
|
||||||
@@ -150,7 +150,7 @@ export async function getDomain(id: number) {
|
|||||||
|
|
||||||
export async function updateDomain(
|
export async function updateDomain(
|
||||||
id: number,
|
id: number,
|
||||||
data: { clickTracking?: boolean; openTracking?: boolean }
|
data: { clickTracking?: boolean; openTracking?: boolean },
|
||||||
) {
|
) {
|
||||||
return db.domain.update({
|
return db.domain.update({
|
||||||
where: { id },
|
where: { id },
|
||||||
@@ -170,7 +170,7 @@ export async function deleteDomain(id: number) {
|
|||||||
const deleted = await ses.deleteDomain(
|
const deleted = await ses.deleteDomain(
|
||||||
domain.name,
|
domain.name,
|
||||||
domain.region,
|
domain.region,
|
||||||
domain.sesTenantId ?? undefined
|
domain.sesTenantId ?? undefined,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!deleted) {
|
if (!deleted) {
|
||||||
|
Reference in New Issue
Block a user