aeat.application.auth._sessions module¶
Persisted AEAT session discovery and verification.
ensure_authenticated_aeat_session() returns
AuthenticatedAeatSessionResult after coordinating
AuthProviderKind selection, SessionStoreProtocol persistence,
and PersistedAuthSession reuse.
See also
application.authPublic auth facade that re-exports this session lifecycle.
application.auth.AuthAcquisitionLockRecordProfile/provider lock record used to serialize live authentication.
application.live._sessionRead-only live-entry helper that calls this module only after
core.access_gate.AeatAccessGateallows a live read.adapters.outbound.aeat.authConcrete providers and persisted-session store implementations.
- configure_session_store(store)[source]¶
Register the concrete session store at wiring time.
Called by the entrypoints layer (or test fixtures) to bind the concrete adapter implementation before any session function is invoked.
- Return type:
- Parameters:
store (SessionStoreProtocol)
- class StorageStatePaths(**data)[source]¶
Bases:
BaseModelLogical storage-state identifier for one provider’s persisted AEAT session.
- Parameters:
storage_state (Path)
- storage_state: Path¶
- exception CorruptAuthSessionError(message=None, *, context=None, suggestion=None, translated_message=None)[source]¶
Bases:
AeatErrorRaised when persisted session metadata cannot be parsed.
- Parameters:
- Return type:
None
- code: ClassVar[ErrorCode]¶
Bases:
AeatErrorRaised when no verified active AEAT session can be supplied.
- Parameters:
- Return type:
None
- exception SessionDeserializationError(message=None, *, context=None, suggestion=None, translated_message=None)[source]¶
Bases:
AuthSessionUnavailableErrorRaised when a persisted session field cannot be deserialized to the expected type.
Replaces the bare
TypeErrorraised by_session_metadata_datetime()so callers catch a typed, registry-bound error that inherits fromAuthSessionUnavailableError.- Parameters:
- Return type:
None
- code: ClassVar[ErrorCode]¶
- exception AuthProfileIdentityMismatchError(message=None, *, context=None, suggestion=None, translated_message=None)[source]¶
Bases:
AeatErrorRaised when the active profile identity cannot own the requested auth session.
- Parameters:
- Return type:
None
- code: ClassVar[ErrorCode]¶
- class AuthenticatedAeatSessionResult(**data)[source]¶
Bases:
BaseModelOutcome of ensuring an authenticated AEAT session.
- Parameters:
provider_kind (AuthProviderKind)
reused_persisted_session (bool)
acquired_lock (AuthAcquisitionLockRecord | None)
reset_lock (AuthAcquisitionLockStatus | None)
fresh (bool)
- provider_kind: AuthProviderKind¶
- session: SkipValidation[Any]¶
- assertion: SkipValidation[Any]¶
- reused_persisted_session: bool¶
- acquired_lock: AuthAcquisitionLockRecord | None¶
- reset_lock: AuthAcquisitionLockStatus | None¶
- removed_sessions: tuple[Path, ...]¶
- fresh: bool¶
- class PersistedAuthSession(**data)[source]¶
Bases:
BaseModelProvider-neutral view of encrypted AEAT session metadata.
- Parameters:
provider_kind (AuthProviderKind)
identity_nif (str)
authenticated_at (datetime)
idle_deadline (datetime)
- provider_kind: AuthProviderKind¶
- identity_nif: str¶
- authenticated_at: datetime¶
- idle_deadline: datetime¶
- storage_state_paths(kind=None)[source]¶
Return the logical storage-state identifier for
kind.Returns a
StorageStatePathscarrying the stable logical object key for the provider’s encrypted session state.- Return type:
- Parameters:
kind (AuthProviderKind | None)
- load_persisted_session(settings, kind=None)[source]¶
Load persisted AEAT session metadata for
kindor the active provider.Returns a
PersistedAuthSession.- Return type:
- Parameters:
settings (Settings)
kind (AuthProviderKind | None)
- delete_persisted_session(settings, kind=None)[source]¶
Remove persisted encrypted sessions for
kindor every supported provider.- Return type:
list[Path]- Parameters:
settings (Settings)
kind (AuthProviderKind | None)
- async require_verified_aeat_session(settings, *, kind=None, target_url=None)[source]¶
Return a verified active
AeatSessionwithout exposing provider mechanics.- Return type:
- Parameters:
settings (Settings)
kind (AuthProviderKind | None)
target_url (str | None)
- async ensure_authenticated_aeat_session(settings, *, kind=None, fresh=False, reset_lock=False, operation='auth-ensure-session', target_url=None, browser_session_factory=None, provider_factory=None)[source]¶
Return a verified AEAT session, authenticating only when required.
This is the central live-auth orchestration surface. Callers should not hand-roll provider probing, lock handling, or session deletion. The sequence is:
optionally reset an acquisition lock requested by the operator;
probe persisted session state when not forcing fresh auth;
acquire the profile/provider auth lock;
probe persisted state again to avoid races;
optionally delete persisted session state for
fresh;authenticate and verify through the selected provider.
Returns an
AuthenticatedAeatSessionResultcarrying the live session and the lock-reset status when one was requested.- Return type:
- Parameters:
settings (Settings)
kind (AuthProviderKind | None)
fresh (bool)
reset_lock (bool)
operation (str)
target_url (str | None)
browser_session_factory (BrowserSessionFactory | None)
provider_factory (Callable[[AuthProviderKind, Settings, BrowserSessionFactory | None], AuthProvider] | None)