Бэк-офис

Двенадцать модулей. Один портал оператора. Аудит-уровень с первого клика.

Бэк-офис Connect — то же ПО, которым каждый день пользуются наши собственные операторы: тот же RBAC, тот же аудит-лог, те же отчёты. Ниже — каждый модуль с реальным экраном, тем, что он делает, и движком, который его обслуживает.

Двенадцать модулей. Один портал оператора. Аудит-уровень с первого клика.

Сессии

Каждая начатая, текущая и завершённая сессия зарядки — с привязанным OCPP-таймлайном, платёжным трейлом и состоянием refund/dispute.

  • Live + история, бейджи статусов (started, charging, terminated, refunded, disputed)
  • Потоковый CSV-экспорт по фильтру
  • Переход в OCPP-таймлайн + платёжный таймлайн каждой сессии
  • Force-cancel с аудит-трейлом и кодом причины от оператора
  • Скрывает offline-pill на терминальных сессиях; ставит resolved_at + аудит force-cancel

Powered by: billing_sessions + session_payment_authorizations · charging_attempts audit · OCPP AMQP realtime → state machine

Портал оператора — список сессий со статусами, поиском и массовым экспортом

Станции и локации

Fleet-of-stations с дашбордами по локации, real-time панелью неисправностей, OCPP-классификацией коннекторов и переопределениями тарифов по локации.

  • Эндпоинт per-location дашборда + lookup stations-by-location
  • Faults-панель только по реальным OCPP-неисправностям (с vendor codes)
  • Классификация коннекторов по powerType, без жёстко вшитой DC-эвристики
  • Единый часовой пояс зарядки–локации для сессий и отчётов
  • Адрес + город автоматически обогащаются при создании станции

Powered by: stations + locations + station_connectors · faults · per-location analytics aggregator

Портал оператора — Stations and Locations с утилизацией и количеством fault по локации

Тарифы и переопределения

Каталог тарифов с переопределениями по команде, локации, коннектору — и снимок того, какой тариф реально применился к каждой walk-up-сессии.

  • Каталог тарифов с количеством переопределений по команде и локации
  • Снимок walk-up тарифа с контекстом локации (с правильным часовым поясом)
  • Helper lookup тарифа коннектора по Citrine connector PK или OCPP id
  • tariffName + кол-во переопределений на странице команды
  • Все правки эмитят audit_logs (tariffs.create / update / delete)

Powered by: tariffs + tariff_overrides + connector_tariff_assignments · walk-up snapshot writer · audit-mirror

Портал оператора — редактор тарифов с панелью переопределений по локации

Отчёты

Движок отчётов из 23 шаблонов: Revenue & P&L, сверка сеттлментов, возвраты, fleet AR aging, эффективность тарифов, качество сессий + 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 шаблонами, расписаниями и audit экспортов

Аудит-лог

Один append-only поток событий по финансам, OCPP, RBAC и конфигам — с ежедневным якорем и endpoint верификации цепочки, чтобы следы фиксировались.

  • Фундамент audit_logs: финансы, OCPP, RBAC, settings, push/exports
  • Ежедневный anchor hash + nightly retention + chain verify endpoint
  • Prometheus-метрики emit rate, lag, anchor age
  • request_id middleware протягивает корреляцию через каждое событие
  • Refund + locations + stations + settings emit assertions в тестах

Powered by: audit_logs · daily anchor worker · auditEmit + auditEmitTs primitives · audit-mirror modules

Портал оператора — таймлайн аудит-лога с ежедневным anchor hash и статусом chain verify

Флоты

Мультитенантные флоты с RFID-картами, bulk CSV-импортом, автоматизацией дозвона и scope отчётов по команде. Рефактор Teams→Fleets ушёл в live без даунтайма.

  • Выдача + привязка + отзыв fleet RFID с аудит-трейлом
  • Bulk CSV RFID импорт с валидацией под лимит OCPP 1.6 IdToken (20 символов)
  • Aged-receivables отчёт + воркер автоматизации dunning
  • Per-fleet scope на каждом шаблоне отчёта + dashboard aggregate
  • Driver-binding обязателен при создании fleet-карты; unbound токены → clean Blocked/TOKEN_UNBOUND

Powered by: fleets + fleet_cards + fleet_invoices · dunning worker · Citrine адаптер для fleets

Портал оператора — список флотов с RFID, AR aging, dunning и bulk CSV import

Push-кампании

Операторские push-кампании с сегментацией аудитории, расписанием и отчётом по эффективности отправки. Поверх восстановимого APNs HTTP/2 клиента.

  • BO sort + filter + search + per-row actions на /admin/push/campaigns
  • Шаблон эффективности отправки push & email по кампании
  • APNs HTTP/2 сессии восстанавливаются после таймаутов
  • Паритет email + push каналов в одной строке кампании
  • Per-user opt-out для email-сводки сессии зарядки

Powered by: push_campaigns · APNs client · send-effectiveness analytics template

Портал оператора — список push-кампаний с sort, filter, search и per-row действиями

Пользователи и RBAC

Каталог пермиссий со scope-ами вроде reports.export, reports.schedule, users.export, audit.read — сгруппированы в seeded Departments и назначаются по командам.

  • Каталог пермиссий с action + module + description
  • Seeded Departments (5) с per-department бандлами
  • Per-team allow/deny внутри walk-up + fleet веток
  • CSV-экспорт users gated by users.export
  • acquisitionSource на /api/admin/users/:id для funnel-отчётов

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

Портал оператора — Users и RBAC с seeded Departments и per-team доступом

What's New

Операторский модуль release notes с prominent-флагом, локализованными заголовками и summary, и сортировкой catch-up scroll по published_at.

  • Локализованные title + short_summary
  • Prominent-флаг для важных релизов
  • Фильтр по аудитории: operator-only, driver-only, mixed
  • Backfilled published_at на каждой записи, чтобы catch-up scroll сортировался
  • Версионирование по релизной линии (core, app, operator)

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

Портал оператора — What's New release notes с prominent-флагом и локализованными записями

Erasure Requests

Поверхность GDPR Article 17 для приёма, выполнения и аудита erasure-запросов — с каскадным удалением PII, чисткой audit-логов и анонимизацией auth-токенов.

  • End-to-end PII каскадное удаление при удалении пользователя
  • auth_tokens анонимизируются, leads каскадно удаляются
  • Non-critical audit_logs PII очищается при удалении пользователя
  • Операторский UI для триажа + выполнения + верификации каждого запроса
  • Каждый шаг erasure эмитит GDPR-типизированное audit-событие

Powered by: erasure_requests · gdpr.* event taxonomy · cascade-delete pipeline

Портал оператора — очередь GDPR erasure requests со state каскадного удаления и audit-трейлом

Настройки (Runtime Config)

Tenant-scoped runtime-конфиг: SMTP, store URLs, EMAIL_FROM_NAME, переключатель email-сводки сессии зарядки, флаги QR-config — все правки без редеплоя.

  • Группировка SMTP + EMAIL_FROM_NAME + per-tenant FROM заголовки
  • Store URLs (App Store + Play Store) через runtime-config
  • Флаги QR-config (online/offline) без round-trip к Citrine
  • Описательная копия + .env.example паритет для каждого allowlisted ключа
  • Surface deployed commit SHA через /api/version

Powered by: runtime_config · settings module · /api/version

Портал оператора — редактор runtime config с SMTP, store URLs и per-tenant кнопками

API и вебхуки

Всё, что делает бэк-офис, доступно как REST с OpenAPI 3.1. Вебхуки на старт/стоп сессии, платёжные события и изменения статуса зарядки. Токены со scope.

  • Спецификация OpenAPI 3.1, browsable в портале
  • Токены со scope с per-route RBAC
  • Webhook delivery log с retry + signature verification
  • Богатый /health (db + amqp + citrine + disk + memory + cpu)
  • Версионирование через /api/version с deployed commit + CitrineOS

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

Портал оператора — API и вебхуки browser с OpenAPI спецификацией, scope-ами токенов и webhook log

Хотите hands-on тур?

Выберите 30-минутный слот. Мы логиним вас в sandbox-тенант с формой вашей реальной сети — зарядки, тарифы, флоты — и пройдём каждый модуль выше.