Skip to content

Рефатор фронтенда ​

  • скрещивание документации с клиентом (архивация frontend репозитория)
  • система апдейтов и их рекомендации клиентской стороне
  • мультиязычный ru/en
  • рядом с функционалом есть кнопки посмотреть документацию (документация под это перестраивается, в формат кратких заметок), а лучше вообще при долгом наведении на любую кнопку и тд, подтягивается кусочек из документации
  • корректное отображение времени по региону, бекенды всегда UTC 0
  • контейнеры бека обьединяются в 1, по средством добавления бинарника data_pipe во внутрь backend

Смена фреймворка ​

Полный перход на flutter. Для мультиплатформенности

Изменение стейт менеджмента ​

  • Теперь у клиентов появляется более расширенный стейт менеджмент, json для бинарников и хранилище в браузере

Изменение концепта UI ​

  • Адаптивность
  • Интерфейсы должны стать более живыми, то как идёт обработка запросов, нажатие кнопок и тд
  • Возможно нужно добавить веб сокет для некоторых событий

Актуализация стиля ​

Переход где это можно на shadcn, скорее всего придётся написать где-то кастомные решения, на основе компонентов из shadcn

Вход в федерацию через глобальный аккаунт ​

На десктопе рождается постоянный ключ. В клиент, который ходит на инстансы, попадает только одноразовый промежуточный.

#ЭтапЧто происходитКлючи
1РегистрацияДесктоп генерирует постоянную пару и показывает seed-фразу. Сеть не нужна.Постоянная пара пользователя. Приватный шифруется PIN и остаётся на десктопе. Публичный — имя аккаунта.
2Опрос федерацииДесктоп читает карточки /instances/current и списки соседей.Публичные ключи инстансов. Ключ, отданный нодой по своему URL, сверяется с копией у соседей.
3Выбор нодПользователь отмечает, куда входить.Уже сверенные публичные ключи выбранных инстансов.
4Промежуточный ключДесктоп создаёт новую пару и подписывает допуск: постоянный публичный ключ, промежуточный публичный ключ, один вход на каждый выбранный инстанс, короткий срок. Файл с приватным промежуточным ключом и допуском отдаётся клиенту.Допуск подписывает постоянный приватный ключ, он остаётся на десктопе. В файле лежит приватный промежуточный ключ.
5ChallengeКлиент запрашивает у инстанса домен, одноразовый nonce и срок 1–2 минуты.Публичный ключ инстанса подтверждает, что запрос ушёл на выбранную ноду.
6ПодписьКлиент подписывает challenge и прикладывает допуск.Приватный промежуточный ключ. Постоянный приватный ключ в этом шаге не участвует.
7ПроверкаИнстанс принимает ответ, если challenge свежий, домен его, подпись сходится с промежуточным публичным ключом, допуск подписан постоянным публичным ключом, срок жив, и этот допуск на этой ноде ещё не использован. После успеха нода помечает допуск использованным.Публичный промежуточный ключ и постоянный публичный ключ. Повторный вход этим файлом на эту ноду уже не проходит.
8Локальный пользовательИнстанс находит или создаёт пользователя по постоянному публичному ключу. На пустой ноде он админ, на живой — обычный пользователь.В базу пишется постоянный публичный ключ. Промежуточный ключ личностью не становится.
9JWTИнстанс выписывает токен со uuid локального пользователя на срок pu_auth_token_expiration, по умолчанию 31 день.Токен подписывает секрет инстанса pu_secret_key.
  • Пункты 5–9 повторяются на каждом выбранном инстансе
  • Подпись в пункте 6 каждый раз новая, файл один и тот же. На каждой ноде он сгорает отдельно.
  • У пользователя есть время жизни на инстансе, если у него нет активных unit и он не входи 2 года - под нож

Изменение интерфейсов ​

Вход ​

При переходе на адрес инстанса в браузере или открытии pepeunit приложения на пк или телефонах:

  • Базовые параметры сети, по полной выгрузке из 1 инстанса
  • Список известных инстансов, с самыми базовыми параметрами и кнопками войти/выйти
  • Меню регистрации глобального аккаунта
  • Меню входа в глобальный аккаунт
  • Меню изменения аккаунта, логин + картинка
  • Кнопка войти во все инстансы, с кулдауном
  • Кнопка синхронизации данных с инстансами (передаёт новый логин + картинку)
  • Меню менеджмента инстансов
    • по умолчанию в бинарники будем забивать топ 10 инстансов по юзерам
    • белые, чёрные списки и ручное добавление
  • Ссылка на доку