Setup del entorno¶
Guía para levantar el ecosistema en local: primero el backend, después la terminal apuntándole. Si recién entrás, hacé este recorrido una vez de punta a punta antes de tocar código.
Antes de empezar
Leé Arquitectura y El monolito modular. Vas a entender mucho mejor qué estás levantando y por qué el mvn test "raro" que rompe el build en realidad es tu amigo (el guardrail).
1. Backend (AutoCompraMod)¶
Requisitos¶
- JDK 21 (el enforcer fuerza
[21,22); con otra versión el build falla a propósito). - Maven.
- Acceso a las bases SQL Server que usan los módulos (
TsAutoCompra,TipreRetail,TsPromos,TsEnvases, y la de observabilidad). Sin ellas, podés correr los tests de modularidad pero no el runtime completo. - Node lo instala solo el build de Maven (no hace falta tenerlo global) cuando construís el Cockpit.
Build y guardrail¶
cd c:/Work/Tipre/AutoCompraMod
# Compila + corre la suite + verifica boundaries de módulos. NO necesita DB.
mvn test
mvn test corre ModularityTests.verify(): si tu cambio cruza una frontera entre módulos o crea un ciclo, el build se rompe acá. Eso es deseable. Ver el guardrail.
Levantar el backend¶
El backend queda en :8080 con context-path /autocompras/v1. Probá un healthcheck:
curl http://localhost:8080/autocompras/v1/tickets/dummy
curl http://localhost:8080/autocompras/v1/actuator/health
Seguridad en dev¶
Por defecto app.security.enabled=false: todo permitAll (verás un WARN en el log recordándolo). Está bien para desarrollar contra la terminal. Para probar la política de roles, poné enabled=true y configurá el resource server JWT/Keycloak. Ver Backend → Seguridad.
Cockpit¶
El panel se construye con el profile frontend de Maven y queda servido por el backend en /autocompras/v1/cockpit/. Para iterar el front con hot-reload, podés correr Vite aparte dentro de cockpit-ui/ (proxyea a localhost:8080):
2. Terminal (TiprePOS)¶
Requisitos¶
- Flutter
>=3.35.6y Dart>=3.0.0 <4.0.0. - Para tarjeta: el daemon ApiCard corriendo (por defecto
localhost:50001). Sin él, QR y Point Smart funcionan igual.
Instalar y correr¶
cd c:/Work/Tipre/TiprePOS
flutter pub get
# La terminal está pensada para desktop
flutter run -d windows
# o
flutter run -d linux
Primer arranque: configuración y registro¶
La terminal arranca sin config, así que el router te lleva por el gate (ver POS → Routing):
/configuration— cargáserver,port,ssly el código de terminal apuntando a tu backend local (localhost:8080, sin SSL)./register— la terminal se registra contra el backend y baja suTerminalConfig./home— si todo salió bien, quedás en el portal y podés escanear, armar un ticket y probar un pago.
La config se persiste en Isar (auto_compra_db), así que el segundo arranque ya entra derecho a /home.
Compilar¶
3. Verificar que se hablan¶
Con backend en :8080 y terminal configurada apuntándole:
- En el log de la terminal deberías ver el polling de
/status(cada 60 s sano). - Un
openTicketdesde la terminal debe devolver unTicketDtocon estadoOPEN. - En el Cockpit (
/autocompras/v1/cockpit/), tu terminal debería aparecer online en el panel de terminales (heartbeat dentro de la ventana de ~90 s).
Si la terminal no conecta
- ¿
sslbien? UnHandshakeExceptionen el log es mismatch http/https. - ¿El backend está en
:8080con context-path/autocompras/v1? - ¿El healthcheck
curl .../tickets/dummyresponde?