feat: driver documents (sovereignty storage adapter) + load-test script

- documents: upload (multipart) + review (admin/CS) + auto-approve driver when all docs approved
- StorageService: per-tenant local volume now, in-country storage swap via STORAGE_BASE_URL
- doc.number encrypted (AES-256-GCM); migration InitDocuments; tripz-storage volume
- scripts/loadtest.mjs: concurrent full trip-cycle benchmark (throughput + latency percentiles)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 19:36:27 +03:00
co-authored by Claude Opus 4.8
parent f3383c3cf8
commit 7a58a01417
11 changed files with 424 additions and 0 deletions
+4
View File
@@ -25,6 +25,8 @@ import { DispatchModule } from './modules/dispatch/dispatch.module';
import { WalletModule } from './modules/wallet/wallet.module';
import { NotificationsModule } from './modules/notifications/notifications.module';
import { PaymentsModule } from './modules/payments/payments.module';
import { StorageModule } from './common/storage/storage.module';
import { DocumentsModule } from './modules/documents/documents.module';
@Module({
imports: [
@@ -51,6 +53,7 @@ import { PaymentsModule } from './modules/payments/payments.module';
RedisModule, // عالمي — عميل Redis للمطابقة و OTP
NabehModule, // عالمي — إرسال OTP واتساب
NotificationsModule, // عالمي — FCM
StorageModule, // عالمي — تخزين ملفات الوثائق
HealthModule,
TenantsModule,
@@ -69,6 +72,7 @@ import { PaymentsModule } from './modules/payments/payments.module';
DispatchModule,
ChatModule,
RatingsModule,
DocumentsModule,
SeedModule,
],
})