Skip to content

Prepare for deprecation of Authenticator.db #207

Open
@minrk

Description

@minrk

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions