Skip to content

Commit 1ee50fc

Browse files
authored
fix standalone activity routes and prep for release (#3168)
* fix standalone activity routes and prep for release * add version check to guard * fix import * fix import
1 parent 3638919 commit 1ee50fc

20 files changed

Lines changed: 80 additions & 48 deletions

File tree

server/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ require (
1111
github.com/labstack/echo/v4 v4.13.4
1212
github.com/stretchr/testify v1.10.0
1313
github.com/urfave/cli/v2 v2.3.0
14-
go.temporal.io/api v1.60.2
14+
go.temporal.io/api v1.61.0
1515
golang.org/x/net v0.47.0
1616
golang.org/x/oauth2 v0.30.0
1717
google.golang.org/grpc v1.66.1

server/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw
6868
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
6969
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
7070
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
71-
go.temporal.io/api v1.60.2 h1:xqUqdPeOu8/HNWVPu51P6tVoBJ5kRh8nBI62xXi+IWg=
72-
go.temporal.io/api v1.60.2/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM=
71+
go.temporal.io/api v1.61.0 h1:gGIvUu1pRE9yVKqlirYd5FGDT5N/hvcZ0tlB4mRvVM4=
72+
go.temporal.io/api v1.61.0/go.mod h1:iaxoP/9OXMJcQkETTECfwYq4cw/bj4nwov8b3ZLVnXM=
7373
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
7474
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
7575
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=

src/lib/components/standalone-activities/activities-summary-configurable-table/table-body-cell.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
href={routeForStandaloneActivityDetails({
5656
namespace,
5757
activityId: activity.activityId,
58+
runId: activity.runId,
5859
})}
5960
/>
6061
{:else if label === 'Activity Type'}

src/lib/components/standalone-activities/activity-input-and-outcome.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
</PayloadDecoder>
2525
</div>
2626
<div class="flex flex-col gap-2">
27-
<h5>Outcome</h5>
27+
<h5>Result</h5>
2828
{#if has(outcome, 'failure')}
2929
<CodeBlock content={JSON.stringify(outcome.failure, null, 2)} />
3030
{:else if has(outcome, 'result')}

src/lib/components/standalone-activities/standalone-activities-disabled.svelte

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
import CodeBlock from '$lib/holocene/code-block.svelte';
44
import { translate } from '$lib/i18n/translate';
55
6+
import PageTitle from '../page-title.svelte';
7+
68
interface Props {
79
namespace: string;
10+
href: string;
811
}
912
10-
let { namespace }: Props = $props();
13+
let { namespace, href }: Props = $props();
1114
1215
const configValues = `history.enableTransitionHistory:
1316
- value: true
@@ -22,6 +25,13 @@ activity.enableStandalone:
2225
namespace: ${namespace}`);
2326
</script>
2427

28+
<PageTitle
29+
title="{translate(
30+
'standalone-activities.standalone-activities',
31+
)} | {namespace}"
32+
url={href}
33+
/>
34+
2535
<h1>Standalone Activities</h1>
2636
<Alert
2737
title={translate('standalone-activities.standalone-activities-disabled')}

src/lib/components/standalone-activities/standalone-activities-guard.svelte

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<script lang="ts">
22
import type { Snippet } from 'svelte';
33
4+
import { temporalVersion } from '$lib/stores/versions';
45
import type { DescribeNamespaceResponse } from '$lib/types';
6+
import { minimumVersionRequired } from '$lib/utilities/version-check';
57
68
interface Props {
79
namespace: DescribeNamespaceResponse;
@@ -12,7 +14,7 @@
1214
let { namespace, children, fallback }: Props = $props();
1315
</script>
1416

15-
{#if namespace.namespaceInfo?.capabilities?.standaloneActivities}
17+
{#if namespace.namespaceInfo?.capabilities?.standaloneActivities && minimumVersionRequired('1.30.0', $temporalVersion)}
1618
{@render children()}
1719
{:else if fallback}
1820
{@render fallback()}

src/lib/components/standalone-activities/start-standalone-activity-form/form.svelte

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@
140140
if (!form.valid) return;
141141
142142
try {
143-
startStandaloneActivity({
143+
const { runId } = await startStandaloneActivity({
144144
...form.data,
145145
searchAttributes,
146146
});
@@ -151,6 +151,7 @@
151151
link: routeForStandaloneActivityDetails({
152152
namespace,
153153
activityId: form.data.activityId,
154+
runId,
154155
}),
155156
});
156157
return { type: 'success' };

src/lib/layouts/standalone-activity-layout.svelte

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,21 @@
2727
activityExecution: ActivityExecution;
2828
namespace: string;
2929
activityId: string;
30+
runId: string;
3031
children: Snippet;
3132
poller: StandaloneActivityPoller;
3233
}
3334
34-
let { activityExecution, children, namespace, activityId, poller }: Props =
35-
$props();
35+
let {
36+
activityExecution,
37+
children,
38+
namespace,
39+
activityId,
40+
runId,
41+
poller,
42+
}: Props = $props();
3643
37-
const routeParameters = $derived({ namespace, activityId });
44+
const routeParameters = $derived({ namespace, activityId, runId });
3845
3946
const detailsRoute = $derived(
4047
routeForStandaloneActivityDetails(routeParameters),

src/lib/services/standalone-activities.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ export type ListActivitiesResponse = {
2222
nextPageToken: string;
2323
};
2424

25+
export interface StartStandaloneActivityResponse {
26+
runId: string;
27+
started: boolean;
28+
}
29+
2530
export type PaginatedActivitiesPromise = (
2631
pageSize?: number,
2732
token?: string,
@@ -163,7 +168,7 @@ const toStartActivityExecutionRequest = async (
163168

164169
export const startStandaloneActivity = async (
165170
activity: StandaloneActivityFormData,
166-
) => {
171+
): Promise<StartStandaloneActivityResponse> => {
167172
const { activityId, namespace } = activity;
168173

169174
const route = routeForApi('standalone-activity', {
@@ -191,6 +196,7 @@ export const getActivityExecutions = (namespace: string) => {
191196
export const getActivityExecution = (
192197
namespace: string,
193198
activityId: string,
199+
runId: string,
194200
): Promise<ActivityExecution> => {
195201
const route = routeForApi('standalone-activity', {
196202
namespace,
@@ -200,6 +206,7 @@ export const getActivityExecution = (
200206
const params = new URLSearchParams({
201207
includeInput: 'true',
202208
includeOutcome: 'true',
209+
runId,
203210
});
204211

205212
return requestFromAPI(route, {

src/lib/utilities/route-for.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -135,33 +135,37 @@ export const routeForStartStandaloneActivity = (
135135
};
136136

137137
const routeForStandaloneActivityBase = (
138-
parameters: NamespaceParameter & { activityId: string },
138+
parameters: NamespaceParameter & { activityId: string; runId: string },
139139
) => {
140-
return resolve(`${routeForStandaloneActivities(parameters)}/[activityId]`, {
141-
activityId: parameters.activityId,
142-
});
140+
return resolve(
141+
`${routeForStandaloneActivities(parameters)}/[activityId]/[runId]`,
142+
{
143+
activityId: parameters.activityId,
144+
runId: parameters.runId,
145+
},
146+
);
143147
};
144148

145149
export const routeForStandaloneActivityDetails = (
146-
parameters: NamespaceParameter & { activityId: string },
150+
parameters: NamespaceParameter & { activityId: string; runId: string },
147151
) => {
148152
return `${routeForStandaloneActivityBase(parameters)}/details`;
149153
};
150154

151155
export const routeForStandaloneActivityWorkers = (
152-
parameters: NamespaceParameter & { activityId: string },
156+
parameters: NamespaceParameter & { activityId: string; runId: string },
153157
) => {
154158
return `${routeForStandaloneActivityBase(parameters)}/workers`;
155159
};
156160

157161
export const routeForStandaloneActivitySearchAttributes = (
158-
parameters: NamespaceParameter & { activityId: string },
162+
parameters: NamespaceParameter & { activityId: string; runId: string },
159163
) => {
160164
return `${routeForStandaloneActivityBase(parameters)}/search-attributes`;
161165
};
162166

163167
export const routeForStandaloneActivityMetadata = (
164-
parameters: NamespaceParameter & { activityId: string },
168+
parameters: NamespaceParameter & { activityId: string; runId: string },
165169
) => {
166170
return `${routeForStandaloneActivityBase(parameters)}/metadata`;
167171
};

0 commit comments

Comments
 (0)