Фильтрация результатов в микросервисах на основе политики пользователя - PullRequest
0 голосов
/ 06 ноября 2019

Я внедряю фильтрацию результатов в микросервисах. Существуют микросервисы Manager ( id, policy_id ), Client ( id, region ), Document ( id, client_id ) с отдельными базами данных.

Мне бы хотелось, чтобы менеджер с определенным policy_id мог видеть постраничный результат документов, принадлежащих клиентам, которые живут в определенном регионе .

Пример:

Manager(z,"view_europe_policy")
Client(1,Europe), Client(2,America)
Document(x,1),Document(y,2)
GET /documents?page=1
result: Document(x,1)

Я не могу получить все документы, а затем получить регион из базы данных клиента, поскольку этот подход не поддерживает разбиение на страницы и имеет низкую производительность (N + 1).

Копирование области в базу данных документов также невозможно,Не нашли решения от Axiomatics.

Как реализовать такую ​​фильтрацию?

...