Ключ с узкими правами
Одна вещь на этой странице важнее всех остальных, поэтому она первая.
Ключ для агента по умолчанию создаётся только на чтение. Права на запись выдаются явно, отдельным действием, и на экране создания об этом написано словами.
Это не настройка по вкусу и не осторожность ради осторожности. Агент действует по тексту, который он прочитал, а прочитать он может что угодно — включая текст, который кто-то оставил в описании курса или в ответе на задание специально. Ключ на чтение в худшем случае показывает лишнее. Ключ на запись в худшем случае отзывает доступ у ста человек.
Сужение до курса — бесплатно #
У ключа нет своего языка прав: ключ — такой же субъект, как человек, и права у него те же самые, что у роли. Проверяет их та же функция.
Из этого бесплатно получается то, чего у платформ обычно нет: право сужается до конкретного курса. Ключ агента, который помогает с одним курсом, умеет работать только с ним — не «с курсами вообще».
Второго перечня прав в продукте не будет. Один список на интерфейс, на людей и на ключи: два списка разойдутся, вопрос только в том, через сколько заходов, и разойдутся молча — право закроют на экране и забудут закрыть в API.
След в журнале #
Действие, выполненное агентом, помечается в журнале как выполненное агентом, а не человеком. Не «система изменила доступ», а «интеграция N от имени человека M».
Без этого разбор случая «кто отозвал доступ у ученика» упирается в тупик через неделю после того, как о нём забыли.
Что видно про ключ потом #
Название, кто создал, когда создан, когда использовался последний раз, с каких адресов, сколько запросов за сутки. Отзыв — одной кнопкой, немедленный.
Значение ключа показывается один раз, при создании: в базе хранится только хеш. Потеряли — заведите новый и отзовите старый.
Префиксы lms_live_ и lms_test_ не для красоты: случайно закоммиченный ключ
опознаётся сканером секретов и отзывается до того, как им воспользуются.
Состояние #
Реестра ключей в продукте ещё нет — он появится вместе с API. Правила выше приняты и не изменятся; экрана, на котором ключ заводится, пока не существует.
Следить — в Обновлениях.