From 8420d6180467872cd6e5025683d2469f8421b1f7 Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 4 May 2026 10:28:22 -0400 Subject: [PATCH 1/2] fix: dont retrieve stale target states --- .../routes/v1/workspaces/release-targets.ts | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/apps/api/src/routes/v1/workspaces/release-targets.ts b/apps/api/src/routes/v1/workspaces/release-targets.ts index 0a7e1fb24..7331d9994 100644 --- a/apps/api/src/routes/v1/workspaces/release-targets.ts +++ b/apps/api/src/routes/v1/workspaces/release-targets.ts @@ -252,16 +252,46 @@ const getReleaseTargetStates: AsyncTypedHandler< eq(schema.releaseTargetDesiredRelease.environmentId, environmentId), ); + const deploymentMatch = and( + eq( + schema.computedDeploymentResource.deploymentId, + schema.releaseTargetDesiredRelease.deploymentId, + ), + eq( + schema.computedDeploymentResource.resourceId, + schema.releaseTargetDesiredRelease.resourceId, + ), + ); + + const environmentMatch = and( + eq( + schema.computedEnvironmentResource.environmentId, + schema.releaseTargetDesiredRelease.environmentId, + ), + eq( + schema.computedEnvironmentResource.resourceId, + schema.releaseTargetDesiredRelease.resourceId, + ), + ); + const [countResult] = await db .select({ total: count() }) .from(schema.releaseTargetDesiredRelease) + .innerJoin(schema.computedDeploymentResource, deploymentMatch) + .innerJoin(schema.computedEnvironmentResource, environmentMatch) .where(filter); const total = countResult?.total ?? 0; const releaseTargets = await db - .select() + .select({ + resourceId: schema.releaseTargetDesiredRelease.resourceId, + environmentId: schema.releaseTargetDesiredRelease.environmentId, + deploymentId: schema.releaseTargetDesiredRelease.deploymentId, + }) .from(schema.releaseTargetDesiredRelease) + .innerJoin(schema.computedDeploymentResource, deploymentMatch) + .innerJoin(schema.computedEnvironmentResource, environmentMatch) .where(filter) .limit(limitVal) .offset(offsetVal); From 55b05cb96fa0ec0f3e1d020c1dc99444800c090a Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 4 May 2026 10:54:16 -0400 Subject: [PATCH 2/2] inner join resource --- apps/api/src/routes/v1/workspaces/release-targets.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/api/src/routes/v1/workspaces/release-targets.ts b/apps/api/src/routes/v1/workspaces/release-targets.ts index 7331d9994..fd467dfac 100644 --- a/apps/api/src/routes/v1/workspaces/release-targets.ts +++ b/apps/api/src/routes/v1/workspaces/release-targets.ts @@ -292,7 +292,12 @@ const getReleaseTargetStates: AsyncTypedHandler< .from(schema.releaseTargetDesiredRelease) .innerJoin(schema.computedDeploymentResource, deploymentMatch) .innerJoin(schema.computedEnvironmentResource, environmentMatch) + .innerJoin( + schema.resource, + eq(schema.resource.id, schema.releaseTargetDesiredRelease.resourceId), + ) .where(filter) + .orderBy(schema.resource.identifier) .limit(limitVal) .offset(offsetVal);