🗄️ EXSPEEDITE CHECKPOINT — Entity Relationship Diagram
checkpoint_db · visibility relationship map · Updated 2026-06-27 · CheckPoint v1.31 Product Polish
Multi-tenant hub
Load lifecycle
Messaging / audit
Configuration
Hard FK
Composite FK (company_id + load_number)
Soft reference (no DB constraint)
Logical load key: (company_id, load_number) —
Not a declared foreign key. Every load lifecycle query uses this two-column pair as a compound WHERE / JOIN.
The application enforces this relationship in PHP; the database does not enforce it as a constraint.
Private assignment extension: track_driver_assignment_tokens soft-joins to track_load_snapshots by (company_id, load_number) and may also be referenced by track_load_snapshots.driver_assignment_token_id. This supports driver_assignment_status = pending_assignment without exposing the driver's full phone to dispatcher UI.
2026 visibility addendum: newer visibility features add track_eta_settings, track_pod_photos, track_share_tokens, track_geofence_events, track_exception_alerts, track_webhook_subscriptions, and track_webhook_delivery_log. Delivery lifecycle fields now include eta_at, reminder_at, eta_reminder_sent_at, pod_submitted, and pod_submitted_at. Integration Events are outbound 214-style email/JSON visibility messages, while track_dot_feed_items remains the cached DOT/feed overlay source.
Load lifecycle chain
snapshots → stopscompany_id + load_number CASCADE DELETE HIGH
snapshots → tokenscompany_id + load_number · multiple tokens per load possible HIGH
snapshots → assignment_tokenscompany_id + load_number · private driver assignment link HIGH
tokens → pingstoken_id = track_tokens.id · clearest ID join in codebase HIGH
snapshots → pingscompany_id + load_number · map trail & ping counts HIGH
Private phone rules
assignment tokentrack_driver_assignment_tokens.token powers /carrier/assign.php.
masked phone onlyDashboard/report queries should use driver_phone_masked or Phone on file, never raw phone.
Messaging & audit
snapshots → event_logcompany_id + load_number · soft ref · survives cleanup HIGH
snapshots → messagescompany_id + load_number · reminder cron · DDL not found MED
Tenant hub
track_users.idIS the company identifier. No company_id column on this table. HIGH
No declared DB FKsApp does not rely on declared foreign keys in PHP. All relationships are application-enforced. APP-LEVEL
Configuration
app_credentialsScoped by company_id per tenant. No direct SQL join to track_users found. HIGH
system_credentialsGlobal — no company scope. Twilio / SendGrid keys only. HIGH