Skip to main content
Permissions run before resolver extensions and the resolver itself.
BasePermission.has_permission may be synchronous or asynchronous. Return a false value to produce a field error using the permission’s message. Extensions wrap the next stage in declared order and may inspect or transform its result. Keep authorization rules explicit and narrow. Context establishes identity; permissions decide whether the active field operation is allowed.