Repair docs (html, md). Update docstrings
This commit is contained in:
parent
e264750187
commit
6a4ad48577
125 changed files with 3706 additions and 4913 deletions
|
|
@ -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