Я думаю, что идиоматический c способ добиться этого - не моделировать его внутри самого DAML.
Вместо этого вы кодифицируете этот лог c во внешней системе аутентификации, подключив его к чему-то вроде auth0, как описано в https://blog.daml.com/daml-driven/easy-authentication-for-your-distributed-app-with-daml-and-auth0. Например, подумайте, как вы обычно делаете это в RDBMS. У вас есть таблица пользователей, у них есть роль, у роли могут быть права доступа и т. Д. c.
Затем вы можете представить генерическую группу c с именем ActorAccess
(роль) и сделать ее наблюдателем по контракту Actor
. Затем вы настраиваете auth0 для предоставления Алисе и Бобу этого гранта actAs
этой партии или что-то в этом роде.
https://docs.daml.com/app-dev/authentication.html, имеет пару полей в токене, называемых readAs
, actAs
, которые достигают различных целей на основе таблицы в документации.
Затем auth0 выдаст токен JWT с этими подробностями, и вы можете подписаться на поток событий API бухгалтерской книги и наблюдать за событиями по этому типу шаблона теперь, когда Алиса и Боб являются заинтересованными сторонами любых контрактов, в которых участвует ActorAccess
сторона.
Не знаю, если это правильно, но стоит go.