Every InnovaTech SOA microservice is a standalone Spring Boot application configured through anDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Nelsoncg98/InnovaTech/llms.txt
Use this file to discover all available pages before exploring further.
application.yml file in its src/main/resources directory. This page collects all service configurations in one place so you can verify port allocations, check connection strings, and understand how the gateway routing, service discovery, and database settings fit together before starting local development.
Port Allocation Summary
Each microservice and infrastructure component occupies a fixed port. Ensure none of the following ports are already in use on your machine before launching the stack.| Service | Port | Protocol |
|---|---|---|
api-gateway | 8080 | HTTP (reactive, non-blocking) |
eureka-server | 8761 | HTTP |
servicio-inventario | 8081 | HTTP |
servicio-ventapos | 8082 | HTTP |
servicio-catalogo | 8084 | HTTP |
| PostgreSQL (host) | 5433 | TCP |
| MongoDB | 27017 | TCP |
API Gateway Configuration
The API Gateway (api-gateway) is built on Spring Cloud Gateway with a reactive, non-blocking engine (Spring WebFlux). It is the single entry point for all frontend traffic and is responsible for routing requests to the correct downstream service. It also handles global CORS policy so that browser clients do not need per-service CORS configuration.
Key configuration sections:
server.port: 8080— all frontend requests target this port.spring.cloud.gateway.globalcors— allows all origins, methods (GET, POST, PUT, DELETE), and headers. Suitable for development; restrict in production.spring.cloud.gateway.routes— three static routes match path prefixes and forward to the appropriate service onlocalhost.management.endpoints.web.exposure— exposes thehealthandinfoActuator endpoints for monitoring.
api-gateway/src/main/resources/application.yml:
| Route ID | Path Prefix | Forwarded To |
|---|---|---|
ruta-catalogo | /api/v1/catalogo/** | http://localhost:8084 |
ruta-orquestador-pos | /api/v1/ventas-pos/** | http://localhost:8082 |
ruta-inventario | /api/v1/inventario/** | http://localhost:8081 |
Eureka Server Configuration
The Eureka Server provides a service registry for the platform. In the current development setup it runs in standalone mode — it does not attempt to register itself with another Eureka instance (register-with-eureka: false) and does not fetch the registry from a peer (fetch-registry: false).
Full eureka-server/src/main/resources/application.yml:
eureka.client.service-url.defaultZone will appear in this dashboard.
Inventory Service Configuration
servicio-inventario manages the Kardex stock records with logical warehouse segregation between web and physical channels. It connects to PostgreSQL and registers with Eureka.
Full servicio-inventario/src/main/resources/application.yml:
show-sql: true— all generated SQL statements are printed to the console. Useful for debugging; disable in production to reduce log noise.ddl-auto: update— Hibernate automatically creates or alters tables to match the JPA entity model on startup.prefer-ip-address: true— the service registers its IP address (rather than hostname) with Eureka, which is more reliable in Docker and containerised environments.
Catalog Service Configuration
servicio-catalogo manages product and pricing data backed by MongoDB. It also exposes an interactive Swagger UI powered by SpringDoc OpenAPI, making the API directly testable from the browser.
Full servicio-catalogo/src/main/resources/application.yml:
servicio-catalogo running, the following URLs are available:
| URL | Description |
|---|---|
http://localhost:8084/swagger-ui.html | Interactive Swagger UI |
http://localhost:8084/api-docs | Raw OpenAPI JSON specification |
Eureka Client Registration
All client services (currentlyservicio-inventario; the pattern is repeated for servicio-ventapos and servicio-clientes) use a consistent block of Eureka client settings:
defaultZonepoints every client at the standalone Eureka server on port8761.prefer-ip-address: trueensures the service registers its numeric IP address, which avoids hostname-resolution issues in mixed local/container environments.
All Nested YAML keys are flattened with underscores and uppercased. This makes it straightforward to inject configuration in CI/CD pipelines or container orchestration platforms without rebuilding the application.
application.yml files follow the standard Spring Boot externalized configuration format. Any property can be overridden at runtime without modifying the file by setting a corresponding environment variable using Spring Boot’s SPRING_ prefix convention. For example, to override the datasource URL: