First commit of the Hedena Gold product (separate from gold-bank): branding, package names, and deploy defaults aligned to the new brand; legacy Henza trees stay local-only via .gitignore.
5.0 KiB
5.0 KiB
بررسی راهاندازی سرور با دیتابیس خالی
وضعیت: بررسی فقط خواندنی انجام شد. هیچ کدی تغییر نکرده و هیچ دادهای نوشته یا منتقل نشده است. تاریخ: ۲۰۲۶-۱۰-۱۲
هدف
روی سرور تولید فقط یک کاربر super admin باشد و هیچ دادهی دیگری (مشتری، محصول، سفارش، بدهی، نقش اضافه، حساب تست) وارد نشود. دیتابیس henza قدیمی در این مرحله منتقل نمیشود.
یافتهها
۱. حساب ثابت در کد (مهمترین مورد)
- در auth.service.ts:21 شماره
09128081392ثابت شده و در خط ۴۹–۵۳ اگر شماره همین باشد و رمز هم برابر خود شماره باشد،ensureStaticAdminاجرا میشود. - خط ۲۳۰–۲۴۵ یک
SUPER_ADMINبا نام «مدیر موقت» میسازد یا فعال میکند. - این شرط محیطی ندارد، پس روی سرور تولید هم فعال است.
- همین شماره در
seed.tsبهعنوان «کاربر تست توسعه» هم آمده است.
۲. دادهی demo در seed
- seed.ts بخش demo را فقط وقتی اجرا میکند که
NODE_ENVبرابرproductionنباشد یاSEED_DEMO_DATA=trueباشد. - بخش demo شامل شهرها، شعبهها، کارگاه، ادمینهای تست، مشتری، محصول، سفارش و بدهی است.
- bootstrap.ts در اولین boot، اگر
RUN_SEED=falseنباشد، seed را اجرا میکند.
۳. نقشها و permissionها
seed.tsهمیشه کاربرتایپهای ۸۵ تا ۸۹ و permissionهایشان را میسازد.- گاردها فقط بر اساس rid کار میکنند و برای
SUPER_ADMINبایپس ندارند (guards.ts:17). پس نقش ۸۵ با تمام دسترسیها لازم است و نقشهای ۸۶ تا ۸۹ لازم نیستند.
۴. migrationهای تغییردهندهی داده
روی دیتابیس خالی بدون اثر هستند (بر اساس خواندن SQL، هنوز روی دیتابیس اجرا نشدهاند):
| migration | کار | روی دیتابیس خالی |
|---|---|---|
20260922120000_customer_name_parts |
ستون و trigger نام | فقط ساختار |
20260922180000_sales_expert_profile_and_admin_name_parts |
INSERT از AdminUser |
no-op |
20261005120000_accounting_integration |
permission فقط اگر نقش ۸۵ باشد | no-op |
20261008090000_customer_identity_cleanup |
UPDATE روی Customer و AdminUser |
no-op |
20261008120000_order_sales_agent |
UPDATE روی Order |
no-op |
20261008150000_wage_formula_permission |
permission فقط اگر نقش ۸۵ باشد | no-op |
20261008160000_dashboard_permission_merge |
INSERT و DELETE روی permission |
no-op |
20261008170000_city_tree |
ساخت استان از ردیفهای موجود | no-op |
۵. شمارههای ثابت در سرویس حسابداری
09121234567 و 09891212345 فقط مثال در docstring و تابع نرمالسازی هستند (accounting-provider.ts:272، tahesab.provider.ts:224). داده نیستند.
کارهای پیشنهادی (هنوز انجام نشده)
- seed فقط نقش ۸۵ با
ALL_RIDSبسازد؛ نقشهای ۸۶ تا ۸۹ حذف شوند. - حساب ثابت
09128081392وensureStaticAdminازauth.service.tsحذف شود. - روی سرور:
NODE_ENV=productionوRUN_SEED=false، وSEED_DEMO_DATAست نشود. - یک اسکریپت یکبار اجرا برای ساخت super admin: شماره و نام و رمز را کاربر وارد میکند؛ داخل کد یا seed ذخیره نمیشود.
- روی یک دیتابیس خالی تست شود: migrationها از صفر اجرا شوند و فقط یک کاربر و نقش ۸۵ باقی بماند.
تصمیمهای باز
- شماره و نام super admin واقعی.
- نقشهای ۸۶ تا ۸۹ حذف شوند یا بمانند؟
- حذف حساب ثابت از کد تأیید شود.
بررسینشده
- سطر به سطر بررسی نشده که migrationها روی دیتابیس واقعی خالی هیچ خطایی ندهند. این را باید با یک اجرای تست روی دیتابیس خالی تأیید کرد.
- ساختار
docs/SERVER-SETUP-CHECKLIST.mdبرای تنظیم سرور هنوز مرور نشده است.