Metadata-Version: 2.1
Name: django-ip-debug
Version: 0.1.4
Summary: Middleware que habilita DEBUG solo para IPs Autorizadas en Proyectos Django
Home-page: https://github.com/oguerrero/django-ip-debug
Download-URL: https://github.com/oguerrerog/django-ip-debug/archive/refs/tags/v0.1.4.tar.gz
Author: Oscar Guerrero G.
Author-email: oguerrerog@gmail.com
License: MIT license
Keywords: debug django
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: Spanish
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Django>=3.0
Requires-Dist: ipaddress

# Django IP Debug Middleware
![](https://img.shields.io/github/created-at/oguerrerog/django-ip-debug) ![](https://img.shields.io/github/last-commit/oguerrerog/django-ip-debug) ![](https://img.shields.io/github/stars/oguerrerog/django-ip-debug?style=flat-square)

**Middleware** que habilita el modo **DEBUG** en Django **EXCLUSIVAMENTE** a **ciertas IPs o rangos de IPs** definidos en **settings.py**, Ãºtil para anÃ¡lisis o auditorÃ­a para despliegues de desarrollo y/o producciÃ³n de proyectos Django.

Esto evita la tarea de modificar la configuraciÃ³n del proyecto cada vez que se necesite habilitar o deshabilitar el modo DEBUG, lo que permite a los desarrolladores y equipos de auditorÃ­a o pruebas acceder a informaciÃ³n de depuraciÃ³n detallada y resolver problemas de forma eficiente, al mismo tiempo que se mantiene la seguridad del sitio web al restringir el acceso a esta informaciÃ³n **solo a direcciones IP confiables**.

## ðŸ¤“ Advertencia
Modificar el valor de DEBUG en tiempo de ejecuciÃ³n no es una prÃ¡ctica recomendada. DEBUG en Django estÃ¡ pensado para ser una configuraciÃ³n estÃ¡tica y se espera que su valor se establezca al inicio de la aplicaciÃ³n. Cambiarlo en tiempo de ejecuciÃ³n puede llevar a comportamientos inesperados.

Considerar el uso de esta herramienta solo para efectos de depuraciÃ³n, integraciones que necesiten un sitio en producciÃ³n, testing, etc. 

## ðŸ”Ž CaracterÃ­sticas
- Habilita o deshabilita el modo DEBUG segÃºn la IP del cliente.
- Soporta IPs individuales y rangos de IPs usando notaciÃ³n CIDR.
- FÃ¡cil integraciÃ³n con settings de Django.

## ðŸ’¡ Requerimientos
- Django 3.0 o superior
- Python 3.0 o superior

## ðŸ“² InstalaciÃ³n
1) Instala la librerÃ­a desde pip:

```bash
pip install django-ip-debug
```

2) Agrega la ruta del Middleware a tu archivo **settings.py**:
```python
MIDDLEWARE = [
    'ip_debug.middleware.IPDebugMiddleware',
    # Otros middlewares...
]
```

3) Define las variables a tu archivo **settings.py**: 
```python
# Establecer DEBUG en False
DEBUG = False

# Habilita o deshabilita el middleware IPDebugMiddleware (django-ip-debug)
DEBUG_IP_ENABLED = True

# Lista de IPs Permitidas, puedes agregar rangos de IP con notaciÃ³n CIDR
DEBUG_IP_ALLOWED = ['127.0.0.1', '192.168.0.50', '192.168.1.0/24']

# Lista de Proxies autorizados, este ejemplo contiene la lista de Cloudflare
DEBUG_IP_TRUSTED_PROXIES = [
    '173.245.48.0/20',
    '103.21.244.0/22',
    '103.22.200.0/22',
    '103.31.4.0/22',
    '141.101.64.0/18',
    '108.162.192.0/18',
    '190.93.240.0/20',
    '188.114.96.0/20',
    '197.234.240.0/22',
    '198.41.128.0/17',
    '162.158.0.0/15',
    '104.16.0.0/13',
    '104.24.0.0/14',
    '172.64.0.0/13',
    '131.0.72.0/22'
]
```

## ðŸ“š Versiones
- 0.1.0: Primer Commit
- 0.1.1: Se implementa funciÃ³n para detectar correctamente la direcciÃ³n IP.
- 0.1.2: CorrecciÃ³n de Errores.
- 0.1.3: Mejoras Globales.
- 0.1.4: Mejoras para CIDR.

## ðŸ˜œ Agradecimientos
Agradecimientos especiales a [MercadoPago](https://github.com/mercadopago "MercadoPago"), ese maravilloso y extraordinario servicio de pagos en lÃ­nea que me "regalo" la emocionante oportunidad de enfrentarme a la "divertida" tarea de crear un entorno de producciÃ³n/desarrollo solo para integrarme con ellos (es inevitable). AsÃ­ que, lleno de "inspiraciÃ³n" (y tal vez un poco de desesperaciÃ³n), me lancÃ© a la emocionante aventura de crear mi primer middleware para poder "debugear" mi proceso de integraciÃ³n y mantener mi cordura intacta ante la preocupaciÃ³n de tener el DEBUG disponible para todo el mundo.

Desde hoy dormirÃ© en paz y sin despertar a medianoche preocupado tratando de recordar si deje en el setting.py el debug en "**False**". xD
