Files
SergObsidian/WORK & PROJECTS/Mol/Серверы/Alfa cloud readme.md
2025-02-28 17:38:59 +05:00

51 lines
4.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}/send_success - отправить письмо клиенту с успешной регистрацией облака с логином и паролем
/clients/{id}/send_expire - отправить письмо клиенту о скором истечении использования (можно/нужно автоматизировать)
/clients/{id}/expire_dates_history - история изменения продлений дат пользователя
/clients/{id}/reboot - попытка перезапуска контейнера пользователя
/servers/{id}/reboot_server - перезапуск сервера
```
POST:
```
/servers/create — создать сервер в БД
/clients/create — создать клиента - полный серверный цикл создания облака
во время создания можно таймером опрашивать
GET /clients/create_status и получать актуальную информацию и логи о создании пользователя
/clients/owner_password — задать новый пароль администратора лаборатории
TODO: перенос данных клиента с одного сервера на другой
TODO: /cloud_admin_password - задать пароль для подключения к API
```
PUT | PATCH:
```
/servers/{id} — изменить информацию о сервере
/clients/{id} — редактировать данные клиента (кроме пароля администратора лабы)
/clients/{id}/expire_date - обновление крайней даты использования
```
DELETE
```
/clients/{id}/delete — редкая функция — запуск очистки пользовательских конфигов с серверов
/servers/{id}/delete не реализовано, да и пока что не надо. Тут нужно просто удаление информации о сервере из БД.
```