К работам

Backend-инженер

Bronirka — backend

Cloud Functions на TypeScript

TypeScriptNode.jsCloud FunctionsFirebase AdminFirestoreStoreKit JWS

Статус · В продакшне

Задача

Подписочные приложения, которые доверяют клиенту состояние подписки, ломают за пару недель. Приложению для записи нужны были проверяемые, защищённые от повтора чеки и серверный контроль лимитов плана в Firestore.

Подход

  • 01Серверная валидация подписанных транзакций StoreKit 2 (JWS) — проверка подписи Apple и сверка чеков с хранилищем транзакций до выдачи доступа.
  • 02Callable HTTPS-функции для привилегированных операций (возвраты, ручная выдача доступа, оверрайды поддержки).
  • 03Триггеры Firestore для производных данных — счётчики, шарды поиска, денормализованные сводки записей — чтобы клиентские чтения оставались дешёвыми и согласованными.
  • 04Структурированное логирование с редактированием чувствительных данных; алерты на сбои валидации подписей.

Результат

Стабильный транзакционный backbone, который используют iOS-приложение, веб-клиент и админ-инструменты. Ноль инцидентов с мошенничеством по подпискам за время беты.