Este repositorio contiene la implementación de un sistema de autenticación basado en API Keys para servicios de Titvo. Proporciona una base para configurar y gestionar la autenticación en proyectos que utilizan AWS Lambda con API Gateway.
- Gestión de API Keys para autenticación
- Configuración automática de autenticación
- Integración con servicios de AWS
- Compatible con NestJS
Important
En windows se DEBE usar Windows Subsystem for Linux 2 (WSL2)
.
├── auth # Módulo de autenticación
│ ├── src # Código fuente del servicio de autenticación
│ │ ├── app # Lógica de aplicación
│ │ └── core # Entidades y repositorios
├── aws # Recursos de AWS
│ ├── cloudwatch # Configuración de CloudWatch
│ ├── lambda # Configuración de Lambda
│ └── parameter # Parámetros de AWS
├── setup # Scripts de configuración inicial
├── shared # Código compartido entre módulos
├── src # Código fuente principal
├── localstack # Configuración para desarrollo local
├── .vscode # Configuración de VS Code
├── package.json # Dependencias del proyecto
├── serverless.hcl # Configuración de Serverless
├── terragrunt.hcl # Configuración de Terragrunt
├── tsconfig.json # Configuración de TypeScript
└── localstack.hcl # Configuración adicional de LocalStackPara configurar la autenticación, se puede utilizar el endpoint disponible que se muestra en el archivo auth.http:
POST /auth/setup
Content-Type: application/json
X-API-Key: {{apiKey}}
{
"source": "cli",
"args": {
"user_id": "{{user_id}}"
}
}Para el desarrollo local, se utiliza LocalStack. La configuración se encuentra en el archivo localstack.hcl.
- NestJS para la implementación del servicio
- AWS Lambda como entorno de ejecución
- DynamoDB para almacenamiento de datos
- API Gateway para exposición del servicio
Opcionalmente se puede crear un archivo common_tags.json con las etiquetas necesarias:
{
"Project": "Titvo Security Scan",
"Customer": "Titvo",
"Team": "Area Creacion"
}- Crear archivo .env con las variables necesarias descritas arriba
export AWS_ACCESS_KEY_ID="tu_access_key"
export AWS_SECRET_ACCESS_KEY="tu_secret_key"
export AWS_DEFAULT_REGION="us-east-1"
export AWS_STAGE="prod"
export PROJECT_NAME="titvo-auth-setup" # Opcional si quiere mantener los valores por defecto. Esto se usará como prefijo para los recursos
export PARAMETER_PATH="/titvo/security-scan" # Opcional si quiere mantener los valores por defecto. Esto se usará como prefijo para los parámetros
export BUCKET_STATE_NAME="titvo-auth-setup-terraform-state" # Opcional, si no se especifica se usará el nombre del proyecto. Por ejemplo: titvo-security-scan-terraform-stateImportant
PARAMETER_PATHdeben tener los mismos valores que se usarion en el proyecto titvo-security-scan-infra-aws
- Desplegar el proyecto
npm install
npm run build
cd aws
terragrunt run-all apply --terragrunt-non-interactive --auto-approveEste proyecto está licenciado bajo Apache License 2.0.