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