51 lines
3.4 KiB
Markdown
51 lines
3.4 KiB
Markdown
# Server
|
||
|
||
TODO:
|
||
- описать формально все API
|
||
- добавить сами команды, возможно сделать их в виде пресетов для платформы
|
||
|
||
## Основная суть
|
||
|
||
- API ручки. Доступ чисто по ssl (но это уже зона ответственности nginx)
|
||
- клиенты по своему некоторому ключу будут авторизовываться.
|
||
- проблема ручной настройки (но она тут будто минимальная, не так плохо)
|
||
- когда клиент что-либо присылает, в ответ ему надо кинуть команды на исполнение, если есть
|
||
- со стороны клиента должен быть настроен trust к серверу
|
||
|
||
Для сервера необходимо несколько настроек
|
||
|
||
- лимит на кол-во запросов (от одного клиента, условно)
|
||
- лимит на хранение инфо (и хранить ли старое? да, логи)
|
||
- лимит на одного юзера
|
||
- общий лимит
|
||
- кастомные команды
|
||
- отслеживание получения/выполнение команды сервером, повторные попытки, лимит попыток
|
||
|
||
## Возможности (API ручки)
|
||
|
||
'Понятия не имею, как описывать эти ручки (точнее, нет желания правильно их описывать)'
|
||
|
||
### Ручки для админа
|
||
|
||
Все пользователи будут считаться админами для удобства. Остальных нет
|
||
|
||
1. получить список всех клиентов
|
||
- с отдельным параметром "только активированные"
|
||
2. получить данные по клиенту
|
||
- сюда включается вся инфа о его показателях, когда был в сети + какие команды на него доступны (да, будем их ограничивать, возможно по модели zero-trust)
|
||
3. выполнить какую-то команду
|
||
- тут вопрос в том, будем ли мы ждать ответа от нашего клиента (вряд ли)
|
||
4. получить токен, авторизация
|
||
5. добавить кастомную команду (для клиента)
|
||
- проблема в системах, если хочется универсального добавления. Выход - добавлять только для одного клиента (лучше во всём будет)
|
||
|
||
### Ручки для клиентов
|
||
|
||
Не уверен даже, что больше одной нужно будет
|
||
|
||
1. Прислать информацию
|
||
- просто стучится со своим uuid и кидает, что знает
|
||
2. Инфо о сервере?
|
||
- возможно фетчить айпи (чтобы стучаться, если сертификат на месте), другие домены
|
||
- какие-то особые "правила", если пакет с их установкой потеряется (сам то пакет вряд ли потеряется, мы об этом узнаем сразу)
|