Добавил backend, чтобы расширение могло не работать
Инвариант подрядчика был простой: работа сделана — работа оплачена.
Расширение для мониторинга букмекеров было готово. Перед передачей на тесты захотелось подстраховаться: упаковать JavaScript в расширение ещё не значит спрятать его от получателя.
Поэтому добавили backend. Да, намеренную точку отказа.
Часть скриптов расширение подтягивало с сервера через AJAX с отключённым кешированием и выполняло через eval. Это была история времён Manifest V2. Работоспособность клиента теперь зависела от выдачи этих скриптов.
Мотивация вполне приземлённая: сохранить контроль над тестовой версией до оплаты.
Код дополнительно обфусцировал. Цель — поднять стоимость разбора и удаления этой зависимости настолько, чтобы реверс потерял экономический смысл.
У конструкции были ограничения: загруженный код всё равно оказывался на клиенте, а обфускация лишь усложняла его изучение. Гарантировать оплату таким способом нельзя.
Зато точка отказа получилась настоящая: недоступность backend могла нарушить работу расширения и без всякого спора об оплате. Такой вот обмен доступности на контроль.
А заказчики из high-risk в итоге оплатили работу и добавили бонус за скорость и несколько UI-доработок сверх ТЗ.
Финансовый инвариант соблюдён. Даже с запасом.
Такие дела!