@startuml
title Session Revocation Cookie Invalidation - Component View

skinparam componentStyle rectangle
skinparam shadowing false

actor "Browser Client" as Client
component "Session Management Routes\n/revoke-session\n/revoke-sessions\n/revoke-other-sessions" as SessionRoutes
component "Admin Revoke Routes\n/admin/revoke-user-session\n/admin/revoke-user-sessions" as AdminRoutes
component "General Auth Request Path" as RequestPath
component "AthenaAuth::handle_request" as Pipeline
component "Session token extraction\n(bearer + cookie)" as Extract
component "Session Revocation Core" as RevokeCore
component "SessionManager + DatabaseAdapter" as SessionDB
component "AuthError -> AuthResponse mapper" as ErrorMapper
component "Cookie utils\ncreate_clear_session_cookie(...)" as CookieUtils
component "Set-Cookie: clear session token cookie" as ClearCookie

Client --> SessionRoutes
Client --> AdminRoutes
Client --> RequestPath

SessionRoutes --> RevokeCore
AdminRoutes --> RevokeCore
RevokeCore --> SessionDB

RequestPath --> Pipeline
Pipeline --> Extract
Extract --> SessionDB
Pipeline --> ErrorMapper

RevokeCore --> CookieUtils
ErrorMapper --> CookieUtils
CookieUtils --> ClearCookie
ClearCookie --> Client

@enduml
