per-project level. Apps must declare consumed events and access to project and user resources on a fine grained level (i.e. read issues, write issue comments). Apps may impersonate users (to a certain extend) to perform actions on behalf of the user.