spring: application: name: MovieNight lifecycle: timeout-per-shutdown-phase: 20s datasource: url: ${SPRING_DATASOURCE_URL:jdbc:h2:mem:movienight;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE} username: ${SPRING_DATASOURCE_USERNAME:sa} password: ${SPRING_DATASOURCE_PASSWORD:} driver-class-name: ${SPRING_DATASOURCE_DRIVER_CLASS_NAME:org.h2.Driver} hikari: maximum-pool-size: ${SPRING_DATASOURCE_HIKARI_MAXIMUM_POOL_SIZE:20} minimum-idle: ${SPRING_DATASOURCE_HIKARI_MINIMUM_IDLE:5} connection-timeout: ${SPRING_DATASOURCE_HIKARI_CONNECTION_TIMEOUT:30000} idle-timeout: ${SPRING_DATASOURCE_HIKARI_IDLE_TIMEOUT:600000} max-lifetime: ${SPRING_DATASOURCE_HIKARI_MAX_LIFETIME:1800000} flyway: enabled: ${SPRING_FLYWAY_ENABLED:true} url: ${SPRING_FLYWAY_URL:${SPRING_DATASOURCE_URL:jdbc:h2:mem:movienight;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE}} user: ${SPRING_FLYWAY_USER:${SPRING_DATASOURCE_USERNAME:sa}} password: ${SPRING_FLYWAY_PASSWORD:${SPRING_DATASOURCE_PASSWORD:}} locations: ${SPRING_FLYWAY_LOCATIONS:classpath:db/migration} baseline-on-migrate: ${SPRING_FLYWAY_BASELINE_ON_MIGRATE:true} h2: console: enabled: ${SPRING_H2_CONSOLE_ENABLED:true} path: /h2-console security: oauth2: client: registration: google: client-id: ${OAUTH2_GOOGLE_CLIENT_ID:test-client-id} client-secret: ${OAUTH2_GOOGLE_CLIENT_SECRET:test-secret} scope: email,profile yandex: client-id: ${OAUTH2_YANDEX_CLIENT_ID:test-client-id} client-secret: ${OAUTH2_YANDEX_CLIENT_SECRET:test-secret} authorization-grant-type: authorization_code redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" scope: login:email,login:avatar vk: client-id: ${OAUTH2_VK_CLIENT_ID:test-client-id} client-secret: ${OAUTH2_VK_CLIENT_SECRET:test-secret} authorization-grant-type: authorization_code client-authentication-method: client_secret_post redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" scope: email provider: yandex: authorization-uri: https://oauth.yandex.ru/authorize token-uri: https://oauth.yandex.ru/token user-info-uri: https://login.yandex.ru/info user-name-attribute: id vk: authorization-uri: https://oauth.vk.com/authorize token-uri: https://oauth.vk.com/access_token user-info-uri: https://api.vk.com/method/users.get?v=5.131&fields=photo_200 user-name-attribute: response server: shutdown: graceful management: endpoints: web: base-path: /actuator exposure: include: health,info,prometheus endpoint: health: probes: enabled: true show-details: when_authorized health: livenessstate: enabled: true readinessstate: enabled: true info: env: enabled: true springdoc: api-docs: path: /api/v1/docs swagger-ui: path: /api/v1/swagger-ui enabled: true show-actuator: true info: app: name: ${spring.application.name} description: MovieNight backend service version: ${project.version:unknown} integrations: jellyfin: enabled: ${JELLYFIN_SYNC_ENABLED:false} base-url: ${JELLYFIN_BASE_URL:} api-key: ${JELLYFIN_API_KEY:} sync-interval-ms: ${JELLYFIN_SYNC_INTERVAL_MS:1800000} request-timeout-ms: ${JELLYFIN_REQUEST_TIMEOUT_MS:20000} services: user: blocked-names: - admin - root - system film: blocked-patterns: - censored - epstein - python logging: pattern: console: "%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%X{traceId}] %logger{36} - %msg%n"