Перейти к содержанию

Спецификация 04. Деплой, офлайн-синхронизация и безопасность

Статус: ревизия №2 по итогам аудита корпуса · 10.10.2026. Числовые факты сопровождаются ссылками; канонические перечисления — в «Модели данных», §0.

Финальный документ серии: как платформа размещается, как точка живёт без интернета и где проходят границы безопасности.

1. Топология деплоя

flowchart TB
    subgraph Точка["Точка (локальная сеть)"]
        LAN["Локальный сервер точки (буфер синхронизации)"]
        T1["Касса"]
        T2["Кухонный экран"]
        T3["Устройства склада"]
        T1 --- LAN
        T2 --- LAN
        T3 --- LAN
    end

    subgraph Облако["Облако РФ"]
        GW["API-шлюз"]
        SVC["Сервисы ядра"]
        MQ["Очередь событий"]
        DB1[("БД: транзакции")]
        DB2[("Журнал событий")]
        DB3[("Витрины отчётов")]
        GW --> SVC
        SVC --> MQ
        MQ --> DB1
        MQ --> DB2
        DB2 --> DB3
    end

    subgraph Партнёры["Партнёрские сервисы"]
        OFD["ОФД"]
        GOV["Госсистемы"]
        BANK["Банк"]
        EDO["ЭДО"]
        AGG["Агрегаторы"]
    end

    LAN <-->|HTTPS, пакетная синхронизация| GW
    SVC <--> OFD
    SVC <--> GOV
    SVC <--> BANK
    SVC <--> EDO
    SVC <--> AGG

2. Мультитенантность и изоляция

flowchart LR
    subgraph Изоляция["Уровни изоляции"]
        A["1. Тенант (УК / франчайзи / независимый)"]
        B["2. Договор франшизы: какие точки видит франчайзи"]
        C["3. Точка: рабочие места и данные точки"]
        D["4. Роль устройства: касса / кухня / бэк-офис"]
    end
    A --> B --> C --> D

Правила:

  • Данные читаются только в рамках разрешенного уровня; агрегаты УК строятся по точкам договора.
  • Справочники наследуются сверху вниз (шаблон УК → точка) с локальными переопределениями.
  • Журнал доступа к данным гостей — обязателен (152-ФЗ).

3. Офлайн-синхронизация: модель

flowchart LR
    subgraph Офлайн["Точка без связи"]
        J["Локальный журнал событий (упорядоченный)"]
        F["ФН кассы (автономен)"]
    end
    subgraph Онлайн["Восстановление связи"]
        S1["1. Отправка пакета событий"]
        S2["2. Идемпотентное применение в облаке"]
        S3["3. Сверка контрольных сумм журнала"]
        S4["4. Получение обновлений справочников"]
    end
    J --> S1 --> S2 --> S3 --> S4

Контрактные требования:

  1. Точка обязана торговать без интернета полный норматив офлайн-автономности — 8 часов продаж без облака (продажи, чеки, кухня, складские операции; метрика ../product-blueprint.md, §5); далее — деградация функциональности по приоритетам (продажи и чеки — до последнего, аналитика и интеграции отключаются первыми).
  2. Порядок событий в журнале — источник истины при слиянии; конфликты решаются по типам операций (см. правила в Спецификации 03, раздел 4).
  3. Фискальные документы не теряются: ФН хранит чеки автономно; передача в ОФД — после связи (мониторинг «чеки не уходят»).
  4. Алерт платформе: точка офлайн дольше порога → уведомление УК.

4. Безопасность: границы

flowchart TB
    subgraph Внешнее["Не доверяем"]
        NET["Публичный интернет"]
    end
    subgraph Периметр["Контролируем"]
        WAF["Шлюз: авторизация, лимиты, аудит"]
        APP["Приложения (без прямых доступов к БД)"]
    end
    subgraph Данные["Защищаем"]
        PII["ПДн гостей (РФ)"]
        FIN["Фискальные и финансовые данные"]
        SEC["Секреты интеграций"]
    end
    NET --> WAF --> APP
    APP --> PII
    APP --> FIN
    APP --> SEC

Требования:

  • ПДн: первичная запись в РФ; согласия и журналы; выгрузка/удаление по запросу (Разбор 4).
  • Платежи: полные данные карт не храним — токены процессинга; СБП через сертифицированный шлюз.
  • ЭДО/госсистемы: доступ через сертифицированные шлюзы; секреты — в хранилище секретов, не в коде.
  • 2ФА для ролей УК и управляющих; линейный персонал — ПИН/карта с короткими сессиями.
  • Резервное копирование: RPO ≤ 15 мин, RTO ≤ 1 ч; локальный буфер точки — дополнительная защита.

5. Наблюдаемость и телеметрия

  • Метрики платформы: аптайм ≥ 99,9%, латентность создания заказа < 3 с от витрины до тикета кухни.
  • Телеметрия точек: онлайн/офлайн, загрузка ККТ, заполненность ФН, «чеки не уходят».
  • Бизнес-телеметрия для УК: пульс сети (выручка, скорость кухни, индекс стандарта) — дашборд в реальном времени.

6. Критерии готовности платформы (DoD)

  • [ ] Офлайн-смена 8 часов без потерь при синхронизации.
  • [ ] Чек уходит в ОФД; маркированный товар проходит разрешительный режим.
  • [ ] Онлайн-заказ появляется на КДС < 3 секунд.
  • [ ] Вебхуки: доставка с подписью, идемпотентность получателя продемонстрирована.
  • [ ] Тенант-иерархия клонирует шаблон точки < 1 часа.
  • [ ] Запрос удаления ПДн гостя исполняется инструментами поддержки.