Files
customerTicket/docs/ORGANIZATIONAL_TICKETING_GAP_ANALYSIS.md
2026-09-10 11:34:19 +03:30

5.0 KiB

ممیزی حلقه عملیاتی سامانه تیکتینگ سازمانی

این سند وضعیت پیاده‌سازی را در برابر نیازمندی شرکت لوله گستر گلپایگان ثبت می‌کند. معیار «تکمیل» فقط وجود مدل یا صفحه نیست؛ مسیر باید از ایجاد داده تا مجوز، ارسال، مشاهده، پاسخ، ممیزی و گزارش‌گیری قابل آزمون باشد.

حوزه مسیر عملیاتی وضعیت فعلی شاهد اجرایی
RBAC واحدی عضویت کاربر → permission واحد/عضو → queryset و object policy تکمیل OrganizationalUnit, UnitMembership, TicketPolicy و تست ایزوله‌سازی واحد
ایجاد تیکت سازمانی انتخاب واحد مجاز → مخاطب/نوع/گروه → تیکت واحدی → SMS تکمیل فرم staff اکنون permission پویا و مالکیت واحد را اعمال می‌کند
مخاطبان چندگروهی مخاطب → چند ContactGroup متعلق به واحدهای مجاز تکمیل رابطه Many-to-Many و فرم محدودشده به واحدهای قابل مدیریت
ارسال گروهی ایزوله گروه → یک تیکت خصوصی برای هر مخاطب → یک job و Magic Link مستقل تکمیل dispatch_group_tickets و تست جداسازی گیرندگان
اسناد گروهی یک یا چند سند → ذخیره مستقل داخل پیام اولیه هر تیکت تکمیل files در فرم dispatch و تست مسیر ذخیره مجزا
پاسخ خارجی Magic Link بدون حساب → فقط همان تیکت → متن/فایل → اعلان Bale تکمیل session grant محدود به یک ticket و تست پاسخ ناشناس
ممیزی Magic Link سازنده/واحد/گیرنده → هر بازدید با زمان/IP/UA → شمارنده تکمیل TicketMagicLink, MagicLinkAccessLog و تست بازدید
عملیات امنیتی لینک فیلتر وضعیت/واحد/بازه → ابطال فوری با permission واحدی تکمیل staff audit، pagination و endpoint ابطال POST
گزارش ارسال گروهی وضعیت gateway → بازشدن لینک → پاسخ مخاطب → مقایسه تکمیل در سطح قابل اثبات وضعیت پایدار dispatch، پاسخ آخر و شمارنده بازدید
بازیابی ارسال خطادار FAILED → اقدام مجاز واحد → PENDING → worker retry تکمیل endpoint تلاش مجدد و تست عدم دسترسی واحد دیگر
الگوهای SMS الگوی واحدی + fallback عمومی + متغیرهای کنترل‌شده تکمیل SMSTemplate, validation و فرم واحدی
فیلتر پیشرفته واحدها، نوع ارسال، وضعیت، مخاطب، گروه‌ها، تاریخ و tag تکمیل filter_staff_tickets و UI فیلتر ترکیبی
پردازش غیرهمزمان outbox قفل‌شونده → retry/backoff → SMS/Bale تکمیل process_notifications, skip_locked و سرویس worker در Compose
رهگیری provider نتیجه gateway → شناسه مرجع ذخیره‌شده تکمیل provider_message_id در NotificationJob
Delivery Receipt مخابراتی callback اپراتور → وضعیت تحویل گوشی نیازمند قرارداد اپراتور API فعلی 0098SMS فقط پذیرش درخواست را برمی‌گرداند؛ SENT به معنی پذیرش gateway است، نه تحویل قطعی

مرزهای امنیتی

  • مخاطب بیرونی با Magic Link فقط به یک تیکت دسترسی می‌گیرد و به فهرست تیکت‌ها یا تیکت دیگر دسترسی ندارد.
  • یادداشت داخلی و پیوست آن برای مشتری و session جادویی پنهان است.
  • queryهای staff ابتدا با واحدهای قابل مشاهده محدود می‌شوند و سپس فیلترهای کاربر اعمال می‌شوند.
  • ابطال لینک و retry ارسال فقط با permission پویا در همان واحد انجام می‌شود.
  • شناسه provider ذخیره می‌شود، اما متن پیام، credential درگاه و token خام Magic Link در گزارش‌ها ذخیره یا نمایش داده نمی‌شود.

الزام استقرار

  • web و notification-worker باید همزمان و تحت supervisor یا Docker Compose با restart policy اجرا شوند.
  • production باید از config.settings.prod، HTTPS، secret قوی و PUBLIC_BASE_URL عمومی HTTPS استفاده کند.
  • برای ادعای «تحویل به گوشی»، endpoint و امضای webhook اپراتور منتخب باید مشخص شود؛ تا آن زمان UI باید بین پذیرش gateway و بازشدن لینک تفاوت بگذارد.