A project is the trusted isolation boundary for catalog policy, executions, connections, and idempotency. Every executor request authenticates one project key:

HTTP
Authorization: Bearer eyeball_project_key

The key selects the project. It does not identify the human whose provider account should be used. Bind that separately with userId in the SDK or userId in the REST body.

IdentitySupplied byPurpose
ProjectBearer keyTrust, policy, execution isolation
External userYour applicationConnection and data isolation inside the project
Provider accountConnection resolverConcrete Gmail, Slack, Stripe, or other account

Use opaque, stable external user IDs. Never put provider tokens in tool input. A connection for user_42 cannot be selected by user_84, even if both users belong to the same project.

Next: Connected accounts.