agentrouter.identity.v1.IdentityService
IdentityService carries the admin-side endpoints that the auth middleware and onboarding paths need. ResolveApiKey (milestones A+B), the GetUser/ListUsers directory lookups and the BanUser/UnbanUser moderation pair are landed; the rest of the admin surface ships in milestone C.
Every RPC here names its subject in the request. That is the line against MeService: an RPC that acts on ANOTHER user belongs on this service even when only a session may call it (BanUser/UnbanUser). Doc visibility is per-RPC: ResolveApiKey stays out of the customer reference via its "internal" scope, while the GetUser/ListUsers directory lookups are customer-facing (users_reader scope, which admin satisfies through implication; accept API_KEY).
ListUsers
ListUsers batch-resolves user_ids to directory entries in one call,
SearchUsers
SearchUsers browses the directory the way the admin console's Users
GetUserStats
GetUserStats returns the per-status counts the Users page's stat
GetUser
GetUser resolves a single user_id to its directory entry (email +
DeleteUser
DeleteUser soft-deletes a user (fraser#8692). The authn.user row is
BanUser
BanUser bans a user (authn.user.banned = true) with a reason, and
RestoreUser
RestoreUser reverses DeleteUser: it clears deleted_at/deleted_by, and
UnbanUser
UnbanUser clears a user's ban (authn.user.banned, ban_reason,