snp-batch-validation/src/main/resources/application.yml
HYOJIN b3d9938422 feat: S&P Bypass 피드백 반영 (#123)
- Response JSON 원본 반환 (ApiResponse 래핑 제거, executeRaw 추가)
- 메뉴명 변경: Bypass API → API 관리
- 사용자용 API 카탈로그 페이지 (/bypass-catalog) 추가
- 운영 환경 코드 생성 차단 (app.environment=prod 시 비활성화)
- Bypass API 코드 생성 (compliance, risk 도메인)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 08:35:07 +09:00

187 lines
6.1 KiB
YAML

spring:
application:
name: snp-batch-validation
# PostgreSQL Database Configuration
datasource:
url: jdbc:postgresql://211.208.115.83:5432/snpdb
username: snp
password: snp#8932
driver-class-name: org.postgresql.Driver
hikari:
maximum-pool-size: 10
minimum-idle: 5
connection-timeout: 30000
# JPA Configuration
jpa:
hibernate:
ddl-auto: update
show-sql: false
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
format_sql: true
default_schema: std_snp_data
# Batch Configuration
batch:
jdbc:
table-prefix: "std_snp_data.batch_"
initialize-schema: never # Changed to 'never' as tables already exist
job:
enabled: false # Prevent auto-run on startup
# Thymeleaf Configuration
thymeleaf:
cache: false
prefix: classpath:/templates/
suffix: .html
# Quartz Scheduler Configuration - Using JDBC Store for persistence
quartz:
job-store-type: jdbc # JDBC store for schedule persistence
jdbc:
initialize-schema: never # Quartz tables manually created in std_snp_data schema
properties:
org.quartz.scheduler.instanceName: SNPBatchScheduler
org.quartz.scheduler.instanceId: AUTO
org.quartz.threadPool.threadCount: 10
org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.jobStore.tablePrefix: std_snp_data.QRTZ_
org.quartz.jobStore.isClustered: false
org.quartz.jobStore.misfireThreshold: 60000
# Server Configuration
server:
port: 8041
servlet:
context-path: /snp-api
# Actuator Configuration
management:
endpoints:
web:
exposure:
include: health,info,metrics,prometheus,batch
endpoint:
health:
show-details: always
# Logging Configuration (logback-spring.xml에서 상세 설정)
logging:
config: classpath:logback-spring.xml
# Custom Application Properties
app:
environment: dev
batch:
chunk-size: 1000
target-schema:
name: std_snp_data
tables:
ship-001: tb_ship_default_info
ship-002: tb_ship_info_mst
ship-003: tb_ship_add_info
ship-004: tb_ship_bbctr_hstry
ship-005: tb_ship_idntf_info_hstry
ship-006: tb_ship_clfic_hstry
ship-007: tb_ship_company_rel
ship-008: tb_ship_crew_list
ship-009: tb_ship_dark_actv_idnty
ship-010: tb_ship_country_hstry
ship-011: tb_ship_group_revn_ownr_hstry
ship-012: tb_ship_ice_grd
ship-013: tb_ship_nm_chg_hstry
ship-014: tb_ship_operator_hstry
ship-015: tb_ship_ownr_hstry
ship-016: tb_ship_prtc_rpn_hstry
ship-017: tb_ship_sfty_mng_evdc_hstry
ship-018: tb_ship_mng_company_hstry
ship-019: tb_ship_sstrvsl_rel
ship-020: tb_ship_spc_fetr
ship-021: tb_ship_status_hstry
ship-022: tb_ship_cargo_capacity
ship-023: tb_ship_inspection_ymd
ship-024: tb_ship_inspection_ymd_hstry
ship-025: tb_ship_tech_mng_company_hstry
ship-026: tb_ship_thrstr_info
company-001: tb_company_dtl_info
event-001: tb_event_mst
event-002: tb_event_cargo
event-003: tb_event_humn_acdnt
event-004: tb_event_rel
facility-001: tb_port_facility_info
psc-001: tb_psc_mst
psc-002: tb_psc_defect
psc-003: tb_psc_oa_certf
movements-001: tb_ship_anchrgcall_hstry
movements-002: tb_ship_berthcall_hstry
movements-003: tb_ship_now_status_hstry
movements-004: tb_ship_dest_hstry
movements-005: tb_ship_prtcll_hstry
movements-006: tb_ship_sts_opert_hstry
movements-007: tb_ship_teminalcall_hstry
movements-008: tb_ship_trnst_hstry
code-001: tb_ship_type_cd
code-002: tb_ship_country_cd
risk-compliance-001: tb_ship_risk_detail_info
risk-compliance-002: tb_ship_compliance_info
risk-compliance-003: tb_company_compliance_info
ship-028: ship_detail_hash_json
imo-meta-001: tb_ship_default_info
service-schema:
name: std_snp_svc
tables:
service-001: tb_ship_main_info
api-auth:
username: 7cc0517d-5ed6-452e-a06f-5bbfd6ab6ade
password: 2LLzSJNqtxWVD8zC
ship-api:
url: https://shipsapi.maritime.spglobal.com
ais-api:
url: https://aisapi.maritime.spglobal.com
webservice-api:
url: https://webservices.maritime.spglobal.com
schedule:
enabled: true
cron: "0 0 * * * ?" # Every hour
# LAST_EXECUTION 버퍼 시간 (시간 단위) - 외부 DB 동기화 지연 대응
last-execution-buffer-hours: 24
# RiskDetail 배치 설정
risk-detail:
partition-count: 4 # 병렬 파티션 수
delay-on-success-ms: 300 # 성공 시 딜레이 (ms)
delay-on-failure-ms: 2000 # 실패 시 딜레이 (ms)
# ShipDetailUpdate 배치 설정
ship-detail-update:
batch-size: 10 # API 요청 당 IMO 건수
delay-on-success-ms: 300 # 성공 시 딜레이 (ms)
delay-on-failure-ms: 2000 # 실패 시 딜레이 (ms)
max-retry-count: 3 # 최대 재시도 횟수
partition-count: 4 # 병렬 파티션 수
# 배치 로그 정리 설정
log-cleanup:
api-log-retention-days: 30 # batch_api_log 보존 기간
batch-meta-retention-days: 90 # Spring Batch 메타 테이블 보존 기간
failed-record-retention-days: 90 # batch_failed_record (RESOLVED) 보존 기간
recollection-history-retention-days: 90 # batch_recollection_history 보존 기간
# 파티션 관리 설정
partition:
# 일별 파티션 테이블 목록 (네이밍: {table}_YYMMDD)
daily-tables: []
# 월별 파티션 테이블 목록 (네이밍: {table}_YYYY_MM)
monthly-tables: []
# 기본 보관기간
retention:
daily-default-days: 14 # 일별 파티션 기본 보관기간 (14일)
monthly-default-months: 1 # 월별 파티션 기본 보관기간 (1개월)
custom: []