Documentation
¶
Overview ¶
API Key 临期站内通知(波次3):定期扫描 7 天内到期的有效 Key, 给属主发站内信(带 Webhook 外推),并打去重标记。 通知失败不阻塞扫描(下轮重试);标记成功才视为已通知,绝不重复打扰。
Index ¶
- func Bootstrap(configPath string) (*server.Hertz, error)
- func BootstrapWithOptions(configPath string, opts ...Option) (*server.Hertz, error)
- func CORS() app.HandlerFunc
- func Cleanup()
- func CreateDefaultAdmin(database *gorm.DB) error
- func InitDatabase(config *conf.DatabaseConfig) (*gorm.DB, error)
- type Config
- type Option
- type Options
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Bootstrap ¶
Bootstrap 应用程序启动入口(兼容入口,等价于无选项的 BootstrapWithOptions)。 configPath 为空时依次回退到 CONFIG_PATH 环境变量、默认 configs/config.yaml。
func BootstrapWithOptions ¶
BootstrapWithOptions 带函数选项的启动入口。 可用选项见 options.go(如 WithStaticDir 覆盖前端静态资源目录)。
func CORS ¶
func CORS() app.HandlerFunc
CORS 跨域中间件(配置化)。
安全策略:
- 配置了 allow_origins 白名单时,仅放行白名单内的 Origin(生产推荐)
- 未配置白名单时,退化为反射 Origin(便于本地开发,等同于宽松模式)
- allow_credentials=true 时,绝不返回 "*",而是精确匹配的 Origin
同时允许 X-Trace-Id / X-API-Key 等自定义请求头跨域。 allow_origins 来源:yaml 的 security.cors.allow_origins(数组)或 环境变量 FCB_CORS_ALLOW_ORIGINS(逗号分隔,如 "https://a.com,https://b.com")。
func CreateDefaultAdmin ¶
CreateDefaultAdmin 创建默认管理员。
密码来源(优先级):FCB_ADMIN_PASSWORD 环境变量 > 默认 admin123。 密码用 bcrypt 现场哈希(此前硬编码的哈希与 admin123 不匹配,导致管理员无法登录)。 生产环境务必通过 FCB_ADMIN_PASSWORD 注入强密码并在首次登录后修改。
func InitDatabase ¶
func InitDatabase(config *conf.DatabaseConfig) (*gorm.DB, error)
InitDatabase 初始化数据库。
迁移策略(按配置):
- database.migrate=true:先执行版本化迁移(migrations/*.sql),适合生产/需要版本控制
- database.auto_migrate(默认 true):GORM AutoMigrate,开发友好、自动补表/列
- 两者可共存:版本化迁移建表后,AutoMigrate 兜底补充新字段
Types ¶
type Config ¶
type Config = conf.AppConfiguration
Config 与 internal/conf 包中的统一配置类型互为别名。
func InitConfig ¶
InitConfig 初始化配置。
配置来源优先级(高 → 低):
- 环境变量(FCB_ 前缀完整名 / 文档化的短名,见 bindEnvironment)
- 配置文件(yaml,路径由 configPath 或 CONFIG_PATH 决定)
- 代码内默认值(SetDefault)
这样容器化部署(K8s/Docker)可通过 env 注入敏感配置(jwt_secret、db 密码等), 而无需修改镜像内的配置文件,符合 12-factor。