Repair docs (html, md). Update docstrings

This commit is contained in:
parent e264750187
commit 6a4ad48577
125 changed files with 3706 additions and 4913 deletions

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