fix: report licensed instances on startup

This commit is contained in:
ShukeBta
2026-06-25 13:46:02 +08:00
parent 74aa654c92
commit a4a93b7fed
7 changed files with 190 additions and 26 deletions
+4 -2
View File
@@ -24,6 +24,8 @@ const EnvPrefix = "MEDIASTATION"
const (
defaultDatabaseMaxOpenConns = 4
defaultDatabaseMaxIdleConns = 2
defaultLicenseServerURL = "https://mgosever.3jzs.com"
defaultLicenseHMACSecret = "ms-shared-hmac-secret-key-Mgo-testing" // #nosec G101 -- shared response-signature key for the bundled license bridge.
)
// Config 是根配置聚合。
@@ -330,8 +332,8 @@ func setDefaults(v *viper.Viper) {
v.SetDefault("api_config.auto_encrypt", true)
v.SetDefault("api_config.default_timeout", 30)
v.SetDefault("license.server_url", "")
v.SetDefault("license.hmac_secret", "")
v.SetDefault("license.server_url", defaultLicenseServerURL)
v.SetDefault("license.hmac_secret", defaultLicenseHMACSecret)
}
// normalize 填充派生默认值并自愈空的关键字段。
+8
View File
@@ -58,6 +58,9 @@ func TestLoadDefaults(t *testing.T) {
if !cfg.Organizer.SmartClassify {
t.Fatalf("expected organizer smart classify enabled by default")
}
if cfg.License.ServerURL != defaultLicenseServerURL || cfg.License.HMACSecret != defaultLicenseHMACSecret {
t.Fatalf("expected bundled license bridge defaults, got url=%q secret=%q", cfg.License.ServerURL, cfg.License.HMACSecret)
}
// Re-loading must reuse the persisted secret on disk.
cfg2, err := Load()
if err != nil {
@@ -87,6 +90,8 @@ func TestEnvOverride(t *testing.T) {
t.Setenv("MEDIASTATION_CACHE_MEDIA_TTL_SECONDS", "30")
t.Setenv("MEDIASTATION_SEARCH_BACKEND", "opensearch")
t.Setenv("MEDIASTATION_SEARCH_OPENSEARCH_URL", "http://opensearch:9200")
t.Setenv("MEDIASTATION_LICENSE_SERVER_URL", "https://license.example.com")
t.Setenv("MEDIASTATION_LICENSE_HMAC_SECRET", "override-secret")
cfg, err := Load()
if err != nil {
t.Fatalf("Load() error: %v", err)
@@ -103,6 +108,9 @@ func TestEnvOverride(t *testing.T) {
if cfg.Search.Backend != "opensearch" || cfg.Search.OpenSearchURL != "http://opensearch:9200" {
t.Fatalf("expected opensearch config from env, got backend=%q url=%q", cfg.Search.Backend, cfg.Search.OpenSearchURL)
}
if cfg.License.ServerURL != "https://license.example.com" || cfg.License.HMACSecret != "override-secret" {
t.Fatalf("expected license config from env, got url=%q secret=%q", cfg.License.ServerURL, cfg.License.HMACSecret)
}
}
func TestLoadAllowsExplicitSingleConnectionDatabaseConfig(t *testing.T) {