diff --git a/app/src/zcs/core/session/__init__.py b/app/src/zcs/core/session/__init__.py index 51c5508..8924608 100644 --- a/app/src/zcs/core/session/__init__.py +++ b/app/src/zcs/core/session/__init__.py @@ -1,2 +1,3 @@ from .request_context import request_context from .request_state import RequestState +from .auth_info import AuthInfo \ No newline at end of file diff --git a/app/src/zcs/core/session/auth_info.py b/app/src/zcs/core/session/auth_info.py new file mode 100644 index 0000000..771199d --- /dev/null +++ b/app/src/zcs/core/session/auth_info.py @@ -0,0 +1,13 @@ +from dataclasses import dataclass + + +@dataclass +class AuthInfo: + """ + Data class to hold authentication information for a user request. + """ + client_id: str = None + tenant_id: str = None + company_id: str = None + user_id: str = None + user_email: str = None diff --git a/app/src/zcs/core/session/request_state.py b/app/src/zcs/core/session/request_state.py index cd56ce6..e834ee5 100644 --- a/app/src/zcs/core/session/request_state.py +++ b/app/src/zcs/core/session/request_state.py @@ -2,6 +2,8 @@ import uuid from typing import Optional +from zcs.core.session.auth_info import AuthInfo + class RequestState(): @@ -9,12 +11,21 @@ def __init__( self, request_id: Optional[str] = None, prefix: Optional[str] = None, - op_code: Optional[str] = None): + op_code: Optional[str] = None, + auth_info: Optional[AuthInfo] = None): self.__request_id = request_id if request_id else RequestState.generate_op_code(prefix=prefix) self.__op_code = op_code if op_code else self.__request_id self.__request_start_ns = time.perf_counter_ns() self.__checkpoint_ns = self.__request_start_ns + self.__auth_info = auth_info + + def getAuthInfo(self) -> Optional[AuthInfo]: + """ + Get authentication information. + """ + + return self.__auth_info def getOpCode(self) -> str: """