From 029f8b46b8c8d9123ec886a826bed31ac513d537 Mon Sep 17 00:00:00 2001 From: nfebe Date: Sun, 23 Aug 2026 22:35:02 +0100 Subject: [PATCH] fix: Show deployment exposure details --- CHANGELOG.md | 5 +++++ package-lock.json | 4 ++-- package.json | 2 +- src/views/DeploymentDetailView.test.ts | 25 +++++++++++++++++++++++++ src/views/DeploymentDetailView.vue | 12 ++++++++++++ 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9e64b6..cdec7d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## [0.4.0-beta.7] - 2026-08-23 + +### Fixed +- Deployment domain summaries show the target service and container port + ## [0.4.0-beta.6] - 2026-08-23 ### Added diff --git a/package-lock.json b/package-lock.json index c08f303..b324db6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@flatrun/ui", - "version": "0.4.0-beta.6", + "version": "0.4.0-beta.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@flatrun/ui", - "version": "0.4.0-beta.6", + "version": "0.4.0-beta.7", "license": "MIT", "dependencies": { "@codemirror/lang-sql": "^6.10.0", diff --git a/package.json b/package.json index d834d38..42dc9a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@flatrun/ui", - "version": "0.4.0-beta.6", + "version": "0.4.0-beta.7", "description": "Web interface for FlatRun container orchestration", "author": "FlatRun", "license": "MIT", diff --git a/src/views/DeploymentDetailView.test.ts b/src/views/DeploymentDetailView.test.ts index 449ff99..9b892b1 100644 --- a/src/views/DeploymentDetailView.test.ts +++ b/src/views/DeploymentDetailView.test.ts @@ -596,6 +596,31 @@ describe("DeploymentDetailView", () => { expect((wrapper.vm as any).singleDomainId).toBe("my-domain-id"); }); + it("shows the service and container port used by a domain", async () => { + const { deploymentsApi } = await import("@/services/api"); + vi.mocked(deploymentsApi.get).mockResolvedValueOnce({ + data: { + deployment: { + name: "test-app", + status: "running", + path: "/deployments/test-app", + services: [], + created_at: "2024-01-01T00:00:00Z", + updated_at: "2024-01-01T00:00:00Z", + metadata: { + domains: [{ id: "domain-1", domain: "app.example.com", service: "web", container_port: 8080 }], + }, + }, + proxy_status: { exposed: true, domain: "app.example.com" }, + }, + } as any); + + const wrapper = mountView(); + await flushPromises(); + expect(wrapper.text()).toContain("Routes to"); + expect(wrapper.text()).toContain("web:8080"); + }); + it("computes singleDomainId as 'default' for legacy domain", async () => { const { deploymentsApi, proxyApi } = await import("@/services/api"); vi.mocked(deploymentsApi.get).mockResolvedValueOnce({ diff --git a/src/views/DeploymentDetailView.vue b/src/views/DeploymentDetailView.vue index dcdfa84..735ecfd 100755 --- a/src/views/DeploymentDetailView.vue +++ b/src/views/DeploymentDetailView.vue @@ -255,6 +255,10 @@ +
+ Routes to + {{ singleDomainTarget }} +
SSL @@ -2242,6 +2246,14 @@ const singleDomainId = computed(() => { return null; }); +const singleDomainTarget = computed(() => { + const domains = deployment.value?.metadata?.domains; + const configured = domains?.length === 1 ? domains[0] : null; + const service = configured?.service || deployment.value?.metadata?.networking?.service; + const port = configured?.container_port || deployment.value?.metadata?.networking?.container_port; + return service && port ? `${service}:${port}` : ""; +}); + const deletingDomain = ref(false); const registryCredential = ref(null);