ValianTech IAM Core API es un sistema modular de gestión de identidad y acceso (IAM) diseñado para PYMEs, startups y entornos SaaS multi-tenant.
Ofrece un backend seguro, escalable y extensible para autenticación, autorización y administración de usuarios y empresas.
- 🔑 Autenticación basada en JWT + Refresh Tokens
- 🔒 Login en dos pasos y control de sesiones activas
- 🧩 Gestión completa de usuarios, roles y empresas
- ✉️ Flujo de invitaciones para incorporación de usuarios
- 🧠 Auditoría detallada y registro de eventos críticos
- ⚙️ Integración configurable con proveedores externos (Mailtrap, SendGrid, etc.)
- 🌎 Perfiles de ejecución:
local,develop,qa,prod
- Java 17, Spring Boot 3
- PostgreSQL + Flyway (migraciones)
- Redis (sesiones y tokens)
- Docker (contenedorización y despliegue)
- Gradle o Maven (compilación flexible)
- Docker y Docker Compose instalados
- Acceso a PostgreSQL y Redis (local o remoto)
- Variables de entorno configuradas correctamente (ver abajo)
Crea un archivo .env o define las variables de entorno equivalentes:
DATASOURCE_JDBC_URL=jdbc:postgresql://host.docker.internal:5432/iamdb
DATASOURCE_USERNAME=iamuser
DATASOURCE_PASSWORD=secretpassword
JWT_SECRET_VALUE=tu_secreto_jwt
SPRING_PROFILES_ACTIVE=docker
REDIS_HOST=host.docker.internal
REDIS_PORT=6379
REDIS_PASSWORD=redispass
REDIS_IS_CLUSTER=false
RATE_LIMIT_WHITELIST=10.0.0.1,200.1.2.3
INVITATION_REGISTRATION_URL_BASE=https://yourdomain.com/invitation
INVITATION_TOKEN_EXPIRY_DAYS=1
LOGGING_SENSITIVE_FIELDS=currentPassword,newPassword,passwordCon Maven (JVM build):
./mvnw clean package -DskipTests
docker build -t valiantech-iam-core .Con Gradle (bootBuildImage):
./gradlew clean bootBuildImageversion: '3.8'
services:
postgres:
image: postgres:15
environment:
POSTGRES_DB: iamdb
POSTGRES_USER: iamuser
POSTGRES_PASSWORD: secretpassword
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7
command: ["redis-server", "--requirepass", "redispass"]
ports:
- "6379:6379"
volumes:
pgdata:Ejecuta:
docker compose up -ddocker run --rm \
-e DATASOURCE_JDBC_URL=jdbc:postgresql://host.docker.internal:5432/iamdb \
-e DATASOURCE_USERNAME=iamuser \
-e DATASOURCE_PASSWORD=secretpassword \
-e JWT_SECRET_VALUE=tu_secreto_jwt \
-e SPRING_PROFILES_ACTIVE=docker \
-e REDIS_HOST=host.docker.internal \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD=redispass \
-e LOGGING_SENSITIVE_FIELDS=currentPassword,newPassword,password \
-p 8080:8080 \
valiantech-iam-coreEste proyecto está bajo la licencia MIT, lo que permite su uso, modificación y distribución con fines personales o comerciales, siempre que se mantenga el aviso de copyright.
MIT License
Copyright (c) 2025 Ian Cárdenas
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Las contribuciones son bienvenidas.
Si deseas colaborar:
- Haz un fork del repositorio.
- Crea una rama (
feature/nueva-funcionalidad). - Realiza tus cambios y abre un Pull Request.
- Incluye una breve descripción y evidencias si aplica.
Para consultas o soporte: iancardenasc@techvalian.com