Typical uses
- sign a user in
- fetch current-user and school context
- call GraphQL queries and mutations
- use selected REST resources
- consume the generated API references
Good client habits
- treat GraphQL as the primary application API
- use REST where Kralis explicitly exposes auth or read-oriented resources
- prefer stable IDs over names for follow-up operations
- handle validation and permission errors explicitly in the client
- make server rules visible in the UI before submission where possible
Examples of rules the client should reflect early
- a class-bound section should only be shown for the matching class
- promotion flows should explain when a class-bound section will be cleared
- duplicate-student hints during import should support operator review rather than hard-blocking on names alone

