Repair docs (html, md). Update docstrings
This commit is contained in:
parent
e264750187
commit
6a4ad48577
125 changed files with 3706 additions and 4913 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
SRV/docs/_build/markdown/.doctrees/index.doctree
vendored
BIN
SRV/docs/_build/markdown/.doctrees/index.doctree
vendored
Binary file not shown.
|
|
@ -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