#5061·jupyterhub

Support updatable fields in singleuser user model

Author: minrkCreated Apr 30, 2025Updated Mar 17, 2026
Labelsenhancement

Proposed change

Jupyter Server is adding support for users updating fields in the user model: https://github.com/jupyter-server/jupyter_server/pull/1518 mainly targeted at the default Anonymous Chupacabra identity provider. But Jupyter Server has several fields that JupyterHub is very likely to never understand, like cursor color, which should still be settable.

JupyterHub should be able to control which fields are settable, and store the fields it allows. The missing piece is persistence - there isn't currently an obvious place to persist info about users that JupyterHub doesn't understand.

Alternative options

Don't do this, keep the JupyterHub user model completely read-only, which also leaves some fields as auto-generated.

Who would use this feature?

Deployments with collaboration enabled.

(Optional): Suggest a solution

Maybe add a JSON user_info column to the Users table that's editable via the REST API? Many auth providers define fields like a display name, avatar url, etc. and it would be nice to store this so your actual name could show up in Collaboration UI, not just your username as we have now. Unclear how restrictive we should be on the fields, though. auth_state can technically serve as this, but I don't think it's the right choice.

If we do that, we'd probably need to expose to the Authenticator some level of 'managed fields', i.e. if the Authenticator specifies your display name, it shouldn't be editable. But if it doesn't, (maybe) it should.

A lighter-weight version is some kind of local or short-term persistence in the single-user server. This might not last, but could be made to work in many cases with no changes to the Hub itself.