Skip to content

Registry

dagster_authkit.core.registry

Backend Registry - Plugin Discovery System

Discovers and instantiates backends via entry points (setuptools). Allows external plugins without modifying core code.

BackendRegistry

Registry for authentication backends.

Discovers backends automatically via entry points defined in 'dagster_auth.backends' in installed packages' pyproject.toml.

discover_backends classmethod

discover_backends()

Discovers all registered backends via entry points.

Entry point format (pyproject.toml): [project.entry-points."dagster_auth.backends"] dummy = "dagster_authkit.auth.backends.dummy:DummyAuthBackend" sqlite = "dagster_authkit.auth.backends.sqlite:SQLiteAuthBackend"

get_backend classmethod

get_backend(name, config)

Instantiates a backend by name.

The config dict is only used on the first call for a given backend name. Subsequent calls return the cached instance regardless of config.

Parameters:

Name Type Description Default
name str

Backend name (sqlite, ldap, oauth, dummy)

required
config Dict[str, Any]

Configuration dict (only used on first call)

required

Returns:

Type Description
AuthBackend

Initialized AuthBackend instance

Raises:

Type Description
ValueError

If backend doesn't exist

list_backends classmethod

list_backends()

Lists all available backends (discovered via entry points).

Returns:

Type Description
list

List of backend names

Example

from dagster_authkit.core.registry import list_available_backends print(list_available_backends()) ['dummy', 'sqlite', 'ldap']

reset classmethod

reset()

Resets registry (useful for tests).

Clears all discovered backends and cached instances, forcing re-discovery on next call.

get_backend

get_backend(name, config)

Convenience function to get backend.

Parameters:

Name Type Description Default
name str

Backend name

required
config Dict[str, Any]

Configuration

required

Returns:

Type Description
AuthBackend

AuthBackend instance

Example

backend = get_backend('dummy', {}) user = backend.authenticate('admin', 'admin')

list_available_backends

list_available_backends()

Lists all available backends.

Returns:

Type Description
list

List of names

Example

backends = list_available_backends() print(f"Available: {backends}")