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.

View file

@ -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].

View file

@ -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*

View file

@ -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*

View file

@ -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]* *= {}*

View file

@ -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]*

View file

@ -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]*

View file

@ -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]

View file

@ -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

View file

@ -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()