# ============================================================
# Production Profile — 生产环境配置
# 启动方式: java -jar okr-performance.jar --spring.profiles.active=prod
# 所有敏感值通过环境变量注入，不留默认值
# ============================================================

server:
  port: ${APP_PORT:18080}

spring:
  datasource:
    # 生产环境使用 SQLCipher 加密数据库
    # 需先安装 SQLCipher 并添加 sqlcipher-jdbc 依赖
    # url: jdbc:sqlcipher:./data/okr-performance.db?key=${DB_ENCRYPT_KEY}
    url: jdbc:sqlite:./data/okr-performance.db
    driver-class-name: org.sqlite.JDBC

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true
    # 生产环境严禁输出 SQL 日志
    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl

app:
  jwt:
    # 生产环境必须通过环境变量 APP_JWT_SECRET 注入（至少 256-bit）
    secret: ${APP_JWT_SECRET}
    access-token-expiration: ${APP_JWT_ACCESS_EXPIRATION:3600000}
    refresh-token-expiration: ${APP_JWT_REFRESH_EXPIRATION:86400000}
  super-admin:
    username: admin
    # 生产环境必须通过环境变量 APP_SUPER_ADMIN_PASSWORD 注入
    password: ${APP_SUPER_ADMIN_PASSWORD}
    real-name: 系统管理员
  cors:
    # 生产环境：逗号分隔的允许域名列表
    allowed-origins: ${APP_CORS_ORIGINS:https://okr.your-company.com}
  seed:
    demo-data-enabled: false
  backup:
    dir: ${APP_BACKUP_DIR:./data/backups}

# ============================================================
# 环境变量清单（部署前必须设置）:
#   APP_JWT_SECRET               JWT 签名密钥（至少 256-bit 随机字符串）
#   APP_SUPER_ADMIN_PASSWORD     超级管理员初始密码
#   DB_ENCRYPT_KEY               SQLite 加密密钥（启用 SQLCipher 时）
#   APP_CORS_ORIGINS             允许的跨域域名（逗号分隔）
#   APP_PORT                     服务端口（默认 18080，建议 Nginx 反代后绑定 127.0.0.1）
# ============================================================
