// Контент раздела /ru/docs. Поля соответствуют схеме коллекции PocketBase
// `documents_ru`: title, category (Core|Security|Network|Legal),
// status (Encrypted|Public|Internal|Dynamic), content (обычный текст,
// рендерится через white-space: pre-wrap — без markdown-разметки).
//
// Технические детали (протокол NRXP, ChaCha20-Poly1305, X25519, TLS-маскировка,
// httponly-cookie сессии) сверены с реальной реализацией в netrunner-proxy и
// netrunner-backend на момент написания — не маркетинговые обещания.
//
// Разделы Legal содержат плейсхолдеры в квадратных скобках там, где нужны
// реальные реквизиты оператора сервиса (юрлицо/ИП, юрисдикция, e-mail) —
// на момент написания сервис ещё не зарегистрирован ни в одной юрисдикции.
// Замени плейсхолдеры перед тем, как полагаться на эти документы юридически.

export const DOCS_RU = [
  // ───────────────────────────── CORE ─────────────────────────────
  {
    title: "С чего начать",
    category: "Core",
    status: "Public",
    content: `НЕТРАННЕР // ПЕРВЫЙ ЗАПУСК

Регистрация e-mail или телефона не требуется — вход в аккаунт устроен так, чтобы связывать с вами как можно меньше данных.

СПОСОБ 1 — TELEGRAM
Откройте бота @ntrnr_vpn_bot и нажмите «Личный кабинет». Вход подтверждается официальным Telegram Login Widget — сервер проверяет криптографическую подпись Telegram, ваш пароль от Telegram серверу VPN никогда не передаётся.

СПОСОБ 2 — GHOST PROTOCOL (полностью анонимный)
Если не хотите привязывать аккаунт даже к Telegram — сгенерируйте seed-фразу прямо в личном кабинете. Seed — единственный ключ от аккаунта: он не хранится нигде, кроме как у вас, и не привязан к номеру телефона, e-mail или Telegram ID.
ВАЖНО: seed нельзя восстановить. Потеряли — потеряли аккаунт и всё, что на нём. Обязательно скачайте .txt с seed-фразой и сохраните офлайн (менеджер паролей, бумага — что угодно, кроме скриншота в общем облаке).

ДАЛЬШЕ
1. Скачайте клиент под свою платформу в разделе /download (Windows, Linux и Android доступны сейчас; macOS и iOS — в разработке).
2. В личном кабинете активируйте тариф — есть бесплатный триал для аккаунтов, привязанных к Telegram (анти-абуз: на Ghost-аккаунты триал не выдаётся, иначе его штампуют скриптами).
3. Подключение конфигурируется автоматически — вручную ничего прописывать не нужно.

EOF`,
  },
  {
    title: "Тарифы, оплата и биллинг",
    category: "Core",
    status: "Public",
    content: `ОПЛАТА // TON

Оплата принимается только в криптовалюте TON — без банковских карт и без привязки к платёжным системам, которые требуют паспортные данные.

КАК ЭТО РАБОТАЕТ
1. Выбираете тариф — сервер выставляет счёт (invoice) с точной суммой в TON по актуальному курсу на момент выставления.
2. Переводите указанную сумму на адрес мастер-кошелька с указанным в счёте комментарием (memo) — именно по нему платёж и опознаётся однозначно.
3. Сервер проверяет транзакцию в блокчейне TON напрямую: сверяет сумму (не меньше выставленной), адрес назначения и memo. Один и тот же tx hash не может быть засчитан дважды.
4. Статус меняется на «оплачено» автоматически, без ручной модерации.

ПОЧЕМУ ТОЛЬКО TON
Прозрачность и проверяемость: платёж подтверждается математически по данным блокчейна, а не по факту доверия к процессингу. Обратная сторона — переводы в блокчейне необратимы, см. «Политику возврата средств» в разделе Legal.

РЕФЕРАЛЬНАЯ ПРОГРАММА
Ссылка на приглашение доступна в личном кабинете. Самоприглашение (один и тот же человек как реферер и реферал) заблокировано на сервере технически, а не только на словах.

EOF`,
  },

  // ─────────────────────────── SECURITY ───────────────────────────
  {
    title: "Модель угроз и шифрование",
    category: "Security",
    status: "Encrypted",
    content: `THREAT_MODEL.LOG

ОТ ЧЕГО ЗАЩИЩАЕТ NETRUNNER
- Пассивный перехват трафика на пути провайдер → сайт (Wi-Fi в кафе, оператор связи, транзитные сети).
- DPI-классификация и блокировка по протоколу (см. «Маскировка трафика и обход DPI»).
- Привязка активности к личности через классические каналы регистрации (e-mail/телефон) — за счёт Ghost Protocol.

ОТ ЧЕГО НЕ ЗАЩИЩАЕТ И НЕ МОЖЕТ ЗАЩИЩАТЬ НИ ОДИН VPN
- Компрометация самого устройства (вредоносное ПО, кейлоггер, физический доступ).
- Деанонимизация через сами посещаемые сервисы, если вы входите там под своим именем.
- Юридическую ответственность за содержание трафика — шифрование канала не делает законным то, что по нему передаётся.

КРИПТОГРАФИЯ ТУННЕЛЯ
Каждый кадр данных внутри туннеля защищён AEAD-шифрованием ChaCha20-Poly1305 — это одновременно шифрование и проверка целостности (auth tag): подмена или изменение хотя бы одного бита в пути обнаруживается, и кадр отбрасывается.

Обмен ключами — X25519 (эллиптическая криптография Диффи-Хеллмана), ключ для сессии генерируется заново при каждом установлении туннеля (ephemeral). Это даёт forward secrecy: даже если бы ключ одной сессии где-то утёк, это не расшифровывает ни прошлые, ни будущие сессии — у каждой свой одноразовый ключ. Финальные ключи шифрования выводятся из результата обмена через HKDF, а не используются напрямую.

Каждый кадр несёт HMAC-тег, построенный по принципу, похожему на TOTP (временная составляющая) — это защита от replay-атак: перехваченный и повторно отправленный кадр не пройдёт проверку.

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

EOF`,
  },
  {
    title: "Маскировка трафика и обход DPI",
    category: "Security",
    status: "Encrypted",
    content: `STEALTH_LAYER.LOG

DPI (Deep Packet Inspection) — это то, чем провайдеры и цензурирующие системы отличают «обычный HTTPS» от VPN/прокси и блокируют второе. Большинство VPN-протоколов имеют узнаваемый отпечаток именно на этом уровне, а не в самом шифровании.

ЧТО МЫ ДЕЛАЕМ
Первый пакет туннеля выглядит как настоящее TLS-рукопожатие (ClientHello/ServerHello) — не приблизительно, а побайтово повторяя порядок и состав cipher suite'ов, TLS-расширений и GREASE-значений реального браузера (профиль JA3/JA4). Для DPI, который классифицирует трафик по отпечатку хендшейка, наш трафик неотличим от обычного захода в браузер на https-сайт.

Настоящий обмен ключами (X25519) физически спрятан внутри полей поддельного TLS-хендшейка — например, в расширении KeyShare и в поле session_id, которое по стандарту выглядит как случайные байты, а на деле несёт часть аутентификационного тега.

ЧЕСТНО О ГРАНИЦАХ ЭТОГО ПОДХОДА
Это не настоящий TLS: нет цепочки сертификатов, нет проверки подлинности сервера в смысле обычного HTTPS, потому что задача — не защитить веб-страницу, а спрятать сам факт туннелирования от систем классификации трафика. Реальная защита данных обеспечивается отдельным слоем (см. «Модель угроз и шифрование»), а не этим слоем маскировки.

Если соединение по какой-то причине не опознаётся сервером как легитимное (например, кто-то сканирует порт, пытаясь понять, что на нём висит), сервер незаметно «отражает» такую попытку на постороннее содержимое (stealth fallback) — снаружи это выглядит как обычный веб-сервер, а не как узел, который специфично отвечает на VPN-запросы и потому вычисляется сканированием.

EOF`,
  },
  {
    title: "Аутентификация и хранение сессии",
    category: "Security",
    status: "Encrypted",
    content: `SESSION.LOG

НИКАКОГО ТОКЕНА В LOCALSTORAGE
Сессия в личном кабинете и на сайте держится исключительно в HttpOnly-cookie — то есть в cookie, которую браузерный JavaScript в принципе не может прочитать (ни ваш скрипт, ни чужой инжектированный при XSS). Токен нигде не лежит в localStorage/sessionStorage: если бы он там лежал, украсть его мог бы любой скрипт, который вообще смог выполниться на странице.

Короткоживущий access-токен (15 минут) выдаётся вместе с ротируемым refresh-токеном (30 дней). При обращении к API с истёкшим access-токеном сессия обновляется автоматически в фоне, без повторного логина. В базе хранится не сам refresh-токен, а только его SHA-256-хеш — даже при утечке БД восстановить токен из хеша невозможно.

Если сервер видит попытку повторно использовать уже отозванный (ротированный) refresh-токен — это однозначный сигнал компрометации, и в ответ отзываются все сессии аккаунта, а не только эта.

ЗАЩИТА ОТ CSRF
Для запросов, которые меняют состояние (оплата, смена настроек и т.д.) и идут по cookie-сессии, сервер дополнительно сверяет заголовки Origin/Referer со списком разрешённых доменов — сторонний сайт не может незаметно от вашего имени дёрнуть API, даже если ваша cookie действительна.

ВХОД ЧЕРЕЗ TELEGRAM
Подпись данных от Telegram Login Widget проверяется по HMAC-SHA256 постоянным по времени сравнением (без утечки по таймингу через посимвольное сравнение) — так исключается и подделка данных виджета, и атака по времени отклика сервера.

EOF`,
  },
  {
    title: "Что мы храним, а что нет",
    category: "Security",
    status: "Public",
    content: `DATA_RETENTION.LOG

Коротко: мы храним ровно то, что нужно для работы аккаунта и биллинга, и не храним журнал вашей активности в интернете.

ЧТО ХРАНИТСЯ НА СЕРВЕРЕ
- Идентификатор аккаунта: Telegram ID (если вошли через Telegram) ИЛИ ничего личного вообще (если вошли через Ghost Protocol — там нет ни email, ни телефона, ни имени).
- Статус подписки и история платежей (сумма, tx hash в блокчейне TON, дата) — нужно для биллинга и разрешения споров по оплате.
- Хеш (не сам токен) активной сессии и время её создания — нужно для защиты от кражи сессии и выхода со всех устройств по требованию.
- Реферальная связь между аккаунтами (кто кого пригласил) — только для начисления бонусов.

ЧЕГО НЕТ
- Журнала посещённых через VPN сайтов, IP-адресов назначения, содержимого трафика — на уровне протокола туннеля (NRXP) нет кода, который писал бы подобное в базу данных.
- Истории «кто когда подключался к какой ноде» дольше, чем нужно для мгновенного health-check (жив ли сервер сейчас прямо сейчас) — это проверка состояния инфраструктуры, а не журнал активности пользователя.

ЧТО ВАЖНО ПОНИМАТЬ ЧЕСТНО
Серверные процессы, как у любого сервиса, в моменте пишут технический эксплуатационный лог — ошибки, старт/остановка соединений — для отладки инфраструктуры. Это не структурированная база данных вашей активности и не привязывается к личности, но было бы нечестно утверждать, что вообще ни один процесс в мире никогда не пишет ни одной строки в лог. Если для вашей модели угроз это принципиально — используйте Ghost Protocol и не публикуйте на сторонних ресурсах данные, которые можно связать с вашей учётной записью.

EOF`,
  },
  {
    title: "Ответственное раскрытие уязвимостей",
    category: "Security",
    status: "Public",
    content: `BUG_BOUNTY.LOG // RESPONSIBLE DISCLOSURE

Нашли уязвимость — в туннеле, в личном кабинете, в боте или в биллинге? Расскажите нам раньше, чем кому-то ещё.

ПРАВИЛА
1. Не эксплуатируйте находку дальше, чем нужно для доказательства (PoC) — никаких массовых выгрузок чужих данных, DoS, попыток вывода чужих средств.
2. Дайте нам разумное время на исправление, прежде чем публиковать детали публично.
3. Не трогайте чужие аккаунты и данные без явного согласия их владельцев.

КАК СООБЩИТЬ
Напишите в поддержку через Telegram-бота @ntrnr_vpn_bot с пометкой SECURITY в первом сообщении — это самый быстрый способ достучаться до тех, кто реально может исправить проблему.
[Отдельный e-mail для security-репортов и публичный PGP-ключ будут добавлены сюда после регистрации юридического лица — см. также раздел Legal.]

Мы не обещаем денежных вознаграждений (bug bounty в классическом смысле) на данный момент, но обещаем: разбор в приоритете, публичную благодарность (если сами захотите) и что вашу находку не проигнорируют.

EOF`,
  },

  // ─────────────────────────── NETWORK ───────────────────────────
  {
    title: "Архитектура туннеля",
    category: "Network",
    status: "Internal",
    content: `ARCH.MAP // ВНУТРЕННЕЕ УСТРОЙСТВО

Три слоя, снизу вверх:

1. RAWCAST — локальный уровень на устройстве клиента. Реальные TCP/UDP-соединения приложений (браузер, мессенджер и т.д.) описываются компактным кадром с полями протокола, типа события, локального socket_id, адреса и порта назначения. Этот кадр — внутренний формат, наружу по сети он не ходит.

2. NRXP (Netrunner eXchange Protocol) — прикладной протокол внутри туннеля. RawCast-кадр упаковывается в кадр NRXP: 25-байтовый заголовок (auth tag, id потока, тип, длина полезной нагрузки, длина паддинга) + сама нагрузка. Множество независимых потоков (например, десяток одновременных соединений вашего браузера) мультиплексируются в одном туннеле — не нужно поднимать отдельное соединение на каждое; id потока в NRXP как раз и различает их.

3. ТРАНСПОРТ — каждый кадр NRXP шифруется (ChaCha20-Poly1305) и упаковывается как одна запись TLS ApplicationData внутри замаскированного TLS-хендшейка (см. «Маскировка трафика и обход DPI»). Снаружи — неотличимо от HTTPS-сессии браузера.

НА УСТРОЙСТВЕ
Клиент перехватывает трафик через TUN-интерфейс и собственный userspace-стек (smoltcp) — работает на уровне IP-пакетов, а не полагается на системные прокси-настройки ОС, которые не все приложения соблюдают.

НА СЕРВЕРЕ
Нода принимает входящее соединение, проверяет, что это легитимный NRXP-клиент (а не сканер порта или случайный HTTPS-запрос), и либо поднимает туннель, либо тихо «отражает» соединение как обычный веб-сервер (stealth fallback), не выдавая, что порт вообще что-то знает про VPN.

ВЫБОР НОДЫ
Список доступных серверов и параметры маршрутизации отдаются авторизованному клиенту сервером API по короткоживущему одноразовому токену — вручную ничего прописывать не требуется, а сама возможность получить список нод завязана на активную подписку.

EOF`,
  },
  {
    title: "Клиенты и платформы",
    category: "Network",
    status: "Public",
    content: `PLATFORMS.LOG

Ядро (движок туннеля) написано на Rust и переиспользуется целиком между платформами — криптография и протокол одни и те же везде, а не переписаны заново под каждую ОС со своими багами.

ГОТОВО И ДОСТУПНО СЕЙЧАС
- Linux — нативный клиент, TUN-интерфейс, требует cap_net_admin/cap_net_raw (или root).
- Windows — нативный десктопный клиент.
- Android — приложение на Kotlin поверх Rust-ядра, собранного через UniFFI/JNI под arm64/armv7/x86/x86_64.

В РАЗРАБОТКЕ
- macOS — десктопный клиент в работе.
- iOS — идёт бета-тестирование.

Актуальные версии и ссылки на скачивание — на странице /download; там же видно, какая платформа уже «активна», а какая ещё в разработке — статус не приукрашивается.

EOF`,
  },

  // ──────────────────────────── LEGAL ────────────────────────────
  {
    title: "Политика конфиденциальности",
    category: "Legal",
    status: "Public",
    content: `ПОЛИТИКА КОНФИДЕНЦИАЛЬНОСТИ

Дата последнего обновления: [указать при публикации]

1. КТО МЫ
Оператор сервиса Netrunner VPN: [наименование юридического или физического лица — будет указано здесь после завершения регистрации; до этого момента настоящий документ носит информационный, а не окончательный юридический характер].

2. КАКИЕ ДАННЫЕ МЫ СОБИРАЕМ
- При входе через Telegram: Telegram ID и данные, которые сам Telegram Login Widget передаёт при авторизации (имя, username, фото — если применимо).
- При входе через Ghost Protocol: персональные данные не собираются — seed-фраза генерируется на вашей стороне и не привязана к личности.
- Данные платежей: сумма, идентификатор транзакции в блокчейне TON, дата — платежи в TON публичны в самом блокчейне независимо от нас.
Подробнее о том, что именно хранится и что не хранится на техническом уровне — см. документ «Что мы храним, а что нет» в разделе Security.

3. ДЛЯ ЧЕГО ИСПОЛЬЗУЮТСЯ ДАННЫЕ
Исключительно для предоставления сервиса: аутентификация, выдача доступа к VPN-нодам согласно активной подписке, обработка платежей, реферальные начисления, ответы в поддержке.

4. ПЕРЕДАЧА ТРЕТЬИМ ЛИЦАМ
Данные не продаются и не передаются третьим лицам для маркетинга. Технически необходимая передача происходит только через сеть Telegram (для входа через неё) и публичный блокчейн TON (для платежей) — оба этих канала работают по своим собственным правилам, не под нашим контролем.

5. ВАШИ ПРАВА
Вы можете запросить удаление аккаунта и связанных с ним данных через поддержку в Telegram-боте. Обратите внимание: запись о платеже в блокчейне TON удалить невозможно физически — блокчейн неизменяем по своей природе.

6. КОНТАКТЫ
Поддержка: Telegram-бот @ntrnr_vpn_bot.
Отдельный юридический адрес и e-mail для официальных запросов будут опубликованы здесь после регистрации оператора сервиса.

EOF`,
  },
  {
    title: "Условия использования",
    category: "Legal",
    status: "Public",
    content: `УСЛОВИЯ ИСПОЛЬЗОВАНИЯ

Дата последнего обновления: [указать при публикации]

1. ПРИНЯТИЕ УСЛОВИЙ
Используя сервис Netrunner VPN (сайт, бот, клиентские приложения), вы соглашаетесь с настоящими условиями. Если не согласны — не используйте сервис.

2. ДОПУСТИМОЕ ИСПОЛЬЗОВАНИЕ
Сервис предоставляется для законного использования в юрисдикции, из которой вы к нему обращаетесь. Запрещается использовать сервис для: атак на инфраструктуру третьих лиц (DDoS, брутфорс, сканирование без разрешения), рассылки спама, распространения вредоносного ПО, оборота материалов, запрещённых применимым законодательством, и обхода санкционных ограничений там, где это прямо запрещено законом.
Мы технически не читаем содержимое вашего трафика (см. «Что мы храним, а что нет»), но это не освобождает вас от ответственности за то, что вы делаете, — шифрование канала не делает законным незаконное действие внутри него.

3. АККАУНТ
Вы несёте ответственность за сохранность своих учётных данных — в первую очередь seed-фразы Ghost Protocol: она не восстанавливается, и её утеря равносильна потере аккаунта. Передача аккаунта третьим лицам не рекомендуется и осуществляется на ваш собственный риск.

4. ПОДПИСКА И ОПЛАТА
Оплата принимается в TON согласно действующим тарифам. Правила по возвратам вынесены в отдельный документ «Политика возврата средств».
Бесплатный триал-период (если доступен) предоставляется один раз на аккаунт, привязанный к Telegram; технические меры предотвращают повторное получение триала через создание новых анонимных аккаунтов.

5. ДОСТУПНОСТЬ СЕРВИСА
Мы прилагаем усилия для непрерывной работы нод, но не гарантируем 100% аптайм — сеть состоит из отдельных серверов, и отдельная нода может временно уйти в офлайн; в таком случае доступны остальные ноды сети.

6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ
Сервис предоставляется «как есть». Мы не несём ответственности за последствия использования сервиса в нарушение пункта 2, а также за действия третьих лиц (провайдеров, блокчейн-сети TON, Telegram) вне нашего контроля.

7. ИЗМЕНЕНИЯ УСЛОВИЙ
Мы можем обновлять настоящие условия; продолжение использования сервиса после публикации новой версии означает согласие с ней.

8. ОПЕРАТОР И ЮРИСДИКЦИЯ
[Наименование оператора и применимая юрисдикция будут указаны здесь после завершения регистрации юридического лица/ИП. До этого момента документ носит информационный характер.]

EOF`,
  },
  {
    title: "Политика возврата средств",
    category: "Legal",
    status: "Public",
    content: `ПОЛИТИКА ВОЗВРАТА СРЕДСТВ

Оплата принимается в криптовалюте TON. В силу природы блокчейна подтверждённые транзакции необратимы технически — ни мы, ни вы не можете «отменить» перевод после его подтверждения в сети.

КОГДА ВОЗВРАТ ВОЗМОЖЕН
- Ошибочная переплата (перевели больше суммы, указанной в счёте) — избыток возвращается вручную после обращения в поддержку.
- Технический сбой на нашей стороне, из-за которого оплаченный тариф не был активирован, а исправить это перевыставлением доступа невозможно.
Возврат в этих случаях выполняется вручную на указанный вами TON-адрес; комиссию сети оплачивает [сторона будет уточнена в финальной версии политики].

КОГДА ВОЗВРАТ НЕ ПРЕДУСМОТРЕН
- Вы передумали после активации тарифа и частичного использования периода.
- Аккаунт заблокирован за нарушение «Условий использования».
- Потеря доступа к аккаунту из-за утери seed-фразы Ghost Protocol — это не техническая ошибка сервиса, а особенность анонимной модели входа, о которой предупреждено при генерации seed.

КАК ЗАПРОСИТЬ ВОЗВРАТ
Обратитесь в поддержку через Telegram-бота @ntrnr_vpn_bot, указав tx hash транзакции и суть проблемы. Решение по нестандартным случаям — на усмотрение оператора сервиса.

EOF`,
  },
];
