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

## Оператор

Оператор: администратор экземпляра ArchStudioV2, развернутого на домене установки.

Контакт оператора: email администратора, указанный в `APP_BOOTSTRAP_ADMIN_EMAIL` или в разделе `Сервер → Пользователи`.

## Данные, которые обрабатывает платформа

При регистрации:

- имя;
- email;
- пароль в виде хеша;
- дата регистрации;
- дата подтверждения email;
- дата принятия политики конфиденциальности;
- дата согласия на обработку персональных данных;
- дата согласия на информационные и рекламные рассылки, если пользователь отметил этот чекбокс;
- статус пользователя;
- роль пользователя;
- список доступных разделов и плагинов.

При использовании платформы:

- активный проект и домен в session;
- документы, требования, диаграммы, шаблоны, заметки и файлы, созданные пользователем;
- уведомления пользователя;
- события безопасности;
- IP и User-Agent в auth sessions и audit events;
- данные Telegram-сессии, если пользователь подключает Telegram;
- платежный статус подписки;
- YooKassa payment id и сохраненный YooKassa payment method id, если платежный метод сохранен YooKassa.

## Цели обработки

- регистрация и подтверждение email;
- выдача доступа к разделам платформы;
- хранение рабочих материалов проекта;
- ведение версий документов;
- отправка системных уведомлений;
- отправка информационных и рекламных рассылок при наличии отдельного согласия пользователя;
- аудит входов, сессий и ошибок;
- управление подпиской и оплатой через YooKassa;
- настройка видимости проектов и доменов;
- публикация материалов в Confluence по действующим настройкам;
- интеграция с Telegram по явному действию пользователя.

## Хранение

- SQLite runtime path: `backend/data/archstudio.sqlite` в dev или `/var/lib/archstudio/archstudio.sqlite` в production, если `DB_DRIVER=sqlite`.
- PostgreSQL runtime: `POSTGRES_HOST`, `POSTGRES_PORT`, `POSTGRES_DB`, если `DB_DRIVER=postgres`.
- Локальные файлы: `LEARNING_UPLOADS_DIR`.
- S3-хранилище: buckets из `S3_BUCKET`, `S3_BUCKET_LEARNING`, `S3_BUCKET_DOCUMENTS`, `S3_BUCKET_FILES`, если S3 настроен.
- Логи: `logs/app.log`, `logs/error.log`, `logs/deploy-runs/`.

## Передача третьим сервисам

Платформа передает данные только при включенных настройках интеграций:

- SMTP-сервер: email, тема и текст письма для подтверждения регистрации, уведомлений и рассылок при наличии отдельного согласия пользователя.
- YooKassa: сумма платежа, валюта, описание платежа, metadata `userId`, `internalPaymentId`, `paymentType`.
- Confluence: публикуемый документ или HTML export, если пользователь запускает публикацию.
- Telegram: номер телефона, код авторизации и сообщения, если пользователь подключает Telegram.
- S3-compatible storage: загруженные файлы и metadata storage key, если S3 настроен.

## Доступ к данным

- Admin видит пользователей, роли, статусы, настройки доступа, audit events и server diagnostics.
- Не-admin видит только разрешенные разделы, проекты и домены.
- Пустой список `user_content_access.project_ids_json` означает доступ ко всем проектам до явной настройки админом.
- Maintenance mode блокирует не-admin пользователей.
- UNPAID subscription блокирует не-admin пользователей до оплаты.

## Удаление и ограничение доступа

- Admin может удалить пользователя через `DELETE /api/admin/users/:id`.
- Admin может отозвать сессии через `POST /api/admin/security/revoke-session`.
- Admin может отключить autopay через `PUT /api/admin/users/:id/subscription` с `action=cancel-autopay`.
- Пользователь может отключить autopay через `POST /api/billing/cancel-autopay`.
- Удаление файлов выполняется через endpoints соответствующего раздела.

## Защита

- Session token хранится у клиента в cookie `as_session_token`.
- В БД хранится SHA-256 hash session token.
- Пароли хранятся bcrypt; legacy SHA-256/plain hashes обновляются после успешного входа.
- Secrets encrypt mode использует AES-256-GCM с `SECRET_ENCRYPTION_KEY`.
- Sensitive request fields редактируются перед записью client/server logs.
