Skip to main content

Una aplicación reutilizable de Django para auditar modelos automáticamente con integración con Kafka.

Project description

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_BROKER_URL = '35.212.2.202:9092'  # Replace with your Kafka broker URL
    KAFKA_TOPIC_LOGS = 'audit_logs'      # Topic for log auditing
    KAFKA_TOPIC_ERRORS = 'audit_errors'  # Topic for error logging
    KAFKA_TOPIC_CONFIG = 'audit_config'  # Topic for configuration auditing
    
  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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unemi-audi-kafka-1.1.8.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

unemi_audi_kafka-1.1.8-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file unemi-audi-kafka-1.1.8.tar.gz.

File metadata

  • Download URL: unemi-audi-kafka-1.1.8.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.10

File hashes

Hashes for unemi-audi-kafka-1.1.8.tar.gz
Algorithm Hash digest
SHA256 b4307728e0a95b9417a7450dedf48083f0e54b8778f2c12362848c4a51725900
MD5 d052a33ff2b664f5dff7db1271b9957c
BLAKE2b-256 0a6f613e1c57c803e2ab7660315ecd527a6afa25905e9e7210f5efc4772e4452

See more details on using hashes here.

File details

Details for the file unemi_audi_kafka-1.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for unemi_audi_kafka-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 b287216c117361d10da37e23ec1431171787a49334101d375799e1273b763971
MD5 26702e27a06e13b7ff1f67a8ed9f2046
BLAKE2b-256 586b09995a3369bb6c6f90e4c72815ebab4535fd1bc7c9974d1ead1c48a923e0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page