diff --git a/frontend/src/hooks.ts b/frontend/src/hooks.ts
index d473ce744b..15c8e2b6f3 100644
--- a/frontend/src/hooks.ts
+++ b/frontend/src/hooks.ts
@@ -1,3 +1,5 @@
+import type { Reroute } from '@sveltejs/kit'
+
/** @type {import('@sveltejs/kit').Handle} */
export async function handle({ event, resolve }) {
const response = await resolve(event, {
@@ -6,3 +8,11 @@ export async function handle({ event, resolve }) {
return response
}
+
+export const reroute: Reroute = ({ url }) => {
+ const match = url.pathname.match(/^\/w\/([^/]+)(\/.*)?$/)
+ if (match) {
+ return match[2] || '/'
+ }
+ return url.pathname
+}
diff --git a/frontend/src/lib/components/ArgInput.svelte b/frontend/src/lib/components/ArgInput.svelte
index 197275fbc1..a0e0a38134 100644
--- a/frontend/src/lib/components/ArgInput.svelte
+++ b/frontend/src/lib/components/ArgInput.svelte
@@ -40,7 +40,7 @@
import MultiSelect from './select/MultiSelect.svelte'
import { safeSelectItems } from './select/utils.svelte'
import S3ArgInput from './common/fileUpload/S3ArgInput.svelte'
- import { base } from '$lib/base'
+ import { wsBase } from '$lib/workspaceUrl'
import { workspaceStore } from '$lib/stores'
import { getJsonSchemaFromResource } from './schema/jsonSchemaResource.svelte'
import AIProviderPicker from './AIProviderPicker.svelte'
@@ -568,7 +568,7 @@
{#if value && typeof value == 'string' && value?.startsWith('$res:')}
Linked to resource {value.slice(5)}
diff --git a/frontend/src/lib/components/CompareWorkspaces.svelte b/frontend/src/lib/components/CompareWorkspaces.svelte
index 6905ed6931..dbd14d3ad2 100644
--- a/frontend/src/lib/components/CompareWorkspaces.svelte
+++ b/frontend/src/lib/components/CompareWorkspaces.svelte
@@ -57,7 +57,7 @@
import type { TriggerKind } from './triggers'
import { triggerDisplayNamesMap, triggerKindToTriggerType } from './triggers/utils'
import { getEmailAddress, getEmailDomain } from './triggers/email/utils'
- import { base } from '$lib/base'
+ import { wsBase } from '$lib/workspaceUrl'
import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte'
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte'
@@ -683,7 +683,7 @@
function getTriggerHref(triggerKind: TriggerKind): string | undefined {
const pagePath = triggerKindToPagePath[triggerKind]
- return pagePath ? `${base}${pagePath}` : undefined
+ return pagePath ? `${$wsBase}${pagePath}` : undefined
}
// Fetch triggers when workspace is available
diff --git a/frontend/src/lib/components/DeployWorkspace.svelte b/frontend/src/lib/components/DeployWorkspace.svelte
index 9f1fd71146..c82151ff53 100644
--- a/frontend/src/lib/components/DeployWorkspace.svelte
+++ b/frontend/src/lib/components/DeployWorkspace.svelte
@@ -1,6 +1,6 @@
import { goto } from '$lib/navigation'
- import { base } from '$lib/base'
+ import { wsBase } from '$lib/workspaceUrl'
import Dropdown from '$lib/components/DropdownV2.svelte'
import type MoveDrawer from '$lib/components/MoveDrawer.svelte'
import ScheduleEditor from '$lib/components/triggers/schedules/ScheduleEditor.svelte'
@@ -120,8 +120,8 @@
aiId={`script-run-button-${script.path}`}
aiDescription={`Button to access the form to run the script ${script.summary ?? script.path}`}
href={script.draft_only || (script.auto_kind === 'lib' && script.kind !== 'preprocessor')
- ? `${base}/scripts/edit/${script.path}`
- : `${base}/scripts/get/${script.hash}?workspace=${$workspaceStore}`}
+ ? `${$wsBase}/scripts/edit/${script.path}`
+ : `${$wsBase}/scripts/get/${script.hash}`}
kind="script"
{marked}
path={script.path}
@@ -182,7 +182,7 @@
wrapperClasses="w-20"
unifiedSize="md"
startIcon={{ icon: Pen }}
- href="{base}/scripts/edit/{script.path}"
+ href="{$wsBase}/scripts/edit/{script.path}"
>
Edit
@@ -264,7 +264,7 @@
{
displayName: 'Duplicate/Fork',
icon: GitFork,
- href: `${base}/scripts/add?template=${script.path}`,
+ href: `${$wsBase}/scripts/add?template=${script.path}`,
disabled: !showEditButton,
hide: $userStore?.operator
},
@@ -299,7 +299,7 @@
{
displayName: 'View runs',
icon: List,
- href: `${base}/runs/${script.path}`
+ href: `${$wsBase}/runs/${script.path}`
},
{
displayName: 'Versions',
@@ -311,7 +311,7 @@
{
displayName: 'Audit logs',
icon: Eye,
- href: `${base}/audit_logs?resource=${script.path}`,
+ href: `${$wsBase}/audit_logs?resource=${script.path}`,
hide: $userStore?.operator
},
{
@@ -431,7 +431,7 @@
openDetails
on:openDetails={(e) => {
if (script) {
- goto(`/scripts/get/${e.detail.version}?workspace=${$workspaceStore}`)
+ goto(`/scripts/get/${e.detail.version}`)
}
versionsDrawerOpen = false
}}
diff --git a/frontend/src/lib/components/flows/CreateActionsApp.svelte b/frontend/src/lib/components/flows/CreateActionsApp.svelte
index 5cc0df1502..51d67a6057 100644
--- a/frontend/src/lib/components/flows/CreateActionsApp.svelte
+++ b/frontend/src/lib/components/flows/CreateActionsApp.svelte
@@ -1,6 +1,5 @@
diff --git a/frontend/src/lib/components/flows/CreateActionsFlow.svelte b/frontend/src/lib/components/flows/CreateActionsFlow.svelte
index 73f8cfedba..c4eb6af7f2 100644
--- a/frontend/src/lib/components/flows/CreateActionsFlow.svelte
+++ b/frontend/src/lib/components/flows/CreateActionsFlow.svelte
@@ -1,6 +1,5 @@
diff --git a/frontend/src/lib/components/preview/FlowPreviewStatus.svelte b/frontend/src/lib/components/preview/FlowPreviewStatus.svelte
index 68587fbf24..6e4170ed48 100644
--- a/frontend/src/lib/components/preview/FlowPreviewStatus.svelte
+++ b/frontend/src/lib/components/preview/FlowPreviewStatus.svelte
@@ -1,6 +1,6 @@