Metadata-Version: 2.4
Name: libaudit
Version: 4.2.0
Summary: Общая библиотека логирования изменений данных в БД
Author-email: BARS Group <education_dev@bars-open.ru>
Project-URL: Repository, https://stash.bars-open.ru/projects/EDUEO/repos/libaudit/
Classifier: Intended Audience :: Developers
Classifier: Environment :: Web Environment
Classifier: Natural Language :: Russian
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.1
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.0
Classifier: Framework :: Django :: 5.1
Classifier: Framework :: Django :: 5.2
Classifier: Framework :: Django :: 6.0
Classifier: Framework :: Django :: 6.1
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django
Provides-Extra: drf
Requires-Dist: djangorestframework; extra == "drf"
Requires-Dist: django-filter; extra == "drf"
Dynamic: license-file

# Библиотека логирования изменений данных в БД
## Подключение

requirements:

    libaudit>=4.1.0,<5.0

settings:

    INSTALLED_APPS = [
        ...
        'libaudit',
        ...
    ]

    MIDDLEWARE = [
        ...
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'libaudit.middleware.AuditLogMiddleware',
        ...
    ]

    LIBAUDIT = {
        'HANDLER': 'libaudit.handlers.database_table',  # или иной обработчик
        'CONTEXT_RESOLVER_CLS': 'my_app.audit.MyAuditContextResolver',
        'EXCLUDED_TABLES': (),  # опционально
        'SETUP_AUDIT_CONTEXT_FOR_READONLY_REQUESTS': False,  # опционально
	}

Реализовано два обработчика: [хранение в таблице](src/libaudit/handlers/database_table/README.md) и [отправка в стандартный вывод СУБД](src/libaudit/handlers/stdout/README.md).

Дополнения: [contrib](src/libaudit/contrib/README.md)

## Запуск тестов

Тесты запускаются через `tox`. В системе должен быть установлен [uv](https://docs.astral.sh/uv/).

Для корректного запуска тестов необходимы следующие значения переменных окружения в системе. Вместо `<login>` и `<password>` необходимо подставить данные от УЗ БАРС:

```bash
UV_INDEX="internal=http://<login>:<password>@nexus.py.bars.group/repository/pypi-all/simple"
UV_DEFAULT_INDEX="https://pypi.org/simple"
UV_INDEX_STRATEGY=unsafe-best-match
# Для docker 29+
TOX_DOCKER_GATEWAY=localhost
```

Чтобы не менять значения системных переменных, можно создать `.env` файл c переменными окружения и запускать команды через [python-dotenv](https://github.com/theskumar/python-dotenv/).

Установка `tox` с необходимыми зависимостями:
```bash
uv tool install tox --with tox-uv --with m3-tox-docker
```

Или с использованием `python-dotenv`:
```bash
dotenv run uv tool install tox --with tox-uv --with m3-tox-docker
```

Запуск тестов:
```bash
tox
```

Через `python-dotenv`:
```bash
dotenv run tox
```
