chore: baseline plantilla-proyectos como base del CRM
This commit is contained in:
70
docs/a76.json
Normal file
70
docs/a76.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"context": {
|
||||
"project_name": "Anexo76",
|
||||
"description": "Aplicación SaaS para gestión de comercio exterior conforme a Anexos 24, 30 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."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user