-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Feature
2 / 22 of 2 issues completed
Copy link
Labels
MEDIUM ISSUEThis label will be used only for issues considered medium due to their level of complexity.This label will be used only for issues considered medium due to their level of complexity.enhancementNew feature or requestNew feature or request
Description
Descripción
Para garantizar el rendimiento en un entorno Serverless (Vercel) y evitar saturar las conexiones a MongoDB, necesitamos implementar una gestión de conexión eficiente. Además, requerimos un mecanismo manual y seguro para inicializar los índices de la base de datos sin afectar la latencia de las peticiones normales.
Estrategia Técnica
- Conexión: Implementar el patrón Singleton usando una variable global para reutilizar la conexión en "Warm Starts".
- Índices: Centralizar la definición de índices en un script y exponerlo vía API protegida (Admin) para ejecutarlo solo cuando sea necesario (deployments o cambios de esquema).
Subissues
- Crear función de conexión DB y obtencion de DB con patrón Singleton
- Implementar lógica de Índices y Endpoint de Inicialización seguro
Notas de Implementación
- Índices requeridos:
users: unique (telegram_id).tasks: index (assigned_to,status,due_date).reminders: index (remind_at).score_logs: index compuesto (user_telegram_id,timestamp).resources: index text (title).
- Seguridad: El endpoint debe requerir un token/secret en el header para evitar ejecuciones públicas.
Criterios de Aceptación
- La función
get_databasereutiliza la conexión si ya existe en el contexto global. - El endpoint de índices devuelve 200 OK y crea/actualiza los índices en Mongo DB.
- El endpoint está protegido y rechaza peticiones sin credenciales.
Sub-issues
Metadata
Metadata
Assignees
Labels
MEDIUM ISSUEThis label will be used only for issues considered medium due to their level of complexity.This label will be used only for issues considered medium due to their level of complexity.enhancementNew feature or requestNew feature or request