Answer
An AppProject groups Applications and enforces guardrails: which source repos are allowed, which destination clusters/namespaces apps can deploy to, and which resource kinds are permitted (allow/deny lists). Projects provide multi-tenancy boundaries and are the basis for scoping RBAC, limiting blast radius per team.
kind: AppProject
spec:
sourceRepos: ['https://github.com/org/*']
destinations:
- server: https://kubernetes.default.svc
namespace: 'team-a-*'Real-world example Team A's project restricts them to their repos and team-a-* namespaces, so they can't deploy elsewhere.