Configuración del Entorno

Configuración del Entorno

Este es el archivo de configuración para el perfil dev del proyecto ATC-API. Debe colocarse en src/main/resources/application.yaml.

⚠️

No subas este archivo al repositorio. Contiene credenciales de base de datos y tokens de servicios externos.

application.yaml — Perfil dev

spring:
  application:
    name: atc-api
  devtools:
    restart:
      poll-interval: 1s
      quiet-period: 400ms
      log-condition-evaluation-delta: true
      enabled: true
  profiles:
    active: dev
  threads:
    virtual:
      enabled: true
  flyway:
    schemas: dbo
    defaultSchema: dbo
    validateMigrationNaming: true
  session:
    store-type: redis
    redis:
      namespace: atc:spring:session
  datasource:
    url: jdbc:sqlserver://localhost:1433;databaseName=aduasis_atc;encrypt=true;trustServerCertificate=true
    username: sa
    password: Hola1234
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    hikari:
      maximum-pool-size: 30
      minimum-idle: 10
      connection-timeout: 30000
      idle-timeout: 600000
      max-lifetime: 1800000
      leak-detection-threshold: 60000
      pool-name: HikariPool-ATC
      auto-commit: false
      validation-timeout: 5000
      # Pool Size = ((Core Count × 2) + Disk Spindles)
  jpa:
    open-in-view: false
    hibernate:
      ddl-auto: validate
    properties:
      hibernate.cache.region.factory_class: org.redisson.hibernate.RedissonRegionFactory
      hibernate.cache.redisson.instance_name: default
      hibernate:
        jdbc:
          batch_size: 50
        order_inserts: true
        order_updates: true
        generate_statistics: true
        format_sql: true
        cache:
          use_second_level_cache: true
          use_query_cache: true
          connection:
            provider_disables_autocommit: true
        javax:
          persistence:
            sharedCache:
              mode: ENABLE_SELECTIVE
  http:
    client:
      connect-timeout: 3000
      read-timeout: 10000
  mvc:
    async:
      request-timeout: 30000
  batch:
    job:
      enabled: false
  data:
    redis:
      port: 6379
      lettuce:
        pool:
          max-active: 8
          max-idle: 8
          min-idle: 2
      timeout: 2000ms
      redisson:
        file: classpath:redisson.yaml
      repositories:
        enabled: false
resilience4j:
  circuitbreaker:
    instances:
      backendService:
        sliding-window-size: 10
        failure-rate-threshold: 50
        wait-duration-in-open-state: 10000
server:
  use-forward-headers: true
  compression:
    enabled: true
  tomcat:
    threads:
      max: 400
      min-spare: 20000
    max-connections: 20000
    accept-count: 100
    max-http-response-size: 256KB
    connection-timeout: 30000
  servlet:
    session:
      timeout: 30m
logging:
  level:
    org:
      springframework:
        boot:
          autoconfigure: DEBUG
management:
  endpoints:
    web:
      exposure:
        include: "*"
sentry:
  dsn: https://964ca9742d4214f180b978c2300554ea@o4510864153837568.ingest.us.sentry.io/4510987447042048
  send-default-pii: true
  tracesSampleRate: 1.0
  profileSessionSampleRate: 1.0
  profileLifecycle: TRACE
  logs:
    enabled: true

Notas Clave

SecciónDetalle
Base de datosSQL Server en localhost:1433, BD aduasis_atc
Pool de conexionesHikariCP · máx 30, mínimo 10 conexiones
Cache L2Redisson (Redis) con query cache habilitado
SesionesAlmacenadas en Redis bajo el namespace atc:spring:session
Circuit BreakerResilience4j · ventana 10 req, umbral fallo 50%
MonitoreoSentry habilitado con trazas al 100% (tracesSampleRate: 1.0)