Политика
конфиден­циальности

Какие данные обрабатывают сайт и Telegram-бот baǵam, зачем, где они лежат и как их удалить. Каждое утверждение сверено с исходным кодом проекта: файлы перечислены в конце страницы.

Главное за полминуты

  • Ссылка на объявление не сохраняется и не связывается с вами: из неё берётся только публичный номер лота.
  • Номер вашего чата бот хранит, только пока вы подписаны на алерты или следите за лотами, и хранит его зашифрованным. Для статистики из номера считается короткий хэш.
  • Состояние бота лежит в приватном репозитории автора на GitHub. Код проекта открыт, данные нет.
  • Отписаться и удалить данные можно командой в боте или сообщением автору.
0cookie. Код сайта не создаёт и не читает cookie.
0сторонних трекеров. Ни аналитики, ни рекламы, ни пикселей.
60днейсрок счётчиков. Столько хранятся счётчики визитов и короткие хэши пользователей бота.

Кто оператор

baǵam — некоммерческий проект. Его ведёт автор: @Hopepe1 в Telegram. Сайт и бот бесплатны, рекламы на них нет.

Политика относится к сайту dex719-krisha-fair-price.hf.space и боту @fairprice_kzbot. Исходный код опубликован на GitHub (лицензия Elastic License 2.0), поэтому всё описанное ниже можно проверить самому.

Что обрабатывает сайт

Сайт работает без аккаунтов и регистрации. Вот что происходит, когда вы им пользуетесь.

Ссылка на объявление

Браузер отправляет ссылку на наш сервер. Сервер берёт из неё только номер объявления, сам загружает публичную страницу с krisha.kz и считает оценку. Ваш адрес и ваш браузер krisha.kz не видит.

Сама ссылка не сохраняется. Готовая оценка около 10 минут лежит в памяти сервера под номером объявления, без привязки к вам. В базе сервиса остаются публичная карточка лота (цена, площадь, адрес, описание продавца: всё, что и так видно на krisha.kz) и запись об оценке: время, цены и вердикт. Ничего о вас в них нет.

IP-адрес

Чтобы одна машина не заваливала сервис, сервер считает запросы с каждого адреса за последнюю минуту: по умолчанию не больше 15 оценок в минуту. Счётчик живёт в памяти процесса, на диск и в репозиторий не пишется и пропадает при перезапуске.

Технический журнал

Как у любого веб-сервера, у приложения есть журнал: путь запроса, код ответа, адрес, с которого пришло соединение (на Hugging Face запросы идут через прокси хостинга), и ошибки. Ссылку на объявление вы отправляете в теле запроса, поэтому в адресе страницы её нет. Журнал живёт до перезапуска контейнера. Если оценка завершилась ошибкой, в журнал может попасть номер объявления.

Счётчики

Сервер считает, сколько раз открыли страницы и сколько оценок посчитано, по дням и по часам. В счётчике нет ни IP, ни идентификатора посетителя. Раз в неделю автору приходит сводка из этих чисел.

Память браузера

Сайт записывает в localStorage три ключа: bagam-theme и kfp-theme с выбранной темой (второй — прежнее имя, значение дублируется) и bagam-stats с копией публичных цифр рынка, чтобы страница открывалась без пауз и без сети.

Личного в них ничего нет, на сервер они не отправляются. Стереть их можно в настройках браузера.

Кнопка «Вставить»

Читает буфер обмена только после вашего нажатия и только чтобы подставить текст в поле. Пока вы не нажали «Проверить», ничего никуда не уходит.

Mini App в Telegram

Если сайт открыт внутри Telegram, страница подгружает скрипт telegram-web-app.js с telegram.org: так сайт подстраивает цвет шапки и кнопку «Назад». Данные профиля, которые Telegram может передать мини-приложению, мы не отправляем на сервер и не сохраняем.

Что обрабатывает бот

Бот работает через Telegram: сообщение приходит на наш сервер (webhook), ответ уходит через Bot API. Подробности команд — на странице бота.

Что бот читает

Из каждого сообщения код использует три поля: номер чата, тип чата (личный или нет) и текст. Имя, @username, номер телефона и фото профиля бот не читает и не сохраняет. Тексты сообщений приложение не записывает.

Оценка по ссылке

Работает как на сайте: из сообщения берётся номер объявления, страницу загружает сервер. К ответу бот прикладывает первое фото объявления: Telegram сам скачивает его по публичной ссылке с krisha.kz.

Текст без ссылки

Сообщение без ссылки, не короче 40 символов, бот принимает за текст объявления. Его начало, до 3000 символов, уходит в Gemini, нейросеть Google, чтобы вытащить площадь, этаж и район. Это работает, только если у оператора подключён ключ Gemini. Сам текст мы не сохраняем.

Не отправляйте боту в таких сообщениях телефоны и другие личные данные.

Подписка на алерты

Команда /alerts_on сохраняет номер чата, фильтры (число комнат, максимальный бюджет, район) и дату подписки. По ним раз в день после обновления базы бот присылает новые выгодные объявления.

Слежка за лотами

Команда /track сохраняет номер чата и для каждого лота номер, заголовок, дату подключения и цену: после каждого обновления базы цена перезаписывается новой. Не больше 10 лотов на чат. Лот пропадает из слежки после /untrack или когда объявление снято с продажи.

Статистика бота

Каждое сообщение боту увеличивает дневной счётчик. Чтобы считать уникальных пользователей, сохраняется короткий хэш номера чата: 10 символов, посчитанных с секретной солью. Без этой соли по хэшу нельзя восстановить номер чата, а в репозитории её нет.

Защита от дублей

Telegram иногда присылает одно обновление дважды. Чтобы не отвечать два раза, сервис помнит номера последних 5000 обновлений: только номера, без текста и без чата. Они лежат в базе контейнера.

Чего мы не собираем

Список проверяет тест в репозитории: если на страницах появятся cookie или внешний скрипт, он упадёт.

  • Cookie. Сайт их не создаёт и не читает.
  • Стороннюю аналитику и рекламу. Нет счётчиков, пикселей, рекламных сетей и виджетов соцсетей. Единственный внешний скрипт — telegram-web-app.js, и только внутри Telegram.
  • Внешние шрифты и CDN. Шрифты, стили, скрипты и картинки отдаёт сам сайт.
  • Аккаунты и пароли. Регистрации нет. E-mail, телефон и платёжные данные никто не спрашивает.
  • Геолокацию, камеру, микрофон и контакты. Сайт этих разрешений не запрашивает.
  • Имя и @username в Telegram. Бот их не читает.
  • Ваши сообщения боту. Приложение не сохраняет их текст. Единственное место, куда он уходит, — Gemini, когда вы присылаете текст объявления без ссылки (раздел 03).

Данные, цели и сроки

Всё, что живёт дольше одного запроса, собрано в таблицу. Остальное лежит в памяти сервера и исчезает при перезапуске.

ДанныеЗачемГде хранятсяСколько
Номер объявления, его публичная карточка и результат оценкиОценка по ссылкеПамять сервера (кэш) и база сервиса в контейнереКэш около 10 минут; база до пересборки контейнера, обычно раз в сутки
IP-адресОграничение частоты запросовПамять процесса и технический журнал сервераДо перезапуска контейнера
Счётчики визитов, оценок и сообщений ботуПонимать нагрузку, недельная сводка авторуПриватный репозиторий: открытый JSON, без IP и без номеров чатов60 дней
Хэш номера чатаЧисло уникальных пользователей ботаТам же60 дней
Номер чата и фильтры алертовРассылка выгодных объявленийЗашифрованный файл в приватном репозитории, копия в контейнереПока вы не отправите /alerts_off
Номер чата и лоты в слежкеУведомления об изменении цены и о снятииТам жеДо /untrack или до снятия объявления с продажи
Тема и копия цифр рынкаОформление и быстрая загрузкаlocalStorage вашего браузераПока вы не очистите данные сайта
Журнал оценокнеобязательный, по умолчанию выключенПроверять качество модели на судьбе лотовПриватный репозиторий: открытый JSON с временем, номером лота, ценами и вердиктом, без данных о человекеПоследние 20 000 записей

Где хранятся и кто имеет доступ

ВыБраузер или Telegram: ссылка на объявление, команды бота
Space на Hugging FaceОценка, лимит запросов, кэш. Диск стирается при перезапуске
Приватный репозиторий GitHubПодписки и слежка зашифрованы, счётчики лежат открыто, но без номеров чатов

Страницу объявления с krisha.kz загружает сервер, а не ваш браузер.

Сервер

Сайт и бот работают в Docker-контейнере на Hugging Face Spaces. Диск контейнера не постоянный: при перезапуске и ежедневной пересборке всё, что приложение записало локально, пропадает. Состояние бота после старта заново забирается из приватного репозитория.

Приватный репозиторий

Подписки, слежка и счётчики лежат в приватном репозитории автора на GitHub. Код проекта открыт, этот репозиторий нет. В описаниях коммитов нет ни номеров чатов, ни номеров лотов.

Предыдущие версии файлов остаются в истории репозитория. У файлов с номерами чатов они тоже зашифрованы.

Шифрование

Файлы с номерами чатов, то есть подписки и слежка, шифруются целиком до отправки в репозиторий (Fernet, библиотека cryptography). Ключ берётся из секрета на сервере (отдельного или, если его нет, токена бота), в репозитории его нет. Если ключа нет совсем, такой файл в репозиторий не отправляется вообще.

Не шифруются файлы без номеров чатов: счётчики (в них только хэши), журнал оценок и список уже разосланных лотов (публичные номера объявлений).

Шифрование закрывает файл от посторонних, но не от оператора: ключ есть у автора и у сервисов, которые рассылают вам сообщения.

Кто имеет доступ

Автор проекта: он владеет хостингом и репозиториями. Сервер на Hugging Face читает и записывает состояние по токену, выданному только на репозиторий данных. Рассылку алертов делает GitHub Actions проекта: в момент запуска он скачивает состояние и расшифровывает его, чтобы отправить сообщения.

Журнал рассылки в GitHub Actions пишет, сколько подписчиков и сообщений было. Если сообщение по слежке не доставилось (например, вы заблокировали бота), в журнал попадает номер этого чата. Журналы запусков публичного репозитория кода открыты для любого пользователя GitHub.

Мы не продаём данные и не отдаём их рекламным и аналитическим сервисам: таких интеграций в коде нет.

Третьи лица

У каждого из этих сервисов свои правила и свои журналы. Мы ими не управляем.

Telegram

Бот живёт внутри Telegram: ваши сообщения проходят через его серверы и подчиняются его политике. Внутри Mini App сайт подгружает скрипт с telegram.org.

Политика конфиденциальности Telegram

Hugging Face

Хостинг сайта и бота. Как у любого хостинга с прокси, запросы к сайту (адреса страниц, IP) проходят через инфраструктуру Hugging Face.

Политика конфиденциальности Hugging Face

GitHub

Приватный репозиторий с состоянием бота, релизы с базой объявлений и весами модели, GitHub Actions: ежедневный сбор данных и рассылка алертов. Исходный код открыт.

Политика конфиденциальности GitHub

Google (Gemini)

Только бот и только если подключён ключ: текст объявления, вставленный без ссылки (до 3000 символов), и публичные фото объявлений для оценки ремонта.

Политика конфиденциальности Google

krisha.kz

Источник публичных данных об объявлениях. Страницы объявлений запрашивает наш сервер, а не ваш браузер, поэтому krisha.kz не получает ваш адрес. Ссылки на объявления в результатах открываются на krisha.kz, там действуют его правила.

Как удалить данные

Почти всё удаляется одной командой в боте.

/alerts_off

Отписаться от алертов: запись о подписке удаляется.

/untrack ссылка

Убрать один лот из слежки.

/untrack all

Очистить слежку целиком.

/track

Показать лоты, за которыми бот следит. Команда /alerts показывает текущую подписку.

Блокировка бота

Блокировка не удаляет данные: подписка и слежка остаются в файле, пока вы не отпишетесь. Поэтому сначала отправьте /alerts_off и /untrack all.

Браузер

Тему и копию цифр удалит очистка данных сайта в настройках браузера.

Счётчики

Счётчики и хэши удаляются сами через 60 дней.

Остальное

Чтобы показать, что о вас хранится, или удалить то, чего нет в командах, в том числе старые версии файлов в истории репозитория, напишите автору в Telegram с того же аккаунта. В личных чатах номер чата совпадает с номером пользователя, по нему запись и находится.

Изменения и контакты

Если политика изменится, например появится новая интеграция или аналитика, страница обновится, а дата редакции сменится. Прошлые редакции остаются в истории файла в репозитории проекта.

Сверить с кодом. Файлы, на которых стоят утверждения выше:

subscriptions.py

Состояние бота, шифрование, запись в приватный репозиторий.

usage.py

Счётчики, хэш номера чата, срок в 60 дней.

bot.py

Какие поля сообщения читает бот и какие команды понимает.

text_parse.py

Текст без ссылки: не короче 40 символов, в Gemini уходит не больше 3000.

tracking.py

Что хранится при слежке и потолок в 10 лотов на чат.

send_alerts.py

Рассылка из GitHub Actions и то, что она пишет в журнал.

api/app.py

Лимит запросов по IP, заголовки безопасности, отдача страниц.

prediction_log.py

Необязательный журнал оценок и его потолок в 20 000 записей.

test_state_encryption.py

Тест: файл с номерами чатов не читается без ключа.

Вопрос или просьба удалить данные

Пишите автору в Telegram.

Написать @Hopepe1 →

Редакция от