Skip to main content

multipass-auth

Reusable browser-login building blocks, spun out of canvasser. Import name is multipass; the distribution is multipass-auth (the bare name is a decade-old stub on PyPI). GPL-3.0-or-later.

Ships four modules: credential resolution (multipass.credentials), persistent browser contexts with 700/600 debug snapshots (multipass.browser), a branding skeleton (multipass.config — state layout plus every brandable string in one frozen object), and the recogniser-loop auth engine (multipass.auth: LoginState dispatch, one IdP row, structural rejection check, allowlist liveness) with Duo answered through the duo-pass dependency. Factor plugins beyond Duo arrive through extra_recognisers.

from pathlib import Path
from multipass import CredentialNames, resolve_credentials

NAMES = CredentialNames(
    username_vars=("CONCURRER_USERNAME",),
    password_vars=("CONCURRER_PASSWORD",),
    program="concurrer",
)

user, pw = resolve_credentials(
    names=NAMES,
    default_file=Path.home() / ".local" / "state" / "concurrer" / "secrets.env",
)

Branding

A library must not hardcode its first host's variable names — and it must not hold them as setup either. Every variable, flag example, and program name the package can utter arrives per call, in one frozen CredentialNames the host constructs and passes in (resolve_credentials(names=...), LoginTarget(names=...)). There is no configure(), no active branding, and no default to inherit: a default here would be the thing every host silently inherits. The MULTIPASS_* object exists only so the shape has something to show, not something to run under. State paths work the same way: resolve_state_dir(config) takes its AuthConfig explicitly, and the browser's snapshot directory, session file, and profile dir are required arguments wherever they are used.

Release files for multipass-auth 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for multipass-auth 0.0.2
File Size Uploaded
multipass_auth-0.0.2.tar.gz 44.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for multipass-auth 0.0.2
File Interpreter ABI Platform
multipass_auth-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 91.5 kB

Release files / multipass_auth-0.0.2.tar.gz

Download URL multipass_auth-0.0.2.tar.gz
Size 44.6 kB
Tags Source
SHA-256 checksum
How to use checksums
96405d61b06e2c0f7efaa64e2514ea7acd0cad872233783b61d27f32a822f5ce
BLAKE2b-256 checksum
How to use checksums
f4cf9eeb5795ddc7fae75170bbe8d5edd7070cbc2bf91cfd1cd321d60835a0ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / multipass_auth-0.0.2-py3-none-any.whl

Download URL multipass_auth-0.0.2-py3-none-any.whl
Size 46.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
43db0841735ed06663a29d4c28e7e5f586835b164b67da7088b72aeefe9ed764
BLAKE2b-256 checksum
How to use checksums
68fb56ace828d2e313a98a2dfb3a5b0668d69b1f9d9e9f922c02993f2b676789
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

0.0.3

2 release files

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page