forked from wangziqi/gongxue-base
feat: harden production storage readiness
This commit is contained in:
@@ -95,6 +95,33 @@ function validateProductionConfig(nextConfig: ApiConfig) {
|
||||
if (nextConfig.allowPlatformAdminKey) {
|
||||
failures.push('ALLOW_PLATFORM_ADMIN_KEY=true is not allowed in production');
|
||||
}
|
||||
if (nextConfig.storageDefaultProvider === 'local_dev') {
|
||||
failures.push('STORAGE_DEFAULT_PROVIDER=local_dev is not allowed in production');
|
||||
}
|
||||
if (!nextConfig.storageDefaultBucket.trim()) {
|
||||
failures.push('STORAGE_DEFAULT_BUCKET is required in production');
|
||||
}
|
||||
if (!nextConfig.storageRequireTenantPrefix) {
|
||||
failures.push('STORAGE_REQUIRE_TENANT_PREFIX=false is not allowed in production');
|
||||
}
|
||||
if (nextConfig.storageDefaultProvider === 'aliyun_oss') {
|
||||
if (!nextConfig.aliyunOssAccessKeyId || !nextConfig.aliyunOssAccessKeySecret) {
|
||||
failures.push('ALIYUN_OSS_ACCESS_KEY_ID and ALIYUN_OSS_ACCESS_KEY_SECRET are required for aliyun_oss');
|
||||
}
|
||||
if (!nextConfig.aliyunOssRegion && !nextConfig.aliyunOssEndpoint) {
|
||||
failures.push('ALIYUN_OSS_REGION or ALIYUN_OSS_ENDPOINT is required for aliyun_oss');
|
||||
}
|
||||
}
|
||||
if (nextConfig.storageDefaultProvider === 'tencent_cos') {
|
||||
if (!nextConfig.tencentCosRegion || !nextConfig.tencentCosAppId || !nextConfig.tencentCosSecretId || !nextConfig.tencentCosSecretKey) {
|
||||
failures.push('TENCENT_COS_REGION, TENCENT_COS_APP_ID, TENCENT_COS_SECRET_ID and TENCENT_COS_SECRET_KEY are required for tencent_cos');
|
||||
}
|
||||
}
|
||||
if (nextConfig.storageDefaultProvider === 'supabase_storage') {
|
||||
if (!nextConfig.supabaseStorageUrl || !nextConfig.supabaseStorageServiceKey) {
|
||||
failures.push('SUPABASE_STORAGE_URL and SUPABASE_STORAGE_SERVICE_KEY are required for supabase_storage');
|
||||
}
|
||||
}
|
||||
|
||||
if (failures.length > 0) {
|
||||
throw new Error(`Invalid production API configuration: ${failures.join('; ')}`);
|
||||
|
||||
Reference in New Issue
Block a user