(Notifications) Centralize principal updates to DAO for more stable cache eviction
(Notifications) Switch api.group to use dao for principal update