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:} 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: port: ${SERVER_PORT:8080} shutdown: graceful management: server: port: ${MANAGEMENT_SERVER_PORT:8081} 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_INTEGRATION_ENABLED:false} base-url: ${JELLYFIN_BASE_URL:} web-url: ${JELLYFIN_WEB_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} plugin-token: ${JELLYFIN_PLUGIN_TOKEN:} services: user: blocked-names: - admin - root - system film: blocked-patterns: - censored - epstein - python logging: level: com.project.movienight: DEBUG org.springframework: WARN org.flywaydb: WARN pattern: console: "%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [%thread] %cyan(%logger{36}) - %msg%n"