Description
JupyterHub will (not sure how soon) deprecate the Authenticator.db
property, because the lifecycle of that property is a problem, and Authenticators and Spawners generally shouldn't ever need access to the JupyterHub db, and certainly shouldn't have access to a shared session on that db.
xref: jupyterhub/jupyterhub#3700
Proposed change
Make NativeAuthenticator's db session independent of the Hub's internal db session. Creating a new Session against the same database (i.e. starting from db_url instead of db) should be fine, especially since NativeAuthenticator's tables are already independent (related to #28, which I think crosses an internal implementation-detail line).
I think this may need some support from JupyterHub to get the necessary info. Worst case: duplicating db_url config from JupyterHub -> NativeAuthenticator. But since the tables are independent, there's actually no reason other than convenience of configuration for the two to share the same db at all, let alone db session.
Alternative options
- Wait for Authenticator.db to be removed, and stop working.
- Request new
db_session()
factory API to create a session on the db that isn't shared with JupyterHub
Who would use this feature?
All future deployments of JupyterHub with NativeAuthenticator