Preflight
Rails
Every required rail account has a credential
0 required accounts, all configured. Optional accounts do not block preflight.
No credential is expiring or failing
0 stored, none at risk.
Every required credential has passed a connection test
No required credentials stored yet.
Control panel → Rail accounts.
Open exact field
Domain identity for go.futurebits.tech
Verified for sending.
Easy DKIM
SES reports DKIM SUCCESS with 3 tokens.
Custom MAIL FROM on bounce.go.futurebits.tech
Set, status SUCCESS.
Production access
Out of the sandbox. Quota 50000/day at 14/s, 0 sent in the last 24h.
Configuration set mission-control-futurebits
Exists.
Event destination
No event destination, so bounces and complaints never reach the control plane.
Run
npm run ses:setup -- --brand futurebits --applyTopic policy for delivery events
The topic policy does not let ses.amazonaws.com publish, so nothing will ever be delivered even though the subscription looks healthy.
Run
npm run ses:setup -- --brand futurebits --applySNS subscription for delivery events
Nothing is subscribed to https://mission.futurebits.tech/api/webhooks/ses/futurebits.
Bring the VPS up behind TLS, then run: npm run ses:setup -- --brand futurebits --apply
Topic policy for inbound replies
The topic policy does not let ses.amazonaws.com publish, so nothing will ever be delivered even though the subscription looks healthy.
Run
npm run ses:setup -- --brand futurebits --applySNS subscription for inbound replies
Nothing is subscribed to https://mission.futurebits.tech/api/webhooks/ses-inbound/futurebits.
Bring the VPS up behind TLS, then run: npm run ses:setup -- --brand futurebits --apply
Inbound receipt rule
No receipt rule set named mission-control-inbound.
Run
npm run ses:setup -- --brand futurebits --applyDNS records
All 8 records resolve.
Warmup ramp running for go.futurebits.tech
Ramp complete on day 14. The identity's daily cap of 60 applies.
Channels
Every rail channel resolves to an account
5 rail channels.
Every rail channel has its vendor id
5 have no external reference, so the publish job skips them: Delivery lead LinkedIn, Founder LinkedIn, Founder X, Futurebits company page, Outreach mailbox.
Discover Buffer channels from a tested account, or paste each vendor channel id into the channel's external reference.
Open exact field
People
The roster is real, not seeded examples
2 of 2 are still seeded worked examples.
Control panel → Teams and people. Editing a profile clears the example mark.
Every remit is usable
2 remits.
Webhooks
Cal.com bookings has been heard from
Never received a delivery.
Point the Cal.com bookings webhook at this host and send a test event.
SES delivery events has been heard from
Never received a delivery.
Point the SES delivery events webhook at this host and send a test event.
SES inbound replies has been heard from
Never received a delivery.
Point the SES inbound replies webhook at this host and send a test event.
Telegram approvals has been heard from
Never received a delivery.
Point the Telegram approvals webhook at this host and send a test event.
Backups
Backups are configured
MC_BACKUP_DIR is not set, so the nightly dump has nowhere to write.
Set MC_BACKUP_DIR and mount it to something that is pushed offsite.
A restore drill has been done
No restore drill recorded. A backup nobody has restored is a hope, not a backup.
Restore the latest dump into a scratch database, confirm the row counts, then record it with `npm run ops:restore-drill`.
The same checks run from the command line with npm run preflight futurebits, which exits non-zero while anything is blocking.