Skip to content

后端配置

提示

本章节只针对开发者和测试人员阅读,普通用户可以跳过此章节。

kantime-core 后端的配置通过环境变量进行管理,使用 pydantic-settings 库加载。所有配置项都定义在 app/config.py 文件中,并通过项目根目录下的 .env 文件进行赋值。

.env 文件

在启动后端服务前,请确保项目根目录 (kantime-core/) 下存在一个 .env 文件。您可以从 .env.example 复制一份并根据需要进行修改。

主要配置项说明

数据库 (DATABASE)

  • DATABASE__URL: SQLAlchemy 数据库连接字符串。
    • 格式: postgresql+psycopg2://USER:PASSWORD@HOST:PORT/DB_NAME
    • 示例: postgresql+psycopg2://postgres:password@localhost:5432/kantime

JWT (JSON Web Token)

  • JWT__SECRET_KEY: 用于签名和验证 JWT 的密钥。在生产环境中,这必须是一个长且无法猜测的随机字符串。
  • JWT__ALGORITHM: 加密算法,默认为 HS256
  • JWT__ACCESS_TOKEN_EXPIRE_MINUTES: Access Token 的过期时间(分钟),默认为 120

加密 (ENCRYPTION)

系统支持两种加密方式,用于加密薪酬等敏感数据。二者择一进行配置。

  1. 本地密钥 (ENCRYPTION_KEY)

    • ENCRYPTION_KEY: 一个本地的加密密钥。轻量加密,适用于本地开发或不想依赖外部服务的场景。
      • 示例: b'your_fernet_key_base64' (必须是 32 字节长的字节串)
  2. HashiCorp Vault (VAULT)

    • VAULT__URL: Vault 服务的地址。
      • 示例: http://127.0.0.1:8200
    • VAULT__TOKEN: 访问 Vault 所需的根令牌或具有相应权限的令牌。
    • VAULT__KV_PATH: Vault 中 KV secrets engine 的路径。此为必填项,但当前版本主要使用 Transit engine,此配置为未来扩展保留。

安全 (SECURITY)

  • SECURITY__CORS_ORIGINS: 允许跨域请求的前端源地址列表,使用逗号分隔。
    • 示例: "http://127.0.0.1:5173,http://localhost:5173,http://your.domain.com"

本地化 (LOCAL)

  • LOCAL__TIMEZONE: 应用使用的时区。
    • 示例: Asia/Shanghai

日志 (LOGGING)

  • LOGGING__LEVEL: 日志级别,如 INFO, DEBUG。默认为 INFO
  • LOGGING__DIR_PATH: 日志文件存放目录。默认为 logs

程序设置 (PROGRAM)

这些设置通常在代码中定义,但也可以通过环境变量覆盖。

  • PROGRAM__WORK_HOURS_PER_DAY: 计算日薪时,每日的标准工作时长。默认为 8