У меня есть приложение AWS Amplify (версия aws-amplify@1.2.4) с использованием API (AppSync / DynamoDB) и аутентификации (Cognito). В попытке реализовать обмен данными в моем приложении AWS Amplify (я хочу поделиться сущностью с именем Company
) я обновил свою схему с
type Company @model @auth(rules: [
{allow: owner}
]) {
id: ID!
name: String!
}
до
type Company @model @auth(rules: [
{allow: owner},
{allow: owner, ownerField: "rw_shares", operations: [read, create, update]}
]) {
id: ID!
rw_shares: [String]
name: String!
}
После этого изменения в существующих данных я наблюдаю, что запрос listCompanys
GraphQL ошибочно возвращает объекты, принадлежащие другим пользователям:
query ListCompanys {
listCompanys (limit: 100){
items {
id
name
owner
rw_shares
}
}
}
возвращает список, в котором некоторые компании имеют отличается owner
(!) (и rw_shares
не задано), в то время как запрос getCompany
правильно завершается неудачно:
query GetCompany($id: ID!) {
getCompany(id: $id) {
id
rw_shares
name
}
}
завершается неудачно при вызове с идентификатором компании принадлежит другому пользователю с сообщением об ошибке Not Authorized to access getCompany on type Query
.
Это беспокоит меня, так как не должно быть возможности увидеть не принадлежащие объекту в БД. Что я делаю неправильно? Где я могу начать отслеживать проблему?