diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..76e52bd --- /dev/null +++ b/LICENSE @@ -0,0 +1,11 @@ +RF4 Spotter is licensed under the GNU Affero General Public License, +version 3 only (SPDX-License-Identifier: AGPL-3.0-only). + +Copyright (c) 2026 RF4 Spotter contributors. + +The complete, canonical license text is available from SPDX: +https://spdx.org/licenses/AGPL-3.0-only.html + +This license applies to the source code and original project assets only. It +does not grant rights to Russian Fishing 4, third-party source data, player +submissions, screenshots, trademarks, or other externally sourced material. diff --git a/README.md b/README.md index af1394b..679603f 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ RF4 Spotter — неофициальный сервис свежих точек и статистики клёва для Russian Fishing 4. Он объединяет публичные рекорды и подтверждённые пользовательские уловы, показывает свежесть источников и рассчитывает объяснимые индексы активности и уверенности. Проект не взаимодействует с игровым клиентом и не является официальным продуктом RF4. +Код и оригинальные материалы проекта распространяются по [AGPL-3.0-only](LICENSE). Лицензия не распространяется на игровые материалы, данные сторонних источников и пользовательские загрузки. Правила обработки описаны в [политике данных](docs/data-policy.md). + ## Статус разработки Функциональный MVP и локальный production-контур готовы к закрытой альфе: официальный импорт, пользовательские заявки, модерация, объяснимый индекс, staging внешних источников, адаптивный Astro UI, миграции, резервное копирование, retention, мониторинг и security/accessibility-проверки реализованы. Автоматические импорты внешних источников выключены. Публичный запуск блокируют покупка и настройка сервера, DNS/TLS, реальные секреты, внешний backup и канал уведомлений. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 8c8437c..3f62abc 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -80,7 +80,7 @@ - [x] Завершить accessibility/admin safety пакет с воспроизводимыми axe/Lighthouse-командами (пакет E). - [ ] Добавить smoke-проверку административной очереди внешних источников на desktop/mobile без публикации реальных записей. - [x] Обновить README: актуальный статус, архитектура, группы переменных окружения, импорт, модерация, backup/restore, эксплуатация логов и известные ограничения. -- [ ] Выбрать лицензию кода и политику использования данных. +- [x] Выбрать лицензию кода `AGPL-3.0-only` и оформить отдельную политику использования, минимизации, хранения и удаления данных (`LICENSE`, `docs/data-policy.md`). - [ ] Завершить production-профиль для `rf4spotter.ru`: приложение и `deploy/preflight.sh` готовы; внешняя проверка 7 сентября не установила соединение с обоими доменами, требуются IP целевого сервера, DNS, запуск и канал уведомлений (`docs/deployment-status.md`). - [ ] Заменить демонстрационные секреты и определить целевое размещение перед внешней публикацией. @@ -119,8 +119,9 @@ Технический production-контур, health/readiness, backup/restore и безопасные логи готовы. Следующие пункты выполняются строго по одному: -1. выбрать лицензию кода и оформить политику использования данных; -2. мониторинг, DNS/TLS и проверка production-профиля на целевом сервере. +1. добавить smoke-проверку административного staging без публикации; +2. подготовить сценарий и измеримые критерии закрытой альфы; +3. мониторинг, DNS/TLS и проверка production-профиля на целевом сервере. После каждого пункта необходимо: diff --git a/docs/data-policy.md b/docs/data-policy.md new file mode 100644 index 0000000..291691b --- /dev/null +++ b/docs/data-policy.md @@ -0,0 +1,37 @@ +# Политика использования данных RF4 Spotter + +Версия для закрытой альфы от 7 сентября 2026 года. Это проектная политика, а не замена условиям владельцев источников или требованиям применимого законодательства. + +## Область действия + +RF4 Spotter обрабатывает официальные публичные рекорды, разрешённые наблюдения community-источников и добровольно отправленные пользователями сведения об уловах. Лицензия кода проекта не распространяется на эти данные, игровые материалы, товарные знаки и пользовательские скриншоты. + +## Назначение и минимизация + +Данные используются только для показа свежих точек, расчёта объяснимой статистики, модерации, защиты от злоупотреблений и восстановления сервиса. Проект не продаёт данные, не создаёт рекламные профили и не взаимодействует с игровым клиентом. + +- ник и скриншот необязательны; +- IP не хранится: rate limit использует HMAC-отпечаток с секретом сервера; +- из изображений удаляются EXIF и прочие метаданные; +- query string, authorization headers и пользовательские payload не попадают в HTTP-лог; +- community-наблюдения сначала поступают в изолированный staging и публикуются только после ручной проверки. + +## Источники и атрибуция + +Каждая импортированная запись сохраняет систему-источник, внешний идентификатор и исходный URL, когда они доступны. Интервалы, разрешения и ограничения перечислены в `docs/data-permissions.md`. Удаление `robots.txt` или техническая доступность страницы не считаются разрешением. Автоматический scheduler остаётся выключенным, пока не зафиксированы первичный документ разрешения и точные продуктивные условия. + +## Хранение и удаление + +Технические сроки определены в `docs/data-retention.md`: попытки отправки — 1 день, непроверенные заявки — 30 дней, персональные поля одобренных заявок — 180 дней, непубликуемый staging — 90 дней, журнал модерации и provenance опубликованных записей — до 365 дней. Очистка выполняется только после успешной резервной копии. + +Автор добровольной заявки может запросить удаление, указав идентификатор заявки и достаточные сведения для её поиска, по адресу `privacy@rf4spotter.ru`. При удалении очищаются ник, комментарий, исходная ссылка и скриншот; обезличенный факт модерационного действия сохраняется для аудита. До настройки действующего почтового ящика форма не должна открываться внешним альфа-пользователям. + +Если запись изменена или удалена первичным источником, оператор при подтверждении снимает её с публикации и очищает производные персональные поля в ближайший цикл обслуживания. Резервные копии исчезают по собственному графику хранения и не используются для обычного чтения. + +## Доступ и передача + +Публично показываются только одобренные сведения. Административный доступ защищён Basic Auth и отдельным bearer token. PostgreSQL и MinIO не публикуются наружу. Внешняя передача допускается только инфраструктурным поставщикам, необходимым для хостинга и резервного копирования, с минимальным объёмом данных и ограниченным доступом. + +## Изменения политики + +Перед расширением источников, включением регулярного импорта, добавлением аккаунтов, OCR, уведомлений или аналитики эта политика пересматривается. Существенные изменения датируются в этом файле и сообщаются участникам альфы до вступления в силу.