fix: show public endpoint instead of internal Docker URL in tenant settings
Closes #51 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import net.siegeln.cameleer.saas.identity.LogtoManagementClient;
|
||||
import net.siegeln.cameleer.saas.identity.ServerApiClient;
|
||||
import net.siegeln.cameleer.saas.license.LicenseEntity;
|
||||
import net.siegeln.cameleer.saas.license.LicenseService;
|
||||
import net.siegeln.cameleer.saas.provisioning.ProvisioningProperties;
|
||||
import net.siegeln.cameleer.saas.provisioning.TenantProvisioner;
|
||||
import net.siegeln.cameleer.saas.tenant.TenantEntity;
|
||||
import net.siegeln.cameleer.saas.tenant.TenantService;
|
||||
@@ -24,17 +25,20 @@ public class TenantPortalService {
|
||||
private final ServerApiClient serverApiClient;
|
||||
private final LogtoManagementClient logtoClient;
|
||||
private final TenantProvisioner tenantProvisioner;
|
||||
private final ProvisioningProperties provisioningProps;
|
||||
|
||||
public TenantPortalService(TenantService tenantService,
|
||||
LicenseService licenseService,
|
||||
ServerApiClient serverApiClient,
|
||||
LogtoManagementClient logtoClient,
|
||||
TenantProvisioner tenantProvisioner) {
|
||||
TenantProvisioner tenantProvisioner,
|
||||
ProvisioningProperties provisioningProps) {
|
||||
this.tenantService = tenantService;
|
||||
this.licenseService = licenseService;
|
||||
this.serverApiClient = serverApiClient;
|
||||
this.logtoClient = logtoClient;
|
||||
this.tenantProvisioner = tenantProvisioner;
|
||||
this.provisioningProps = provisioningProps;
|
||||
}
|
||||
|
||||
// --- Inner records ---
|
||||
@@ -158,10 +162,12 @@ public class TenantPortalService {
|
||||
|
||||
public TenantSettingsData getSettings() {
|
||||
TenantEntity tenant = resolveTenant();
|
||||
String publicEndpoint = provisioningProps.publicProtocol() + "://"
|
||||
+ provisioningProps.publicHost() + "/t/" + tenant.getSlug() + "/";
|
||||
return new TenantSettingsData(
|
||||
tenant.getName(), tenant.getSlug(),
|
||||
tenant.getTier().name(), tenant.getStatus().name(),
|
||||
tenant.getServerEndpoint(), tenant.getCreatedAt()
|
||||
publicEndpoint, tenant.getCreatedAt()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import net.siegeln.cameleer.saas.identity.ServerApiClient;
|
||||
import net.siegeln.cameleer.saas.identity.ServerApiClient.ServerHealthResponse;
|
||||
import net.siegeln.cameleer.saas.license.LicenseEntity;
|
||||
import net.siegeln.cameleer.saas.license.LicenseService;
|
||||
import net.siegeln.cameleer.saas.provisioning.ProvisioningProperties;
|
||||
import net.siegeln.cameleer.saas.provisioning.TenantProvisioner;
|
||||
import net.siegeln.cameleer.saas.tenant.TenantEntity;
|
||||
import net.siegeln.cameleer.saas.tenant.TenantService;
|
||||
@@ -45,6 +46,9 @@ class TenantPortalServiceTest {
|
||||
@Mock
|
||||
private TenantProvisioner tenantProvisioner;
|
||||
|
||||
private final ProvisioningProperties provisioningProps = new ProvisioningProperties(
|
||||
null, null, null, null, "test.example.com", "https", null, null, null, null);
|
||||
|
||||
private TenantPortalService tenantPortalService;
|
||||
|
||||
private final UUID tenantId = UUID.randomUUID();
|
||||
@@ -52,7 +56,7 @@ class TenantPortalServiceTest {
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
TenantContext.setTenantId(tenantId);
|
||||
tenantPortalService = new TenantPortalService(tenantService, licenseService, serverApiClient, logtoClient, tenantProvisioner);
|
||||
tenantPortalService = new TenantPortalService(tenantService, licenseService, serverApiClient, logtoClient, tenantProvisioner, provisioningProps);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
@@ -185,7 +189,7 @@ class TenantPortalServiceTest {
|
||||
assertThat(result.slug()).isEqualTo("acme-corp");
|
||||
assertThat(result.tier()).isEqualTo("MID");
|
||||
assertThat(result.status()).isEqualTo("ACTIVE");
|
||||
assertThat(result.serverEndpoint()).isEqualTo("http://server:8080");
|
||||
assertThat(result.serverEndpoint()).isEqualTo("https://test.example.com/t/acme-corp/");
|
||||
assertThat(result.createdAt()).isNull(); // no @PrePersist called in test, createdAt is null
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user