Разрешения REST DocumentDb и маркеры ресурсов

Я пытаюсь создать разрешение только для чтения для всей коллекции. Мой сервер получает разрешение для пользователя и связанного маркера ресурса, отправляет его вниз клиентскому (телефонному) приложению, и телефонное приложение может получить некоторые документы самостоятельно.

Должно быть просто.

Согласно ссылке Создать разрешение в документах Azure в документации говорится следующее:

Полный адресируемый путь ресурса, связанного с разрешением. Например, dbs/ruJjAA==/colls/ruJjAM9UnAA=/.

Но пример показывает это:

{
"id": "a_permission",
"permissionMode": "Read",
"resource": "dbs/volcanodb/colls/volcano1"
}

И образец явно основан на ID, как и остальная часть моего проекта.

FWIW, я проверил оба, и если вы создаете разрешение на основе id, как в примере, вы получаете запрещенный ответ.

Если вы создаете разрешение с полным ресурсом, то оно работает нормально.

Надеюсь, что мой полный день стоит разобраться, что помогает кому-то. 🙂

И я знаю, что кто-то будет согнут, если я на самом деле не опубликую это как вопрос, поэтому вот мой вопрос:

Является ли это ошибкой в документации или недосмотром в коде, будущим улучшением или онлайн-свидетельством моей noobness, потому что я сделал все это неправильно так или иначе?

TIA.

1 ответ

  1. Вам нужно предоставить полный путь, как dbs / volcanodb / colls/volcano1 (без косой черты при использовании name/id или dbs/ruJjAA==/colls/ ruJjAM9UnAA= / (с косой чертой при использовании self-link). Простое доказательство имени, как volcano1, не работает, так как в аккаунте может быть несколько коллекций volcano1. Больше о self-links здесь: https://azure.microsoft.com/en-us/blog/azure-documentdb-bids-fond-farewell-to-self-links/ .