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
+6
View File
@@ -66,6 +66,12 @@ export default () => ({
// رموز الاتصال الدولية لكل country pack (لتنسيق الهاتف قبل الإرسال).
callingCodes: { jo: '962', sy: '963' } as Record<string, string>,
// تخزين ملفات الوثائق. baseUrl فارغ = محلي؛ يُضبط لسيرفر التوطين لاحقاً (docs/06).
storage: {
dir: process.env.STORAGE_DIR ?? '/app/storage',
baseUrl: process.env.STORAGE_BASE_URL ?? '',
},
// إشعارات FCM (اتركه فارغاً لتعطيل الإرسال — يُسجَّل فقط).
fcm: {
serverKey: process.env.FCM_SERVER_KEY ?? '',