Files
plantillas-proyectos/a76.json
acazares 2a10d7d267 feat: Add frontend and backend initialization scripts, implement Keycloak and PostgreSQL setup
- Implemented SvelteKit frontend with authentication callback handling.
- Created demo routes and paraglide localization functionality.
- Added health check and entrypoint scripts for backend services.
- Established PostgreSQL and Keycloak initialization scripts with health checks.
- Introduced models for database schema using SQLAlchemy.
- Configured Vite and SvelteKit for development and testing environments.
- Added health check script to verify service statuses and resource usage.
- Created Docker entrypoint scripts for seamless service startup.
2025-10-19 00:14:06 -05:00

71 lines
3.4 KiB
JSON

{
"context": {
"project_name": "Anexo76",
"description": "Aplicación SaaS para gestión de comercio exterior conforme a Anexos 24, 31 y 22 del SAT.",
"business_goal": "Ofrecer una plataforma multi-tenant para maquilas, IMMEX y agentes aduanales que permita manejar inventarios, pedimentos y facturas de importación/exportación con control de licencias y cumplimiento normativo."
},
"architecture": {
"frontend": {
"framework": "SvelteKit",
"auth_integration": "keycloak-js",
"ui_goal": "Dashboard moderno, responsivo y rápido para usuarios empresariales."
},
"backend": {
"framework": "FastAPI",
"auth": "Keycloak (OpenID Connect)",
"db_model": "Hybrid multi-tenant",
"shared_db": "Base de datos central para clientes pequeños y medianos",
"dedicated_db": "Bases de datos independientes para clientes grandes o con alta operación",
"features": [
"Conexión dinámica a BD según tenant",
"Middleware para validar licencias y tenants",
"APIs RESTful versionadas (v1, v2...)",
"Separación de capas: models (ORM), dto (Pydantic), service y routes"
],
"module_structure": {
"pattern": "backend/v1/modules/{module_name}/",
"files": {
"models.py": "Definición ORM con SQLAlchemy",
"dto.py": "Definición de Pydantic DTOs para entrada/salida de datos (reemplaza schemas.py)",
"service.py": "Lógica de negocio y validaciones específicas del módulo",
"routes.py": "Endpoints FastAPI que usan los DTOs y servicios"
},
"naming_convention": {
"models": "Representan entidades persistentes (Base de datos)",
"dto": "Data Transfer Objects para transporte entre capas y API",
"service": "Capa de negocio (domain logic)",
"routes": "Exposición HTTP / API layer"
},
"reasoning": "Se utiliza dto.py en lugar de schemas.py para reflejar un enfoque DDD y estilo arquitectónico similar a NestJS, manteniendo compatibilidad total con FastAPI y Pydantic."
}
},
"auth_system": {
"provider": "Keycloak",
"multi_tenant_model": "Un Realm por cliente (tenant)",
"roles": ["admin", "user", "auditor", "system"],
"license_validation": "Middleware que verifica licencia y plan activo antes de procesar cada request"
}
},
"license_management": {
"strategy": "Control centralizado en core_db",
"table_structure": {
"tenant_id": "int",
"plan": "string",
"max_users": "int",
"expires_at": "datetime",
"status": "active|expired|pending"
},
"upgrade_flow": "El cliente puede escalar de BD compartida a BD dedicada manteniendo mismo tenant_id y realm."
},
"dev_ops": {
"containerization": "Docker / Docker Compose",
"orchestration": "Kubernetes (futuro)",
"monitoring": ["Prometheus", "Grafana"],
"ci_cd": "GitHub Actions o GitLab CI"
},
"prompt_usage": {
"instruction": "Cuando uses este JSON, pide a la IA que genere o revise la arquitectura, código base o estrategia de despliegue respetando el modelo híbrido multi-tenant con Keycloak y FastAPI.",
"example_request": "Diseña un flujo de autenticación multi-tenant con Keycloak y FastAPI que detecte automáticamente el tenant y seleccione la base de datos correcta. Usa dto.py en lugar de schemas.py para mantener una arquitectura estilo DDD."
}
}