Скоупы доступа

Скоуп — это то, что человек читает на экране согласия, прежде чем разрешить вашему приложению доступ. Поэтому их три, а не двадцать: список из двадцати строк никто не читает, а после этого разрешают всё подряд.

Скоуп Что позволяет
mcp:read читать участки, их историю и публичные данные поселка
mcp:write добавлять записи в историю участка: работы, покупки, посадки
mcp:private читать личное: затраты, документы, заявки

Что включает что

mcp:write включает mcp:read. Токен, которым можно записать работу, но нельзя прочитать участок, к которому она относится, бесполезен.

mcp:private тоже включает mcp:read, но mcp:write — не включает mcp:private. Право записать, что было сделано, — это не право прочитать, сколько это стоило.

mcp:read не включает ничего. В этом весь смысл того, что он выдаётся по умолчанию.

Что просить

Просите минимум. Приложение, которому нужно показать карту участков и историю работ, просит mcp:read — и человек, глядя на экран согласия, разрешает его не думая. Приложение, которое просит всё, человек закрывает.

Личные токены по умолчанию выдаются только с чтением, и это осознанно: токен, который может писать, — это токен, который может по ошибке переписать историю участка, и такой выбор должен быть сделан явно.

Отказ

Если токену не хватает скоупа, ответ — 403 с указанием, какого именно:

{
  "message": "The token does not carry the \"mcp:write\" scope."
}

Это не то же самое, что 403 от политики доступа. Первое чинится новым токеном, второе — не чинится: у этого человека действительно нет права.