Skip to main content

Admin Dashboard — Domain Model

Status: populated Owner: Platform Engineering (Frontend) Last updated: 2026-04-18

1. Overview​

The admin-dashboard is a stateless frontend. It has no persistent domain entities. The domain objects described here are view-layer representations shaped from backend API responses.

2. View Models​

AdminSession​

Held in encrypted httpOnly cookie. Never exposed to client JS.

FieldTypeSource
userIdstringJWT sub
emailstringJWT claim email
rolesstring[]JWT claim roles — must include admin
accessTokenstringPlatform JWT
expiresAtISO8601JWT exp

MetricsSummary​

Polled every 30 seconds from analytics-service.

FieldTypeNotes
totalMessagesSent24hnumberLast 24 hours
totalMessagesDelivered24hnumber
deliveryRate24hnumber0–1 float
activeOperatorsnumberOperators with active SMPP connections
queueDepthnumberCurrent NATS queue depth
alertCountnumberActive system alerts
fetchedAtISO8601Server-side timestamp of data

ThroughputPoint​

One data point in the 24h hourly throughput chart.

FieldTypeNotes
hourISO8601Top of the hour UTC
sentnumberMessages submitted
deliverednumberMessages with DLR delivered
failednumberMessages with DLR failed

DeliveryBreakdown​

Pie chart data from analytics-service.

FieldTypeNotes
deliverednumberCount
failednumberCount
pendingnumberCount
undeliverablenumberCount

OperatorSummaryRow​

Top-5 operators table on dashboard.

FieldTypeNotes
operatorIdstring
operatorNamestring
messagesSent24hnumber
deliveryRatenumber
avgLatencyMsnumber
statusconnected | disconnected | degraded

SmppOperator​

Full operator record for /operators CRUD pages.

FieldTypeNotes
operatorIdstringULID
namestringDisplay name
hoststringSMPP server hostname
portnumberDefault 2775
systemIdstringSMPP bind credential
bindTypetransceiver | transmitter | receiver
throughputTpsnumberMax messages per second
prioritynumberRouting priority (lower = higher priority)
statusactive | inactive | maintenance
connectionStateconnected | disconnected | errorLive state from smpp-connector
createdAtISO8601
updatedAtISO8601

RoutingRule​

FieldTypeNotes
ruleIdstringULID
namestring
prioritynumberEvaluation order
conditionsRuleCondition[]Prefix, country, account tier
operatorIdsstring[]Target operators (ordered by preference)
isActiveboolean
createdAtISO8601

AdminMessageLogEntry​

Cross-tenant message log.

FieldTypeNotes
messageIdstringULID
tenantIdstringTenant UUID
accountIdstringAccount UUID
tostringE.164
fromstringSender ID
statusstringFull status enum
operatorIdstring | null
operatorNamestring | null
submittedAtISO8601
deliveredAtISO8601 | null
errorCodestring | null

TenantInvoice​

FieldTypeNotes
invoiceIdstring
tenantIdstring
tenantNamestring
periodStartISO8601
periodEndISO8601
amountDuestringCurrency-formatted
statuspaid | open | overdue

ServiceHealthStatus​

FieldTypeNotes
serviceNamestringe.g. sms-orchestrator
statushealthy | degraded | down
latencyMsnumber | nullLast health check latency
checkedAtISO8601
detailsstring | nullOptional diagnostic message

3. Browser Storage​

StorageKeyContentTTL
httpOnly cookie__admin_sessionEncrypted JWT + user metadataJWT expiry (1h)
httpOnly cookie__admin_refreshEncrypted refresh token7 days
sessionStorageadm_msg_filtersLast-used cross-tenant message filtersTab lifetime
sessionStorageadm_dashboard_rangeSelected time range on dashboardTab lifetime