لوحة المشغّل

اثنتا عشرة وحدة. بوابة مشغّل واحدة. بمستوى المراجعة من النقرة الأولى.

لوحة Connect هي نفس البرنامج الذي يستخدمه مشغّلونا كل يوم — نفس RBAC، نفس سجل المراجعة، نفس التقارير. أدناه كل وحدة مع الشاشة الحقيقية وما تفعله والمحرّك الذي يشغّلها.

اثنتا عشرة وحدة. بوابة مشغّل واحدة. بمستوى المراجعة من النقرة الأولى.

الجلسات

كل جلسة شحن بدأت أو جارية أو منتهية — مع الجدول الزمني لـ OCPP وأثر الدفع وحالة الاسترداد/النزاع.

  • عرض حي + تاريخ، شارات حالة (started، charging، terminated، refunded، disputed)
  • تصدير CSV متدفّق للمجموعة المفلترة
  • النقر للوصول إلى الجدول الزمني OCPP + الجدول الزمني لتفويض الدفع لكل جلسة
  • إلغاء قسري مع أثر مراجعة ورمز سبب منسوب للمشغّل
  • يخفي pill الـ offline على الجلسات النهائية؛ يطبع resolved_at + يدقّق force-cancel

Powered by: billing_sessions + session_payment_authorizations · مراجعة charging_attempts · OCPP AMQP realtime → state machine

بوابة المشغّل — قائمة الجلسات مع شارات الحالة والبحث والتصدير المجمَّع

المحطات والمواقع

عرض أسطول المحطات مع لوحات لكل موقع ولوحة أعطال في الزمن الحقيقي وتصنيف موصّل OCPP وتعديلات تعرفة لكل موقع.

  • نقطة نهاية لوحة لكل موقع مع بحث stations-by-location
  • لوحة أعطال مفلترة لأعطال OCPP الحقيقية (أكواد البائع محفوظة)
  • تصنيف الموصّل حسب powerType، لا heuristic DC مرمَّز يدوياً
  • منطقة زمنية موحَّدة شاحن-موقع لمحاذاة الجلسة والتقرير
  • العنوان + المدينة مُثرَيان تلقائياً عند إنشاء المحطة

Powered by: stations + locations + station_connectors · جدول faults · مجمِّع تحليلات لكل موقع

بوابة المشغّل — لوحة المحطات والمواقع مع الاستخدام وأعداد الأعطال لكل موقع

التعرفات والتعديلات

كتالوج تعرفات مع تعديلات لكل فريق وموقع وموصّل — ولقطة عن التعرفة التي طُبِّقت فعلاً على كل جلسة walk-up.

  • كتالوج تعرفات مع عدد التعديلات لكل فريق ولكل موقع
  • لقطة تعرفة walk-up مُثراة بسياق الموقع (منطقة زمنية صحيحة)
  • Helper بحث تعرفة الموصّل يحلّ بـ Citrine connector PK أو OCPP id
  • tariffName لكل فريق + عدد التعديلات معروض في تفاصيل الفريق
  • كل التعديلات تصدر أحداث audit_logs (tariffs.create / update / delete)

Powered by: tariffs + tariff_overrides + connector_tariff_assignments · كاتب لقطة walk-up · audit-mirror

بوابة المشغّل — محرّر التعرفات مع لوحة تعديل لكل موقع

التقارير

محرّك تقارير من 23 قالباً: Revenue & P&L، مطابقة التسويات، المبالغ المستردة، تقادم ذمم الأسطول، فعالية التعرفة، جودة الجلسة + SLO، وقت تشغيل الشبكة، أفواج النمو والاحتفاظ، GDPR data exports — مجدولة، تُسلَّم بـ URL موقّع بالبريد.

  • 23 قالباً في الكتالوج، كل منها tenant-scoped + period-helper مشترك
  • إعدادات مسبقة محفوظة + تشغيلات مجدولة عبر report_schedules + tick worker
  • تسليم بـ URL موقّع + نقاط نهاية GET /runs + GET /export-audit
  • مصدِّرات CSV و XLSX بترتيب أعمدة محدد
  • RBAC لكل قالب: reports.export / reports.schedule / reports.admin

Powered by: report_runs + report_schedules + report_template_settings + export_audit · template registry · scheduler worker

بوابة المشغّل — كتالوج التقارير مع 23 قالباً وتشغيلات مجدولة ومراجعة تصدير

سجل المراجعة

جدول زمني واحد append-only لكل تغيير مالي وOCPP وRBAC وتكوين — مع hash anchor يومي ونقطة نهاية تحقق تجعل السلسلة دالة على العبث.

  • أساس audit_logs: المالي، OCPP، RBAC، settings، push/exports
  • Hash anchor يومي + احتفاظ ليلي + نقطة نهاية تحقق من السلسلة
  • مقاييس Prometheus لمعدل الإصدار والـ lag وعمر الـ anchor
  • Middleware request_id يربط الترابط عبر كل حدث
  • Assertions إصدار مغطاة في الاختبارات لـ refund + locations + stations + settings

Powered by: audit_logs · daily anchor worker · أساسيات auditEmit + auditEmitTs · وحدات audit-mirror

بوابة المشغّل — الجدول الزمني لسجل المراجعة مع hash anchor يومي وحالة تحقق السلسلة

الأساطيل

أساطيل متعدّدة المستأجرين مع بطاقات RFID واستيراد bulk CSV وأتمتة تحصيل ونطاق لكل فريق في كل تقرير. إعادة هيكلة Teams→Fleets دخلت الإنتاج بدون انقطاع.

  • إصدار + ربط + إلغاء RFID لكل أسطول مع أثر مراجعة
  • استيراد bulk CSV RFID مع التحقق من حد طول OCPP 1.6 IdToken (20 حرفاً)
  • تقرير تقادم الذمم + عامل أتمتة التحصيل
  • نطاق لكل أسطول في كل قالب تقرير + إجمالي لوحة التحكم
  • driverUserId مطلوب عند إنشاء بطاقة الأسطول؛ tokens unbound → Blocked/TOKEN_UNBOUND نظيف

Powered by: fleets + fleet_cards + fleet_invoices · dunning worker · محوّل Citrine للأساطيل

بوابة المشغّل — قائمة الأساطيل مع عدد RFID وتقادم الذمم وحالة التحصيل واستيراد bulk CSV

حملات Push

حملات push على جانب المشغّل مع تجزئة الجمهور والجدولة وتقرير فعالية الإرسال. مبنية على عميل APNs HTTP/2 قابل للاسترداد.

  • BO sort + filter + search + إجراءات لكل صف على /admin/push/campaigns
  • قالب فعالية إرسال push & email لكل حملة
  • جلسات APNs HTTP/2 تتعافى بعد timeouts (استعادة الجلسات الميتة)
  • تكافؤ قناتَي email + push في نفس صف الحملة
  • Opt-out لكل مستخدم لإيميل ملخص جلسة الشحن

Powered by: push_campaigns · عميل APNs · قالب تحليلات send-effectiveness

بوابة المشغّل — قائمة حملات push مع sort وfilter وsearch وإجراءات لكل صف

المستخدمون و RBAC

كتالوج صلاحيات بنطاقات مثل reports.export، reports.schedule، users.export، audit.read — مجمَّعة في Departments مزروعة وقابلة للإسناد لكل فريق.

  • كتالوج صلاحيات مع action + module + description لكل صلاحية
  • 5 Departments مزروعة مع حزم صلاحيات لكل department
  • قواعد allow/deny لكل فريق مطبَّقة داخل فرعَي walk-up + fleet
  • تصدير CSV للمستخدمين محمي بـ users.export
  • acquisitionSource معروض على /api/admin/users/:id لتقارير قمع التحويل

Powered by: permissions + departments + department_permissions + team_permissions · TeamAccessRule

بوابة المشغّل — المستخدمون و RBAC مع Departments مزروعة ووصول scoped لكل فريق

What's New

وحدة release notes على جانب المشغّل مع flag prominent وعناوين وملخصات مترجَمة وترتيب catch-up scroll حسب published_at.

  • title + short_summary مترجَمان لكل مدخل
  • Flag prominent للإصدارات عالية الإشارة
  • فلترة حسب الجمهور: operator-only، driver-only، mixed
  • published_at مُعبَّأة بأثر رجعي على كل مدخل ليُرتَّب catch-up scroll بشكل صحيح
  • إصدار حسب خط الإصدار (core، app، operator)

Powered by: whats_new_entries · whatsnew TS module · audience filtering API

بوابة المشغّل — وحدة What's New مع flag prominent ومدخلات مترجَمة

Erasure Requests

سطح GDPR المادة 17 لاستلام وتنفيذ ومراجعة طلبات المحو — مع حذف متسلسل للبيانات الشخصية وتنظيف سجل المراجعة وإخفاء هوية auth-tokens.

  • حذف متسلسل من البداية للنهاية للبيانات الشخصية عند حذف المستخدم
  • auth_tokens مُجهَّلة، leads مُحذَفة متسلسلاً
  • audit_logs غير الحرجة تُنظَّف من البيانات الشخصية عند حذف المستخدم
  • واجهة مشغّل للفرز + التنفيذ + التحقق لكل طلب
  • كل خطوة محو تصدر حدث مراجعة من نوع GDPR

Powered by: erasure_requests · تصنيف أحداث gdpr.* · خط أنابيب الحذف المتسلسل

بوابة المشغّل — طابور طلبات GDPR erasure مع حالة الحذف المتسلسل وأثر المراجعة

Settings (Runtime Config)

تكوين runtime بنطاق المستأجر: SMTP، store URLs، EMAIL_FROM_NAME، مفتاح إيميل ملخص الجلسة، flags QR-config — كلها قابلة للتحرير بدون redeploy.

  • تجميع SMTP + EMAIL_FROM_NAME + headers FROM لكل مستأجر
  • Store URLs (App Store + Play Store) تُقرأ عبر runtime-config
  • Flags QR-config (online/offline) بدون round-trip probe إلى Citrine
  • نص وصفي + تكافؤ .env.example لكل مفتاح في allowlist
  • عرض commit SHA المنشور عبر /api/version

Powered by: جدول runtime_config · وحدة settings · نقطة نهاية /api/version

بوابة المشغّل — محرّر التكوين runtime مع SMTP و store URLs و knobs لكل مستأجر

API و Webhooks

كل ما تفعله لوحة المشغّل، معروض كـ REST مع OpenAPI 3.1. Webhooks لبدء/إيقاف الجلسة وأحداث الدفع وتغيرات حالة الشاحن. بيانات اعتماد ضمن نطاق الرمز.

  • OpenAPI 3.1 spec، قابلة للتصفّح داخل البوابة
  • بيانات اعتماد ضمن نطاق الرمز مع RBAC لكل مسار
  • سجل تسليم webhook مع إعادة المحاولة + التحقق من التوقيع
  • /health rich (db + amqp + citrine + disk + memory + cpu)
  • إصدار عبر /api/version يعرض commit المنشور + نسخة CitrineOS

Powered by: api_tokens + webhook_deliveries + audit-mirror · /health rich · /api/version

بوابة المشغّل — Browser لـ API و Webhooks مع OpenAPI spec ونطاقات الرموز وسجل webhook

تريد جولة عملية؟

اختر فترة 30 دقيقة. سندخلك إلى تينانت sandbox بشكل شبكتك الحقيقية — شواحن، تعرفات، أساطيل — ونعرض كل وحدة أعلاه.