Answer
AppProject roles define scoped policies for that project, and you generate JWT tokens bound to a role. CI uses such a token to, say, sync only that project's apps—no admin account needed. This confines automation to exactly the actions and objects it requires.
roles:
- name: deployer
policies: [ 'p, proj:team-a:deployer, applications, sync, team-a/*, allow' ]Real-world example The pipeline's project-scoped token can sync team-a apps only, never affecting other projects.