Files
SergObsidian/WORK & PROJECTS/Mol/Серверы/Alfa cloud readme.md
2025-03-01 19:27:35 +05:00

63 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#### Общая информация
Alfa Cloud — серверный API, который предоставляет доступ к управлению контейнерами и конфигурацией облаков Alfa с поддержкой нескольких облачных серверов.
Данный документ нужен для разработки полноценного фронтенда управления контейнерами.
Все запросы должны производиться только из админки Mol. Метод авторизации каждого запроса - Basic Auth (обычный логин и пароль). Учётные данные можно менять регулярно, для этого существует специальный запрос. Учётные данные НЕ синхронизированы с основными учётными данными MOL (и для безопасности и отсутствия необходимости синхронизации всех юзеров. Нужен только главный админ).
В данном API в тестовом режиме будет использоваться спецификация JSON:API для унификации серверных ответов.
#### Точки подключения:
GET:
```
/servers — получить список активных серверов (для разворачивания новых клиентов)
/servers/{id} — получить подробную информацию о сервере
(TODO: с параметрами мониторинга и нагрузкой в реальном времени)
/clients — получить список контейнеров клиентов со всеми подробностями (поддерживается пагинация). С флагом доступностью контейнера. На фронте можно сделать прямой переход на облако клиента.
/clients/{id}/demo_enable - применение таблиц демо-данных
/clients/{id}/demo_disable - удаление демо-данных
/clients/{id}/maintain_enable - включить страницу "Техническое обслуживание" у клиента
/clients/{id}/maintain_disable - отключить страницу "Техническое обслуживание"
/clients/{id}/send_success - отправить письмо клиенту с успешной регистрацией облака с логином и паролем
/clients/{id}/send_expire - отправить письмо клиенту о скором истечении использования (можно/нужно автоматизировать)
/clients/{id}/expire_dates_history - история изменения продлений дат пользователя
/clients/{id}/reboot - попытка перезапуска контейнера пользователя
/servers/{id}/reboot_server - перезапуск сервера
/clients/{id}/create_log - Лог создания контейнера
```
POST:
```
/servers/create — создать сервер в БД
/clients/create — создать клиента - после проверки сразу вернётся id
во время создания нужно таймером опрашивать
/clients/{id}/create_log и получать актуальный лог о создании контейнера. За окончание создания отвечает статус "completed" => "ok | error".
/clients/owner_password — задать новый пароль администратора лаборатории
TODO: перенос данных клиента с одного сервера на другой
TODO: /cloud_admin_password - задать пароль для подключения к API
```
PUT | PATCH:
```
/servers/{id} — изменить информацию о сервере
/clients/{id} — редактировать данные клиента (кроме пароля администратора лабы)
/clients/{id}/expire_date - обновление крайней даты использования системы
```
DELETE
```
/clients/{id} — редкая функция — запуск очистки пользовательских конфигов с серверов
/servers/{id} не реализовано, да и пока что не надо. Тут нужно просто удаление информации о сервере из БД.
```
### TODO: Добавить таблицу с настройками облака в каждую пользовательскую таблицу!
- Проверка на уровне системы настройки "Техническое обслуживание" и показ блокирующей страницы
- Проверка на крайнюю дату использования и блокировка системы.
- Проверка на показ быстрого старта при запуске
- Проверка на краткий туториал