Ваши данные
Что мы храним — и чего не храним
Список ниже — все поля из схемы базы: если поля там нет, его нет и у нас. Вне базы — только загруженные вами файлы, технические логи запросов с IP-адресом и браузером, резервные копии на сервере — за последние 14 дней и письма, которые уходят через почтовый сервис.
Что мы храним
Поля из схемы базы
Ниже — то, что реально лежит в PostgreSQL. Названия полей как в схеме.
Аккаунт
модель User
- Адрес для входа и писем. Уникальный.
- password_hash
- Хеш пароля (bcrypt). Сам пароль в базу не пишется. Для входа через Google поле может быть пустым.
- name
- Отображаемое имя в профиле.
- avatar_url
- Ссылка на загруженный аватар.
- email_verified · google_id
- Флаг подтверждения почты и идентификатор Google, если вход через Google.
- consented_at
- Когда вы дали согласие на обработку персональных данных при регистрации.
Подписки
модель Subscription
- name
- Название подписки, которое вы ввели.
- price · currency
- Сумма и валюта этой записи. Не курс банка и не выписка — только то, что вы указали.
- billing_cycle
- Период: daily, weekly, monthly или yearly.
- next_billing_date
- Дата следующего продления — для списка и календаря.
- status
- active, paused или cancelled. Пауза сохраняет историю.
- category_id · color
- Своя категория (модель Category: name, icon, color) и цвет подписки — фон иконки без логотипа и отметка в календаре. Есть также необязательное description.
- icon_url
- Ссылка на иконку сервиса, если вы её загрузили.
- created_at · updated_at
- Когда запись создана и когда менялась последний раз.
- deleted_at
- Время удаления. Подписка скрывается из приложения и хранится ещё 90 дней, затем стирается автоматически. При удалении аккаунта — сразу.
Журнал безопасности
таблица audit_logs
- user_id
- Аккаунт, с которым связано событие. Журнал помогает выявлять подозрительные входы и разбираться в случаях несанкционированного доступа. В интерфейсе он не показывается.
- action
- Тип события: вход по паролю или через Google, неудачная попытка входа по паролю в существующий аккаунт, смена пароля в профиле или сброс пароля. Попытки входа с неизвестной почтой не записываются.
- ip_address
- IP-адрес, с которого произошло событие.
- user_agent
- Сведения о браузере (User-Agent).
- created_at
- Время события. Записи хранятся 90 дней, затем стираются автоматически. При удалении аккаунта — сразу.
Настройки
модель UserPreferences
- уведомления
- Флаги: email_notifications, push_notifications, payment_reminders, price_change_alerts, weekly_report, marketing_emails. Это только настройки: писем по ним сервис пока не отправляет.
- currency · language · timezone
- Базовая валюта для итогов. Язык и часовой пояс пока только сохраняются.
- theme · compact_mode
- Тема (light / dark / system) и флаг компактного списка — сам режим пока не сделан.
Ещё в схеме — служебные поля и токены
id, связи между записями и даты создания и изменения. refresh_tokens (сессия), password_reset_tokens и email_verification_tokens — записи для входа и подтверждения почты, у каждой свой срок действия. Не данные подписок.
Чего мы не храним
Банка у нас нет — и не будет из коробки
Это не политика, которую можно «включить обратно». В коде нет интеграции с банком или open-banking — отключать нечего.
Нет банковских логинов и паролей
Мы не просим доступ к интернет-банку. В схеме и в коде нет полей под учётные данные банка.
Нет номеров карт
В схеме нет полей под PAN, CVV или токен карты. Оплата продукта сейчас не принимает карту — бета бесплатна.
Нет доступа к банку или open-banking
В репозитории нет Plaid, Tink и аналогов. Подключить «и забыть» нельзя — интеграции просто нет.
Нет выписки, скачанной откуда-либо
Истории операций банка у нас нет. Подписки появляются только из того, что вы ввели сами или загрузили файлом CSV.
Как данные уходят
Выгрузка и удаление — в продукте
При удалении подписка скрывается из приложения и хранится ещё 90 дней, затем стирается автоматически. Сразу после удаления её можно вернуть кнопкой «Вернуть». Чтобы стереть удалённую подписку раньше, удалите аккаунт или напишите оператору.
Выгрузка CSV
Один запрос в профиле отдаёт файл subscriptions.csv: имя, описание, цена, валюта, цикл, дата, статус, категория, цвет. Без обращения в поддержку.
Удаление аккаунта
Кнопка в профиле сразу удаляет аккаунт, все подписки (включая удалённые), журнал безопасности, категории, настройки, токены и загруженные файлы. В резервных копиях базы данные остаются не дольше 14 дней. Журналы сервера перезаписываются по мере заполнения. Отката через интерфейс нет.
Чего ещё нет
Вопросы, на которые честный ответ — «нет»
То, что спрашивает закупщик. Сроков здесь нет — только факт: этого в продукте сейчас нет.
SSO / корпоративный вход
нет
Есть email/пароль и Google OAuth. SAML, OIDC для компании — нет.
Журнал изменений
нет
Кто что менял в подписках, отдельно не записывается. Журнал безопасности фиксирует входы и события пароля, но в интерфейсе не показывается.
Выбор региона хранения
нет
В продукте нет настройки data residency: все данные лежат на одном сервере в Москве.
Роли и разграничение доступа
нет
Нет сущностей role, membership, space. Один пользователь — свои подписки.