feat: allow production provider bootstrap

This commit is contained in:
inman
2026-08-18 00:36:05 +08:00
parent 6480e503eb
commit 22fc7a56d8
21 changed files with 192 additions and 18 deletions

View File

@@ -59,6 +59,10 @@ func parseBool(value string) bool {
}
}
func allowUnconfiguredProviders(getenv postgres.Getenv) bool {
return parseBool(getenv("ZHINIAN_ALLOW_UNCONFIGURED_PROVIDERS"))
}
func applicationJobID() string {
return applicationID("job")
}
@@ -186,7 +190,27 @@ func providerVideoTargets(getenv postgres.Getenv) map[string]jobs.ProviderTarget
}
}
func providerUnavailableMessages(getenv postgres.Getenv) map[string]string {
missing := map[string]string{}
if strings.TrimSpace(getenv("VOLCENGINE_ACCESS_KEY_ID")) == "" || strings.TrimSpace(getenv("VOLCENGINE_SECRET_ACCESS_KEY")) == "" {
missing["volcengine-visual"] = "即梦服务商未配置,请先配置 VOLCENGINE_ACCESS_KEY_ID 和 VOLCENGINE_SECRET_ACCESS_KEY。"
}
if strings.TrimSpace(getenv("EVOLINK_API_KEY")) == "" {
missing["evolink"] = "EvoLink 服务商未配置,请先配置 EVOLINK_API_KEY。"
}
if bailianAPIKey(getenv) == "" {
missing["bailian"] = "百炼服务商未配置,请先配置 BAILIAN_API_KEY 或 DASHSCOPE_API_KEY。"
}
if strings.TrimSpace(getenv("SEEDANCE_API_KEY")) == "" {
missing["seedance"] = "Seedance 服务商未配置,请先配置 SEEDANCE_API_KEY。"
}
return missing
}
func validateProductionProviderConfiguration(getenv postgres.Getenv) error {
if allowUnconfiguredProviders(getenv) {
return nil
}
missing := make([]string, 0, 4)
if strings.TrimSpace(getenv("VOLCENGINE_ACCESS_KEY_ID")) == "" || strings.TrimSpace(getenv("VOLCENGINE_SECRET_ACCESS_KEY")) == "" {
missing = append(missing, "即梦 VOLCENGINE_ACCESS_KEY_ID/VOLCENGINE_SECRET_ACCESS_KEY")