Repair docs (html, md). Update docstrings
This commit is contained in:
parent
e264750187
commit
6a4ad48577
125 changed files with 3706 additions and 4913 deletions
|
|
@ -4,6 +4,12 @@
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель запроса на удаление UFW правил.
|
||||
|
||||
Атрибуты:
|
||||
|
||||
- `numbers` (List[int]): Список номеров правил для удаления.
|
||||
|
||||
#### model_config *: ClassVar[ConfigDict]* *= {}*
|
||||
|
||||
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
|
||||
|
|
|
|||
36
SRV/docs/_build/markdown/api/models/auth.md
vendored
36
SRV/docs/_build/markdown/api/models/auth.md
vendored
|
|
@ -4,13 +4,14 @@
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Токен пользователя
|
||||
Модель JWT-токена.
|
||||
|
||||
Атрибуты:
|
||||
: access_token (str): Токен пользователя (захэширован)
|
||||
token_type (str): Тип токена
|
||||
session_id (Optional[str]): Идентификатор сессии
|
||||
user (Optional[UserResponse]): Пользователь на основе проверки наличия пользователя
|
||||
|
||||
- `access_token` (str): Значение токена (в формате JWT).
|
||||
- `token_type` (str): Тип токена (обычно `bearer`).
|
||||
- `session_id` (Optional[str]): Идентификатор сессии.
|
||||
- `user` (Optional[UserResponse]): Данные пользователя, если включены в ответ.
|
||||
|
||||
#### access_token *: str*
|
||||
|
||||
|
|
@ -28,12 +29,13 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель созданного пользователя
|
||||
Модель созданного пользователя.
|
||||
|
||||
Атрибуты:
|
||||
: username (str): Имя пользователя
|
||||
password (str): Пароль пользователя
|
||||
is_admin (bool): Административный доступ
|
||||
|
||||
- `username` (str): Имя пользователя.
|
||||
- `password` (str): Пароль пользователя.
|
||||
- `is_admin` (bool): Флаг административного доступа.
|
||||
|
||||
#### is_admin *: bool*
|
||||
|
||||
|
|
@ -49,11 +51,12 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель авторизации пользователя
|
||||
Модель авторизации пользователя.
|
||||
|
||||
Атрибуты:
|
||||
: username (str): Имя пользователя
|
||||
password (str): Пароль пользователя
|
||||
|
||||
- `username` (str): Имя пользователя.
|
||||
- `password` (str): Пароль пользователя.
|
||||
|
||||
#### model_config *: ClassVar[ConfigDict]* *= {}*
|
||||
|
||||
|
|
@ -67,12 +70,13 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель проверки наличия пользователя
|
||||
Модель, используемая при возврате сведений о пользователе.
|
||||
|
||||
Атрибуты:
|
||||
: id (int): Идентификатор
|
||||
username (str): Имя пользователя
|
||||
is_admin (bool): Административный доступ
|
||||
|
||||
- `id` (int): Идентификатор пользователя.
|
||||
- `username` (str): Имя пользователя.
|
||||
- `is_admin` (bool): Флаг административного доступа.
|
||||
|
||||
#### id *: int*
|
||||
|
||||
|
|
|
|||
113
SRV/docs/_build/markdown/api/models/network.md
vendored
113
SRV/docs/_build/markdown/api/models/network.md
vendored
|
|
@ -4,14 +4,15 @@
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель активированных интерфейсов
|
||||
Модель узла активных интерфейсов.
|
||||
|
||||
Атрибуты:
|
||||
: id (int): Идентификатор ноды активированных интерфейсов
|
||||
interfaces (List[Union[NetworkInterface, WiFiDevice]]): Активированные интерфейсы
|
||||
container_x (int): Положение по X на холсте
|
||||
container_y (int): Положение по Y на холсте
|
||||
isOpen (bool): Флаг скрытия ноды на холсте
|
||||
|
||||
- `id` (int): Идентификатор ноды.
|
||||
- `interfaces` (List[Union[NetworkInterface, WiFiDevice]]): Активные интерфейсы.
|
||||
- `container_x` (int): Координата X на холсте.
|
||||
- `container_y` (int): Координата Y на холсте.
|
||||
- `isOpen` (bool): Флаг отображения узла на холсте.
|
||||
|
||||
#### container_x *: int*
|
||||
|
||||
|
|
@ -31,14 +32,15 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель отключенных интерфейсов
|
||||
Модель узла отключённых интерфейсов.
|
||||
|
||||
Атрибуты:
|
||||
: id (int): Идентификатор ноды отключенных интерфейсов
|
||||
interfaces (List[Union[NetworkInterface, WiFiDevice]]): Отключенные интерфейсы
|
||||
container_x (int): Положение по X на холсте
|
||||
container_y (int): Положение по Y на холсте
|
||||
isOpen (bool): Флаг скрытия ноды на холсте
|
||||
|
||||
- `id` (int): Идентификатор ноды.
|
||||
- `interfaces` (List[Union[NetworkInterface, WiFiDevice]]): Список отключённых интерфейсов.
|
||||
- `container_x` (int): Координата X на холсте.
|
||||
- `container_y` (int): Координата Y на холсте.
|
||||
- `isOpen` (bool): Флаг отображения узла на холсте.
|
||||
|
||||
#### container_x *: int*
|
||||
|
||||
|
|
@ -58,10 +60,11 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель конфигурации IP (IPv4/IPv6)
|
||||
Групповая конфигурация IP-адресов.
|
||||
|
||||
Атрибуты:
|
||||
: configurations (List[IndividualIPConfig]): Список индивидуальных IP-конфигураций
|
||||
|
||||
- `configurations` (List[IndividualIPConfig]): Индивидуальные IP-конфигурации.
|
||||
|
||||
#### configurations *: List[IndividualIPConfig]*
|
||||
|
||||
|
|
@ -73,13 +76,14 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель маршрута IPv4
|
||||
Модель маршрута IPv4.
|
||||
|
||||
Атрибуты:
|
||||
: destination (str): IP-адрес назначения
|
||||
prefix (int): Префикс подсети в формате CIDR
|
||||
next_hop (str): Адрес следующего узла (маршрутизатор)
|
||||
metric (int): Метрика маршрута
|
||||
|
||||
- `destination` (str): IP-адрес назначения.
|
||||
- `prefix` (int): Префикс подсети в формате CIDR.
|
||||
- `next_hop` (str): Адрес следующего узла (маршрутизатор).
|
||||
- `metric` (int): Метрика маршрута.
|
||||
|
||||
#### destination *: str*
|
||||
|
||||
|
|
@ -97,13 +101,14 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель маршрута IPv6
|
||||
Модель маршрута IPv6.
|
||||
|
||||
Атрибуты:
|
||||
: destination (str): IP-адрес назначения
|
||||
prefix (int): Префикс подсети (CIDR)
|
||||
next_hop (str): Адрес следующего узла (маршрутизатор)
|
||||
metric (int): Метрика маршрута
|
||||
|
||||
- `destination` (str): IP-адрес назначения.
|
||||
- `prefix` (int): Префикс подсети в формате CIDR.
|
||||
- `next_hop` (str): Адрес следующего узла.
|
||||
- `metric` (int): Метрика маршрута.
|
||||
|
||||
#### destination *: str*
|
||||
|
||||
|
|
@ -121,14 +126,15 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель индивидуальной конфигурации IP-адреса
|
||||
Модель индивидуальной конфигурации IP-адреса.
|
||||
|
||||
Атрибуты:
|
||||
: address (str): IP-адрес интерфейса
|
||||
routes (List[Union[IPv4Route, IPv6Route]]): Список маршрутов (IPv4/IPv6)
|
||||
method (Optional[str]): Метод назначения IP
|
||||
gateway (str): Основной шлюз по умолчанию
|
||||
dns (List[str]): Список DNS-серверов
|
||||
|
||||
- `address` (str): IP-адрес интерфейса.
|
||||
- `routes` (List[Union[IPv4Route, IPv6Route]]): Список маршрутов.
|
||||
- `method` (Optional[str]): Метод назначения IP.
|
||||
- `gateway` (str): Шлюз по умолчанию.
|
||||
- `dns` (List[str]): Список DNS-серверов.
|
||||
|
||||
#### address *: str*
|
||||
|
||||
|
|
@ -148,19 +154,20 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель базового сетевого интерфейса
|
||||
Модель базового сетевого интерфейса.
|
||||
|
||||
Атрибуты:
|
||||
: name (str): Название интерфейса
|
||||
type (str): Тип интерфейса
|
||||
mac_address (str): MAC-адрес устройства
|
||||
device_state (str): Состояние устройства
|
||||
active_connection (str): Название активного соединения
|
||||
device_mtu (str): MTU устройства
|
||||
ipv4 (IPConfig): Конфигурация IPv4
|
||||
ipv6 (IPConfig): Конфигурация IPv6
|
||||
container_x (int): Положение по X на холсте
|
||||
container_y (int): Положение по Y на холсте
|
||||
|
||||
- `name` (str): Название интерфейса.
|
||||
- `type` (str): Тип устройства.
|
||||
- `mac_address` (str): MAC-адрес.
|
||||
- `device_state` (str): Текущее состояние.
|
||||
- `active_connection` (str): Название активного соединения.
|
||||
- `device_mtu` (str): MTU устройства.
|
||||
- `ipv4` (IPConfig): IPv4-конфигурация.
|
||||
- `ipv6` (IPConfig): IPv6-конфигурация.
|
||||
- `container_x` (int): Положение по оси X на холсте.
|
||||
- `container_y` (int): Положение по оси Y на холсте.
|
||||
|
||||
#### active_connection *: str*
|
||||
|
||||
|
|
@ -190,12 +197,13 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Контейнер для группы сетевых интерфейсов с координатами
|
||||
Контейнер для набора сетевых интерфейсов.
|
||||
|
||||
Атрибуты:
|
||||
: interfaces (List[Union[NetworkInterface, WiFiDevice]]): Список интерфейсов
|
||||
container_x (int): Положение по оси X
|
||||
container_y (int): Положение по оси Y
|
||||
|
||||
- `interfaces` (List[Union[NetworkInterface, WiFiDevice]]): Список интерфейсов.
|
||||
- `container_x` (int): Положение по оси X.
|
||||
- `container_y` (int): Положение по оси Y.
|
||||
|
||||
#### container_x *: int*
|
||||
|
||||
|
|
@ -211,15 +219,16 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `NetworkInterface`
|
||||
|
||||
Модель Wi-Fi устройства (наследуется от NetworkInterface)
|
||||
Расширенная модель Wi-Fi устройства.
|
||||
|
||||
Атрибуты:
|
||||
: ssid (Optional[str]): Название Wi-Fi сети
|
||||
bssid (Optional[str]): MAC-адрес точки доступа
|
||||
bitrate (Optional[int]): Скорость соединения
|
||||
strength (Optional[int]): Уровень сигнала
|
||||
frequency (Optional[float]): Частота
|
||||
mode (Union[str, int]): Режим работы
|
||||
|
||||
- `ssid` (Optional[str]): Название Wi-Fi сети.
|
||||
- `bssid` (Optional[str]): MAC-адрес точки доступа.
|
||||
- `bitrate` (Optional[int]): Скорость соединения.
|
||||
- `strength` (Optional[int]): Уровень сигнала.
|
||||
- `frequency` (Optional[float]): Рабочая частота.
|
||||
- `mode` (Union[str, int]): Режим работы.
|
||||
|
||||
#### bitrate *: int | None*
|
||||
|
||||
|
|
|
|||
17
SRV/docs/_build/markdown/api/models/request.md
vendored
17
SRV/docs/_build/markdown/api/models/request.md
vendored
|
|
@ -4,10 +4,11 @@
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель добавления заметки к просканированному устройству
|
||||
Модель запроса на добавление заметки к устройству.
|
||||
|
||||
Атрибуты:
|
||||
: note (str): Заметка устройства
|
||||
|
||||
- `note` (str): Текст заметки.
|
||||
|
||||
#### model_config *: ClassVar[ConfigDict]* *= {}*
|
||||
|
||||
|
|
@ -19,11 +20,12 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель для подключения к точке доступа Wi-Fi
|
||||
Модель запроса на подключение к Wi-Fi.
|
||||
|
||||
Атрибуты:
|
||||
: ssid (str): Название точки доступа Wi-Fi
|
||||
password (str): Пароль точки доступа Wi-Fi
|
||||
|
||||
- `ssid` (str): Название точки доступа.
|
||||
- `password` (str): Пароль доступа.
|
||||
|
||||
#### model_config *: ClassVar[ConfigDict]* *= {}*
|
||||
|
||||
|
|
@ -37,10 +39,11 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель для отключения от точки доступа Wi-Fi
|
||||
Модель запроса на отключение от Wi-Fi.
|
||||
|
||||
Атрибуты:
|
||||
: ssid (str): Название точки доступа Wi-Fi
|
||||
|
||||
- `ssid` (str): Название точки доступа.
|
||||
|
||||
#### model_config *: ClassVar[ConfigDict]* *= {}*
|
||||
|
||||
|
|
|
|||
31
SRV/docs/_build/markdown/api/models/subnet.md
vendored
31
SRV/docs/_build/markdown/api/models/subnet.md
vendored
|
|
@ -4,17 +4,18 @@
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Сканируемое устройство в подсети
|
||||
Модель устройства, обнаруженного в подсети.
|
||||
|
||||
Атрибуты:
|
||||
: ip (str): IP-адрес устройства
|
||||
mac (Optional[str]): MAC-адрес устройства
|
||||
hostname (Optional[str]): Имя хоста
|
||||
vendor (Optional[str]): Название производителя устройства (По MAC-адресу)
|
||||
open_ports (List[str]): Открытые порты устройства
|
||||
status (str): Статус устройства (онлайн/оффлайн)
|
||||
last_seen (Optional[str]): Последняя активность устройства
|
||||
note (Optional[str]): Заметка устройства
|
||||
|
||||
- `ip` (str): IP-адрес устройства.
|
||||
- `mac` (Optional[str]): MAC-адрес устройства.
|
||||
- `hostname` (Optional[str]): Имя хоста.
|
||||
- `vendor` (Optional[str]): Производитель оборудования.
|
||||
- `open_ports` (List[str]): Открытые порты.
|
||||
- `status` (str): Состояние устройства (online/offline).
|
||||
- `last_seen` (Optional[str]): Время последнего обнаружения.
|
||||
- `note` (Optional[str]): Пользовательская заметка.
|
||||
|
||||
#### hostname *: str | None*
|
||||
|
||||
|
|
@ -40,10 +41,11 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Параметры для сканирования подсети
|
||||
Параметры запроса на сканирование подсети.
|
||||
|
||||
Атрибуты:
|
||||
: subnet (Optional[str]): Подсеть для сканирования (например 192.168.1.0/24), опционально
|
||||
|
||||
- `subnet` (Optional[str]): CIDR подсети (например, `192.168.1.0/24`).
|
||||
|
||||
#### model_config *: ClassVar[ConfigDict]* *= {}*
|
||||
|
||||
|
|
@ -55,11 +57,12 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Результат сканирования устройств в подсети
|
||||
Результат сканирования подсети.
|
||||
|
||||
Атрибуты:
|
||||
: devices (List[Device]): Список просканированных устройств
|
||||
error (Optional[str]): Сообщение об ошибке, если сканирование не удалось
|
||||
|
||||
- `devices` (List[Device]): Найденные устройства.
|
||||
- `error` (Optional[str]): Сообщение об ошибке сканирования.
|
||||
|
||||
#### devices *: List[Device]*
|
||||
|
||||
|
|
|
|||
26
SRV/docs/_build/markdown/api/models/wifi.md
vendored
26
SRV/docs/_build/markdown/api/models/wifi.md
vendored
|
|
@ -4,18 +4,19 @@
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Модель точки доступа Wi-Fi
|
||||
Модель Wi-Fi точки доступа.
|
||||
|
||||
Атрибуты:
|
||||
: ssid (Optional[str]): Название точки доступа. Может быть скрытым
|
||||
bssid (str): Уникальный идентификатор точки доступа (по типу MAC-адреса)
|
||||
channel (Optional[int]): Канал, на котором работает точка доступа
|
||||
signal (Optional[int]): Уровень сигнала (dBm)
|
||||
encryption (Optional[str]): Тип шифрования (WPA2, WPA3, открытая и т.д.)
|
||||
frequency (Optional[str]): Частота вещания (2.4GHz/5GHz)
|
||||
vendor (Optional[str]): Производитель точки доступа (определяется по MAC-адресу)
|
||||
hidden (bool): Флаг скрытия названия точки доступа (ssid)
|
||||
note (Optional[str]): Заметка для точки доступа
|
||||
|
||||
- `ssid` (Optional[str]): Название сети (может быть скрытым).
|
||||
- `bssid` (str): Уникальный идентификатор точки доступа.
|
||||
- `channel` (Optional[int]): Номер канала.
|
||||
- `signal` (Optional[int]): Уровень сигнала в dBm.
|
||||
- `encryption` (Optional[str]): Тип шифрования (WPA/WPA2/WPA3/открытая).
|
||||
- `frequency` (Optional[str]): Диапазон частот (2.4/5 ГГц).
|
||||
- `vendor` (Optional[str]): Производитель оборудования.
|
||||
- `hidden` (bool): Флаг скрытого SSID.
|
||||
- `note` (Optional[str]): Пользовательская заметка.
|
||||
|
||||
#### bssid *: str*
|
||||
|
||||
|
|
@ -43,10 +44,11 @@ Configuration for the model, should be a dictionary conforming to [ConfigDict][p
|
|||
|
||||
Bases: `BaseModel`
|
||||
|
||||
Результат сканирования Wi-Fi
|
||||
Результат сканирования Wi-Fi.
|
||||
|
||||
Атрибуты:
|
||||
: access_points (List[WifiAccessPoint]): Список найденных Wi-Fi точек доступа
|
||||
|
||||
- `access_points` (List[WifiAccessPoint]): Найденные точки доступа.
|
||||
|
||||
#### access_points *: List[WifiAccessPoint]*
|
||||
|
||||
|
|
|
|||
|
|
@ -43,14 +43,17 @@ Bases: `object`
|
|||
Класс для хранения данных о Wi-Fi сетях и их заметках по SSID.
|
||||
|
||||
Формат:
|
||||
: {
|
||||
: “networks”: [{“ssid”: str, “note”: Optional[str]}]
|
||||
<br/>
|
||||
}
|
||||
|
||||
```default
|
||||
{
|
||||
"networks": [{"ssid": str, "note": Optional[str]}]
|
||||
}
|
||||
```
|
||||
|
||||
Поведение:
|
||||
: - Создаёт директорию хранения при инициализации, ведёт логирование путей.
|
||||
- Валидация структуры при чтении, безопасная запись с Unicode и отступами.
|
||||
|
||||
- Создаёт директорию хранения при инициализации, ведёт логирование путей.
|
||||
- Валидирует структуру при чтении и безопасно записывает JSON с Unicode и отступами.
|
||||
|
||||
#### load_notes() → Dict[str, str | None]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,39 +1,37 @@
|
|||
# storage.json_storage
|
||||
|
||||
### *class* storage.json_storage.JsonStorage(file_path: str = '/etc/gonets/users.json')
|
||||
### *class* storage.json_storage.JsonStorage(file_path: str | None = None)
|
||||
|
||||
Bases: `object`
|
||||
|
||||
Хранилище пользователей в JSON-файле.
|
||||
|
||||
Назначение:
|
||||
: Обеспечивает простое файловое хранилище для учетных записей пользователей
|
||||
без полноценной СУБД. Подходит для встраиваемых окружений и сценариев,
|
||||
где важна минимальная зависимость от внешних сервисов.
|
||||
|
||||
- Обеспечивает простое файловое хранилище учетных записей без полноценной СУБД.
|
||||
- Подходит для встраиваемых окружений, где критична минимальная зависимость от внешних сервисов.
|
||||
|
||||
Формат данных:
|
||||
: JSON-структура вида:
|
||||
{
|
||||
<br/>
|
||||
> “users”: [
|
||||
> : {“id”: int, “username”: str, “password_hash”: str, “is_admin”: bool},
|
||||
> …
|
||||
<br/>
|
||||
> ],
|
||||
> “next_id”: int
|
||||
<br/>
|
||||
}
|
||||
|
||||
```default
|
||||
{
|
||||
"users": [
|
||||
{"id": int, "username": str, "password_hash": str, "is_admin": bool},
|
||||
...
|
||||
],
|
||||
"next_id": int
|
||||
}
|
||||
```
|
||||
|
||||
Безопасность:
|
||||
: Пароли никогда не сохраняются в открытом виде. Для хеширования используется
|
||||
passlib.context.CryptContext со схемой bcrypt. Файл создаётся с правами
|
||||
доступа 0o600 (только владелец).
|
||||
|
||||
Ограничения и замечания:
|
||||
: - Отсутствует конкурентный доступ/блокировки файла — при использовании в
|
||||
многопроцессной среде может потребоваться внешняя синхронизация.
|
||||
- Имя файла и каталог по умолчанию /etc/gonets/users.json предполагают
|
||||
наличие прав на запись и предварительную подготовку окружения.
|
||||
- Пароли никогда не сохраняются в открытом виде: используется passlib.context.CryptContext со схемой bcrypt.
|
||||
- Файл создаётся с правами доступа `0o600` (чтение/запись только владельцу).
|
||||
|
||||
Ограничения:
|
||||
|
||||
- Нет блокировок для конкурентного доступа — в многопроцессной среде требуется внешняя синхронизация.
|
||||
- Значение пути по умолчанию `/etc/gonets/users.json` предполагает наличие прав на запись и предварительную настройку окружения.
|
||||
|
||||
#### create_user(user: UserCreate) → UserResponse
|
||||
|
||||
|
|
|
|||
|
|
@ -1,38 +1,41 @@
|
|||
# storage.session_storage
|
||||
|
||||
### *class* storage.session_storage.SessionStorage(file_path: str = '/etc/gonets/sessions.json')
|
||||
### *class* storage.session_storage.SessionStorage(file_path: str | None = None)
|
||||
|
||||
Bases: `object`
|
||||
|
||||
Хранилище сессий пользователей в JSON-файле.
|
||||
|
||||
Назначение:
|
||||
: Лёгкое файловое хранилище для сессионных токенов, сопоставленных с
|
||||
client_id (например, IP клиента). Предназначено для сред без БД и
|
||||
persistent-кэшей. Обеспечивает базовые операции и авто-очистку протухших
|
||||
сессий.
|
||||
|
||||
- Лёгкое файловое хранилище сессионных токенов, сопоставленных с `client_id` (например, IP клиента).
|
||||
- Предназначено для сред без БД и persistent-кэшей; обеспечивает простые операции и автоочистку истёкших сессий.
|
||||
|
||||
Формат данных:
|
||||
: {
|
||||
: “sessions”: {
|
||||
: “<session_id>”: {
|
||||
: “username”: str,
|
||||
“token”: str,
|
||||
“client_id”: str,
|
||||
“created_at”: ISO8601 str,
|
||||
“expiry”: ISO8601 str
|
||||
<br/>
|
||||
}
|
||||
<br/>
|
||||
|
||||
```default
|
||||
{
|
||||
"sessions": {
|
||||
"<session_id>": {
|
||||
"username": str,
|
||||
"token": str,
|
||||
"client_id": str,
|
||||
"created_at": ISO8601 str,
|
||||
"expiry": ISO8601 str
|
||||
},
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Политика TTL:
|
||||
: Каждая сессия действует 30 минут. При создании/чтении/удалении вызывается
|
||||
clean_expired_sessions() для удаления протухших записей.
|
||||
|
||||
- Каждая сессия действует 30 минут; метод `clean_expired_sessions` удаляет записи с истёкшим сроком.
|
||||
|
||||
Ограничения:
|
||||
: - Нет файловых блокировок: в многопроцессных конфигурациях возможны гонки.
|
||||
- Размещение по умолчанию /etc/gonets/sessions.json требует прав на запись.
|
||||
|
||||
- Отсутствуют файловые блокировки — в многопроцессной среде возможны гонки.
|
||||
- Путь по умолчанию `/etc/gonets/sessions.json` требует прав на запись.
|
||||
|
||||
#### clean_expired_sessions()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue