Authentication surfaces
/auth/handles login, logout, token lifecycle, password changes, and current user details/graphql/is the authenticated application API/graphiql/is the interactive GraphQL explorer
School scoping rules for clients
- use the authenticated user’s returned school context as the operational boundary
- never assume a valid ID from another school should be accessible
- avoid building client flows that depend on cross-school data mixing
- treat school scoping errors as safety signals, not inconveniences to work around

