Skip to content

🚀 Roadmap v0.2.0 — api-inspector #1

Description

@AlbertiJ

🚀 Roadmap v0.2.0 — api-inspector
📋 Backlog ordenado por prioridad
🔴 Prioridad alta (lo que el usuario ya está necesitando)
[ ] Agregar web con Flask

Por qué: el cliente no siempre quiere usar CLI. Necesita una URL → apretar un botón → bajar el informe.

Tareas:

Crear web.py con Flask
Formulario: input de URL, responsable, cliente
Botón "Inspeccionar" que llama al motor de core.py
Renderizar el informe en pantalla (HTML)
Botones de descarga para JSON/CSV/HTML
Endpoint POST /auditar y GET /
Tests del flow web (con flask.testing)

Estimación: 1 sprint corto
[ ] Modo "comparar 2 auditorías"

Por qué: el cliente te dice "antes me auditaste X, ahora te paso Y, qué cambió?". Necesitás diff de estructuras y PII.

Tareas:

Flag --comparar-con <hash_anterior> en CLI
Cargar auditoría previa desde salidas/
Diff de campos: nuevos / eliminados / cambió tipo
Diff de PII: aparecieron / desaparecieron hallazgos
Diff de faltantes
Sección "Cambios desde última auditoría" en el informe
Test: misma API en 2 momentos → diff coherente

Estimación: 1 sprint
🟡 Prioridad media (extensibilidad)
[ ] Conector para Odoo

Por qué: muchos clientes PyME usan Odoo como backend. Su API es XML-RPC, no REST JSON.

Tareas:

Detectar Odoo por headers o path (/xmlrpc/2/)
Módulo inspector/connectors/odoo.py con auth opcional
Reutilizar el motor de inspección
Tests con un Odoo mockeado

Estimación: 1 sprint
[ ] Conector para WordPress (WP REST API)

Por qué: hay PyMEs con WP y quieren migrar a otro CMS.

Tareas:

Detectar WP por headers o path (/wp-json/wp/v2/)
Módulo inspector/connectors/wp.py
Detectar paginación de WP (X-WP-Total, X-WP-TotalPages)
Tests

Estimación: medio sprint
[ ] Conector para ERPNext / Frappe

Por qué: abierto, popular en PyMEs, también es REST.

Tareas:

Detectar por path (/api/resource/)
Módulo inspector/connectors/erpnext.py
Soporte de autenticación por token (opcional, no rompe el modelo opensource)
Tests

Estimación: medio sprint
[ ] Soporte de HTML y CSV como input

Por qué: algunas APIs devuelven HTML (scraping-style) o CSV en vez de JSON.

Tareas:

Refactor _descargar() en core.py para detectar formato por content-type
Parser HTML con html.parser (stdlib)
Parser CSV con csv (stdlib)
Convertir a estructura tipo JSON antes de inspeccionar
Tests con un fixture HTML y uno CSV

Estimación: medio sprint
🟢 Prioridad baja (nice to have)
[ ] Regla de "consentimiento"

Por qué: detectar si el JSON del cliente tiene flag de consentimiento / acepto términos, para registrarlo en el informe.

Tareas:

Buscar campos: consentimiento, acepta_terminos, gdpr_consent, consent
Sección "Consentimiento registrado" en el informe
Test

Estimación: pocas horas
[ ] Firma digital PGP opcional

Por qué: además del hash, poder firmar el informe con PGP para que sea prueba legal.

Tareas:

Flag --firmar-pgp <key_id> en CLI
Usar gpg por subprocess (no requiere lib nueva)
Sección "Firmado por" en el HTML
Test con clave PGP de prueba

Estimación: medio sprint
[ ] Dashboard HTML interactivo

Por qué: en vez de un HTML estático, un mini-dashboard con filtros y búsqueda.

Tareas:

Sección colapsable de PII por nivel
Buscador de campos
Filtro por categoría de sensible
Gráfico de torta con resumen

Estimación: 1 sprint
💡 Ideas para v0.3.0+ (futuro)

Plugin system: que el usuario cargue sus propios patrones_deteccion.json desde otra ruta
Caché de auditorías: si la URL no cambió, reutilizar la auditoría previa
Modo "watch": auditar la misma URL cada X tiempo y alertar si cambia
Soporte para GraphQL (introspección del schema)
Soporte para SOAP / WSDL

🐛 Bugs conocidos

Ninguno reportado todavía.
📊 Métricas objetivo para v0.2.0

Cobertura de tests: 90%+
Tiempo de auditoría: < 5s para APIs de < 1000 registros
Tamaño del HTML generado: < 100KB
0 dependencias externas (mantener)

🤝 Cómo contribuir

1.Fork + PR
2.Issues con label: bug, enhancement, connector, docs
3.Para sumarte al proyecto, abrí un issue con label colaborar

Mantenido por AlbertiJ — herramienta forense para auditorías de migración de datos en PyMEs que usan open source.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions