OXIESEC PANEL
- Current Dir:
/
/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
sentry_sdk
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
09/05/2025 09:34:06 AM
rwxr-xr-x
📄
__init__.py
1.03 KB
12/18/2024 10:23:16 AM
rw-r--r--
📁
__pycache__
-
02/07/2025 11:11:01 PM
rwxr-xr-x
📄
_compat.py
2.73 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_functools.py
4.84 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_lru_cache.py
5.26 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_queue.py
11 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_types.py
2.19 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
_werkzeug.py
3.7 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
api.py
6.05 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
attachments.py
1.77 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
client.py
22.35 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
consts.py
8.49 KB
12/18/2024 10:23:16 AM
rw-r--r--
📁
crons
-
02/07/2025 10:01:35 PM
rwxr-xr-x
📄
debug.py
1.11 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
envelope.py
9.37 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
hub.py
26.42 KB
12/18/2024 10:23:16 AM
rw-r--r--
📁
integrations
-
02/07/2025 10:01:35 PM
rwxr-xr-x
📄
monitor.py
2.97 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
profiler.py
33.18 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
py.typed
0 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
scope.py
24.26 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
scrubber.py
3.8 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
serializer.py
12.97 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
session.py
5.43 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
sessions.py
5.76 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
tracing.py
29.04 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
tracing_utils.py
12 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
tracing_utils_py2.py
1.21 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
tracing_utils_py3.py
2.1 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
transport.py
18.13 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
utils.py
45.58 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
worker.py
4.15 KB
12/18/2024 10:23:16 AM
rw-r--r--
Editing: session.py
Close
import uuid from datetime import datetime from sentry_sdk._types import TYPE_CHECKING from sentry_sdk.utils import format_timestamp if TYPE_CHECKING: from typing import Optional from typing import Union from typing import Any from typing import Dict from sentry_sdk._types import SessionStatus def _minute_trunc(ts): # type: (datetime) -> datetime return ts.replace(second=0, microsecond=0) def _make_uuid( val, # type: Union[str, uuid.UUID] ): # type: (...) -> uuid.UUID if isinstance(val, uuid.UUID): return val return uuid.UUID(val) class Session(object): def __init__( self, sid=None, # type: Optional[Union[str, uuid.UUID]] did=None, # type: Optional[str] timestamp=None, # type: Optional[datetime] started=None, # type: Optional[datetime] duration=None, # type: Optional[float] status=None, # type: Optional[SessionStatus] release=None, # type: Optional[str] environment=None, # type: Optional[str] user_agent=None, # type: Optional[str] ip_address=None, # type: Optional[str] errors=None, # type: Optional[int] user=None, # type: Optional[Any] session_mode="application", # type: str ): # type: (...) -> None if sid is None: sid = uuid.uuid4() if started is None: started = datetime.utcnow() if status is None: status = "ok" self.status = status self.did = None # type: Optional[str] self.started = started self.release = None # type: Optional[str] self.environment = None # type: Optional[str] self.duration = None # type: Optional[float] self.user_agent = None # type: Optional[str] self.ip_address = None # type: Optional[str] self.session_mode = session_mode # type: str self.errors = 0 self.update( sid=sid, did=did, timestamp=timestamp, duration=duration, release=release, environment=environment, user_agent=user_agent, ip_address=ip_address, errors=errors, user=user, ) @property def truncated_started(self): # type: (...) -> datetime return _minute_trunc(self.started) def update( self, sid=None, # type: Optional[Union[str, uuid.UUID]] did=None, # type: Optional[str] timestamp=None, # type: Optional[datetime] started=None, # type: Optional[datetime] duration=None, # type: Optional[float] status=None, # type: Optional[SessionStatus] release=None, # type: Optional[str] environment=None, # type: Optional[str] user_agent=None, # type: Optional[str] ip_address=None, # type: Optional[str] errors=None, # type: Optional[int] user=None, # type: Optional[Any] ): # type: (...) -> None # If a user is supplied we pull some data form it if user: if ip_address is None: ip_address = user.get("ip_address") if did is None: did = user.get("id") or user.get("email") or user.get("username") if sid is not None: self.sid = _make_uuid(sid) if did is not None: self.did = str(did) if timestamp is None: timestamp = datetime.utcnow() self.timestamp = timestamp if started is not None: self.started = started if duration is not None: self.duration = duration if release is not None: self.release = release if environment is not None: self.environment = environment if ip_address is not None: self.ip_address = ip_address if user_agent is not None: self.user_agent = user_agent if errors is not None: self.errors = errors if status is not None: self.status = status def close( self, status=None # type: Optional[SessionStatus] ): # type: (...) -> Any if status is None and self.status == "ok": status = "exited" if status is not None: self.update(status=status) def get_json_attrs( self, with_user_info=True # type: Optional[bool] ): # type: (...) -> Any attrs = {} if self.release is not None: attrs["release"] = self.release if self.environment is not None: attrs["environment"] = self.environment if with_user_info: if self.ip_address is not None: attrs["ip_address"] = self.ip_address if self.user_agent is not None: attrs["user_agent"] = self.user_agent return attrs def to_json(self): # type: (...) -> Any rv = { "sid": str(self.sid), "init": True, "started": format_timestamp(self.started), "timestamp": format_timestamp(self.timestamp), "status": self.status, } # type: Dict[str, Any] if self.errors: rv["errors"] = self.errors if self.did is not None: rv["did"] = self.did if self.duration is not None: rv["duration"] = self.duration attrs = self.get_json_attrs() if attrs: rv["attrs"] = attrs return rv