package common import ( "fmt" "os" "strconv" ) // InternalAccessToken 受信任内部调用方令牌:命中后鉴权层直接合成 root 身份, // 放开全部管理/root 端点(用于 server-core 作为唯一入口无权限限制地管理微服务)。 // 为空时关闭该能力。 // // 需在请求时惰性读取(而非包 init 时),因为 main() 里 godotenv.Load(".env") // 晚于包 init 执行,过早读取会拿到空串。 func InternalAccessToken() string { return os.Getenv("PINEAGENTS_INTERNAL_TOKEN") } func GetEnvOrDefault(env string, defaultValue int) int { if env == "" || os.Getenv(env) == "" { return defaultValue } num, err := strconv.Atoi(os.Getenv(env)) if err != nil { SysError(fmt.Sprintf("failed to parse %s: %s, using default value: %d", env, err.Error(), defaultValue)) return defaultValue } return num } func GetEnvOrDefaultString(env string, defaultValue string) string { if env == "" || os.Getenv(env) == "" { return defaultValue } return os.Getenv(env) } func GetEnvOrDefaultBool(env string, defaultValue bool) bool { if env == "" || os.Getenv(env) == "" { return defaultValue } b, err := strconv.ParseBool(os.Getenv(env)) if err != nil { SysError(fmt.Sprintf("failed to parse %s: %s, using default value: %t", env, err.Error(), defaultValue)) return defaultValue } return b }