XuqmGroup-Server/tenant-service/src/main/java/com/xuqm/tenant/config/PrivateDeploymentProperties.java
XuqmGroup e5f0e7faea feat: private deployment server-side capabilities (P2)
- PrivateDeploymentProperties: DEPLOYMENT_MODE/ENABLE_*/TENANT_BOOTSTRAP_ENABLED config binding
- PrivateTenantBootstrapInitializer: auto-create main tenant and app from env vars when PRIVATE mode, idempotent
- AuthService: block registration with XUQM_PRIVATE_2001 when TENANT_REGISTER_ENABLED=false
- EmailService: block REGISTER email verification in private mode
- SdkConfigController: intersect DB feature flags with ENABLE_* deployment flags for runtime degradation
- PrivateDeploymentController: GET /api/private/deployment/status public endpoint
- SecurityConfig: permit /api/private/deployment/status without auth
- application.yml: add deployment.* and tenant.bootstrap.* config sections with env var bindings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 20:49:46 +08:00

51 行
1.9 KiB
Java

package com.xuqm.tenant.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "deployment")
public class PrivateDeploymentProperties {
private String mode = "PUBLIC";
private boolean tenantRegisterEnabled = true;
private boolean tenantBootstrapEnabled = false;
private boolean enableIm = false;
private boolean enablePush = false;
private boolean enableUpdate = false;
private boolean enableLicense = false;
private boolean enableFile = true;
public boolean isPrivate() {
return "PRIVATE".equalsIgnoreCase(mode);
}
public String getMode() { return mode; }
public void setMode(String mode) { this.mode = mode; }
public boolean isTenantRegisterEnabled() { return tenantRegisterEnabled; }
public void setTenantRegisterEnabled(boolean tenantRegisterEnabled) {
this.tenantRegisterEnabled = tenantRegisterEnabled;
}
public boolean isTenantBootstrapEnabled() { return tenantBootstrapEnabled; }
public void setTenantBootstrapEnabled(boolean tenantBootstrapEnabled) {
this.tenantBootstrapEnabled = tenantBootstrapEnabled;
}
public boolean isEnableIm() { return enableIm; }
public void setEnableIm(boolean enableIm) { this.enableIm = enableIm; }
public boolean isEnablePush() { return enablePush; }
public void setEnablePush(boolean enablePush) { this.enablePush = enablePush; }
public boolean isEnableUpdate() { return enableUpdate; }
public void setEnableUpdate(boolean enableUpdate) { this.enableUpdate = enableUpdate; }
public boolean isEnableLicense() { return enableLicense; }
public void setEnableLicense(boolean enableLicense) { this.enableLicense = enableLicense; }
public boolean isEnableFile() { return enableFile; }
public void setEnableFile(boolean enableFile) { this.enableFile = enableFile; }
}