Skip to main content

Unemi Audit Kafka

unemi-audi-kafka es una aplicacion reutilizable de Django que audita automaticamente los cambios en los modelos (creacion, actualizacion, eliminacion) en todos los modelos de tu proyecto Django. Se integra con Kafka para el envio de logs y permite una auditoria configurable para los modelos importantes. La aplicacion captura metadatos utiles como el usuario que realizo los cambios, la IP de la solicitud, la URL y mas.

Caracteristicas

  • Auditoria Automatica: Registra automaticamente todos los modelos de Django para el registro de auditoria.
  • Integracion con Kafka: Utiliza confluent_kafka para enviar los registros de auditoria a los temas de Kafka.
  • Auditoria de Configuracion: Registra manualmente modelos importantes para la auditoria de configuracion.
  • Middleware de Contexto de Usuario: Captura informacion sobre el usuario, la IP de la solicitud y el agente de usuario a traves de middleware.
  • Personalizable: Puedes extender o sobrescribir middleware, y controlar el comportamiento del productor de Kafka.

Instalacion

  1. INSTALAR la libreria usando pip:

    pip install unemi-audi-kafka
    
  2. Agregar la libreria en Django INSTALLED_APPS:

    En tu settings.py, configura las aplicaciones:

    INSTALLED_APPS = [
       # Other installed apps
       'audit_logger',
    ]
    
  3. Agregar el MIDDLEWARE:

    En tu settings.py, configura las middlewares:

    MIDDLEWARE = [
       # Other middlewares
       'audit_logger.middlewares.AuditUserMiddleware',
    ]
    
  4. Agregar CONFIGURACIONES DE KAFKA:

    En tu settings.py, configurar los Kafka broker y topics:

    KAFKA_BROKERS_URLS = ['35.212.2.202:9092']
    
  5. Agregar REQUEST en el LOGIN:

    En tu decorators_helper.py, agregar en la funcion de login_required:

    from audit_logger.middlewares import set_current_request
    
    def login_required(f):
       def new_f(view, request):
         # code for decoded token
         set_current_request(request)
         return f(view, request)
    

Opcional auditar tablas de configuracion

Si deseas guardar las configuraciones de tu aplicacion, la puedes separar de los otras tablas con:

En tu models.py, agregar modelo manualmente:

    from audit_logger import AuditLogger

    class Configuracion(ModelBase):
    nombre = models.CharField(unique=True, max_length=100, verbose_name=u'Nombre')

    # Registrar Configuracion
    AuditLogger.register_auditoria_config(Configuracion)

O también podrías auditarlos en un archivo aparte para saber que modelos se encuentran allí. crear un archivo audit_config_models.py ubicado en la misma carpeta donde se encuentra el archivo settings.py

   # audit_config_models.py

    # Importa los modelos que deseas auditar
    from myapp.models import MyModel1, MyModel2
    from anotherapp.models import AnotherModel

    # Define una lista con los modelos que quieres auditar
    CONFIG_MODELS = [
    MyModel1,  # Modelo 1 de la aplicación myapp
    MyModel2,  # Modelo 2 de la aplicación myapp
    AnotherModel,  # Modelo de otra aplicación
    ]

Opcional auditar tablas de manejo de errores

Si deseas auditar errores críticos en algún punto del código, lo puedes hacer con la excepción dentro de un catch.

   from audit_logger import AuditLogger

    try:
        # CODIGO RIESGOSO
    except Exception as ex:
        AuditLogger.register_auditoria_errors(ex)

Metadata

Release files for unemi-audi-kafka 1.2.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unemi-audi-kafka 1.2.6
File Size Uploaded Provenance Actions
unemi-audi-kafka-1.2.6.tar.gz 12.0 kB Without provenance Details for unemi-audi-kafka-1.2.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for unemi-audi-kafka 1.2.6
File Interpreter ABI Platform Actions
unemi_audi_kafka-1.2.6-py3-none-any.whl Python 3 none any Details for unemi_audi_kafka-1.2.6-py3-none-any.whl

Total release size: 25.3 kB

Release files / unemi-audi-kafka-1.2.6.tar.gz

Download URL unemi-audi-kafka-1.2.6.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
156133e29200d37f3fa3555c0e528413f72c7273d97a8e40c7a698eb6de78dda
BLAKE2b-256 checksum
How to use checksums
7d208cf0547253c7fbc218d54d26bc89af64c6a55ae4ad33d2bfa6c599248527
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.10

Release files / unemi_audi_kafka-1.2.6-py3-none-any.whl

Download URL unemi_audi_kafka-1.2.6-py3-none-any.whl
Size 13.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c92b7e5979cd0c3f6a6fd26f601fd1253f02aaadd834b7f566f0a59001b50114
BLAKE2b-256 checksum
How to use checksums
31777dbca17c0f8681ca58bc89f1bc6a00d8974bf5466d1b27b878d55c302e7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.10

Security for unemi-audi-kafka 1.2.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.2.6 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page