# TAaS ## Plans ### На стороне TAaS - Авторизация и регистрация через сторонние сервисы - oauth by VK/Google/etc - хранение ключей в конфиге (env/json-файле) - классы для обработки callback-ов от разных платформ - Обновление модели БД для хранения необходимой информации (платформа и данные о пользователе) - страница регистрации/авторизации (с учётом взаимодействия - одно и то же) - поддержка пользователей системы вне сторонних oauth (администраторы) --- - Система квот - Конфигурация квот - регулируемые/учитываемые параметры для контейнеров (время, память, пр.) - Контроль квоты пользователя - Завершение пользовательской сессии (*переложить на LC?*) - Страница выбора квот --- - PayAnyWay API - Обёртка для взаимодействия с API - хранение ключей в конфиге (env/json-файле) - авторизация в API - генерация ссылок для оплаты - Роут для получения фидбека (о статусе оплаты) - Коллекции БД для хранения заказов/на очереди обработки --- ### На стороне LC - Дополнить/обновить параметризацию через /lti - перенести ограничения из пользователя в задачи пользователя - ввести ограничение на ttl контейнера - ввести параметр для disk_space - ввести параметр и реализовать - возможность неудаления неиспользуемого контейнера (отдельный флаг в документе бд контейнеров?) - возможность запуска контейнера сразу при переходе на задачу (без нажатия connect) - вкупе с параметром TTL может стать контролем доступа к контейнеру/задаче, создавая контейнер на ровно время квоты - *что делать, если пользователь перезапустит контейнер, тем самым обновив время жизни?* - ввести параметр на запрет перезапуска? (*если контейнеру/системе станет плохо - перезапуск будет необходим в рамках чистоты*) - *??: ввести ограничение на время доступа к задаче* - *имеет свои плюсы и востребовано (на защитах/контрольных/экзаменах)* - *на данный момент в LC нет ничего подходящего для этого (кроме стороннего таймера)* ## Псевдо-диаграмма [In progress, but u can check](https://viewer.diagrams.net/?highlight=0000ff&edit=_blank&layers=1&nav=1&title=TAaS.%20Scheme.drawio#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D15eQzjSoS1T9HEVzn8pa-ZKpjcncHIcpq%26export%3Ddownload) ## Roadmap **Разделение и порядок по приоритету задач** --- - Все задачи по OAuth/БД (как основопологающие для пользователей системы) - Регистрация/авторизация пользователей - Все задачи по квотам - Конфигурация и реализация квот пользователей - Возможность выбора пользователем квоты - Контроль пользовательских квот - Обновление LC - Перенос ограничений в задачи пользователя - Параметры LTI - Неудаление бездействующего контейнера - Поддержка указания TTL *Так TAaS сможет осуществлять минимальную задачу - предоставлять пользователям доступ к терминалам LC (увы, бесплатно, просто за то, что у него есть аккаунт Vk/Google )* --- - Задачи по взаимодействию с PayAnyWay - Авторизация в API - Генерация ссылки на оплату - Ожидание подтвержения оплаты - очередь на получение квоты (перед предоставлением доступа) ---