import { config } from 'dotenv'; import { resolve } from 'path'; config({ path: resolve('/opt/stacks/pulse/.env.local') }); import postgresClient from '../lib/services/postgres-client'; import { getMimecastClientForTenant } from '../lib/services/mimecast-client'; const SEUBERT_COMPANY_ID = 29683407; const RECIPIENT = 'btomlinson@seubert.com'; async function main() { const tenantRow = await postgresClient.query( `SELECT client_id, client_secret, base_url, account_name FROM mimecast_tenants WHERE company_id = $1 AND enabled = true`, [SEUBERT_COMPANY_ID] ); const tenant = tenantRow.rows[0]; const client: any = getMimecastClientForTenant({ client_id: tenant.client_id, client_secret: tenant.client_secret, base_url: tenant.base_url ?? undefined, }); // Exact production window: createdAt (report creation, 2026-07-17T18:10:55Z) +/- 24h, end clamped to now. const createdAt = new Date('2026-07-17T18:10:55.844Z'); const start = new Date(createdAt.getTime() - 24 * 60 * 60 * 1000); const end = new Date(Math.min(createdAt.getTime() + 24 * 60 * 60 * 1000, Date.now())); const startStr = start.toISOString().replace(/\.\d{3}Z$/, '+0000'); const endStr = end.toISOString().replace(/\.\d{3}Z$/, '+0000'); console.log(`Querying held messages for ${RECIPIENT} scoped to the EXACT production window: ${startStr}..${endStr}`); const body = { data: [ { admin: true, start: startStr, end: endStr, searchBy: { fieldName: 'recipient', value: RECIPIENT }, }, ], }; const result = await client.request('POST', '/api/gateway/get-hold-message-list', body); const msgs = result?.data ?? []; console.log(`Rows returned: ${msgs.length}`); console.log(JSON.stringify(msgs.map((m: any) => ({ from: m.fromHeader?.emailAddress ?? m.from?.emailAddress, subject: m.subject, dateReceived: m.dateReceived, reason: m.reason, })), null, 2)); process.exit(0); } main().catch((err) => { console.error(err); process.exit(1); });