Skip to content

Auth

auth

AuthDependencySpec

Bases: BaseModel

A value-less authentication dependency and its state source.

Source code in packages/axm-vault/src/axm_vault/auth.py
Python
class AuthDependencySpec(BaseModel):  # type: ignore[explicit-any]
    """A value-less authentication dependency and its state source."""

    model_config = ConfigDict(
        frozen=True,
        extra="forbid",
        arbitrary_types_allowed=True,
    )

    name: str
    _source: AuthSource = PrivateAttr()

    def __init__(self, *, name: str, source: object, **data: object) -> None:
        if not isinstance(source, AuthSource):
            raise UnsupportedAuthDeclarationError(
                f"authentication dependency {name!r} has no valid AuthSource"
            )
        super().__init__(name=name, **data)
        self._source = source

    def status(self) -> AuthStatus:
        """Return the source's current tri-state authentication status."""
        return self._source.status()
status()

Return the source's current tri-state authentication status.

Source code in packages/axm-vault/src/axm_vault/auth.py
Python
def status(self) -> AuthStatus:
    """Return the source's current tri-state authentication status."""
    return self._source.status()

AuthSource

Bases: Protocol

Capability supplied by packages declaring an authentication dependency.

Source code in packages/axm-vault/src/axm_vault/auth.py
Python
@runtime_checkable
class AuthSource(Protocol):
    """Capability supplied by packages declaring an authentication dependency."""

    def status(self) -> AuthStatus:
        """Observe the dependency without reading authentication material."""
        ...
status()

Observe the dependency without reading authentication material.

Source code in packages/axm-vault/src/axm_vault/auth.py
Python
def status(self) -> AuthStatus:
    """Observe the dependency without reading authentication material."""
    ...

AuthStatus

Bases: StrEnum

Observed state of an authentication dependency.

Source code in packages/axm-vault/src/axm_vault/auth.py
Python
class AuthStatus(StrEnum):
    """Observed state of an authentication dependency."""

    CONNECTED = "connected"
    DISCONNECTED = "disconnected"
    TOOL_ABSENT = "tool_absent"

UnsupportedAuthDeclarationError

Bases: RuntimeError

Raised when an authentication declarer does not implement AuthSource.

Source code in packages/axm-vault/src/axm_vault/auth.py
Python
class UnsupportedAuthDeclarationError(RuntimeError):
    """Raised when an authentication declarer does not implement AuthSource."""