51 lines
4.2 KiB
Markdown
51 lines
4.2 KiB
Markdown
|
||
#### Общая информация
|
||
|
||
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 – не реализовано, да и пока что не надо. Тут нужно просто удаление информации о сервере из БД.
|
||
``` |