مستندات دارا
مرجع فنیاستقرار
این صفحه فقط به انگلیسی موجود است.

UAT package

Stage 32. UAT runs the production architecture on Testnet: no demo shortcuts.

Environment

Requirement (brief §145)UAT
2 application instancesTwo API instances per listener behind the load balancer (TRUST_PROXY_HEADERS=true only behind it), one or more workers (loops are leader-elected)
2 self-hosted RPC pathsTwo RPC nodes on separate hosts (STELLAR_RPC_NODES, config requires ≥ 2 in UAT)
Production-like PostgreSQLPostgreSQL 17 with a synchronous replica and pgBackRest (../operations/BACKUP_RESTORE.md)
Production imagesThe release images (make images web-images), the same digests that will go to production
Production secret injectionSecrets from the secret store into the environment; no demo.env
Monitoringdeploy/observability with alert receivers configured
BackupsScheduled, plus one restore drill during UAT
Signer abstractionSIGNER_BACKEND=vault against a UAT Vault/OpenBao (keys with PREFIX=dara-uat-), exactly as production
No demo shortcutsAPP_ENV=uat, COOKIE_SECURE=true, no seed or demo commands (they refuse non-local networks)

Acceptance tests

The Testnet end-to-end list (TESTNET.md) plus:

AreaTestPass when
RolesEach role logs in with TOTP and can do only its actionsMatches ../security/AUTHORITY_MATRIX.md §3
Four-eyesSelf-approval of backing, supply, price move, cash, unfreeze, clawback, staffRefused every time
GateStop both RPC nodes; then start oneTrading pauses within a minute; resumes after the hold-down
LimitsDaily buy/sell and transfer limits, per-trade boundsRefused at the limit with a clear message (fa/en)
RecoveryKill the worker mid-settlement; restartEvery order settles exactly once
BackupRestore drill on the UAT databaseAll checks pass
MonitoringEach critical alert fired once (test stimulus)Reaches the receiver
Customer UXPersian RTL wallet on mobile; transfer with TOTPUsable without guidance

Sign-off

RoleNameDateResult
Product owner
Compliance
Treasury / reserve
Security
Operations

در این صفحه