chore: initial project import
Some checks failed
CI - Production Readiness / Verify (push) Has been cancelled

This commit is contained in:
Wira Basalamah
2026-04-21 09:29:29 +07:00
commit adde003fba
222 changed files with 37657 additions and 0 deletions

85
scripts/ops-incident.mjs Normal file
View File

@ -0,0 +1,85 @@
#!/usr/bin/env node
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
const oneHourAgo = new Date(Date.now() - 60 * 60 * 1000);
const sixHoursAgo = new Date(Date.now() - 6 * 60 * 60 * 1000);
const oneDayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000);
function formatDate(date) {
if (!date) {
return null;
}
return new Date(date).toISOString();
}
function printBlock(title, value) {
console.log(`\n=== ${title} ===`);
console.log(JSON.stringify(value, null, 2));
}
async function main() {
try {
const [retryState, webhookFailuresHour, webhookFailuresDay, failedCampaigns, disconnectedChannels, retryQueued] =
await Promise.all([
prisma.backgroundJobState.findUnique({
where: { jobName: "campaign-retry-worker" },
select: {
jobName: true,
lockedUntil: true,
lastRunStartedAt: true,
lastRunCompletedAt: true,
lastRunStatus: true,
consecutiveFailures: true,
lastError: true
}
}),
prisma.webhookEvent.count({ where: { processStatus: "failed", createdAt: { gte: oneHourAgo } } }),
prisma.webhookEvent.count({ where: { processStatus: "failed", createdAt: { gte: oneDayAgo } } }),
prisma.broadcastCampaign.count({ where: { status: { in: ["PROCESSING", "SCHEDULED"] } }),
prisma.channel.count({ where: { status: "DISCONNECTED" } }),
prisma.campaignRecipient.count({ where: { sendStatus: { in: ["QUEUED", "FAILED"] } })
]);
const pendingRetry = await prisma.campaignRecipient.aggregate({
_count: { _all: true },
where: {
OR: [{ sendStatus: "QUEUED" }, { sendStatus: "FAILED" }]
}
});
const recentWebhook = await prisma.webhookEvent.findMany({
where: { processStatus: "failed", createdAt: { gte: oneHourAgo } },
orderBy: { createdAt: "desc" },
take: 10,
select: { id: true, tenantId: true, channelId: true, eventType: true, createdAt: true, providerEventId: true, failedReason: true }
});
printBlock("Health Snapshot", {
runAt: new Date().toISOString(),
retryWorker: {
...retryState,
lockedUntil: formatDate(retryState?.lockedUntil),
lastRunStartedAt: formatDate(retryState?.lastRunStartedAt),
lastRunCompletedAt: formatDate(retryState?.lastRunCompletedAt)
},
failedCampaignsInProgress: failedCampaigns,
disconnectedChannels,
pendingRetryCandidates: pendingRetry._count._all,
webhookFailuresHour,
webhookFailuresDay
});
printBlock("Recent Failed Webhooks (1h)", recentWebhook);
printBlock("Retry Queue", { totalCandidates: retryQueued });
} catch (error) {
console.error("incident snapshot failed:", error instanceof Error ? error.message : String(error));
process.exitCode = 1;
} finally {
await prisma.$disconnect();
}
}
await main();