Я реализовал слой авторизации AWS Lambda для моих запросов и мутаций GraphQL, так что пользователь может только читать / записывать данные в конкретный элемент таблицы DynamoDB, если он является членом группы, к которой принадлежит элемент, реализованной с использованием ключ раздела groupId и ключ сортировки itemId. Таким образом, таблица может иметь много элементов с общим идентификатором группы, а также много разных идентификаторов группы. Это все работает как ожидалось.
Теперь я хотел бы иметь возможность расширить эту групповую авторизацию для моих подписок на GraphQL в реальном времени. Я наблюдаю, что непараметрические подписки транслируются всем пользователям. Мне нужно решение, которое ограничивает события подписки, чтобы все члены группы и только члены группы получали событие подписки для мутаций в табличных данных, содержащих соответствующий ключ groupID. Пользователь, являющийся членом многих групп, будет получать события подписки для всех групп, членами которых он является.
Группы и члены группы являются динамическими, с созданием групп и добавлением членов с помощью бизнес-логики приложения.
Я наблюдаю множество методов авторизации AWS, статических и динамических. Я видел примеры параметризованных подписок и распознавателей подписок, которые нацелены на подписку только на один элемент, но я не вижу ничего, что соответствовало бы моей конкретной потребности в «нескольких группах».
Я использую AWS Amplify API для клиентских вызовов GraphQL. Я наблюдаю, что Apollo имеет подписку ToMore (), которая может быть полезна для этого сценария, но в настоящее время я предпочитаю избегать переделок, необходимых для меня, чтобы мой пользовательский интерфейс соответствовал шаблону рендеринга реквизитов Аполлона 2.
Есть мысли?