mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-19 00:02:03 +00:00
allow external domain override for user-facing links (#9057)
* feat: allow external domain override for user-facing links * refactor: use plain var + setter for externalDomain * chore: expose externalDomain in package exports
This commit is contained in:
@@ -379,6 +379,10 @@
|
||||
"types": "./package/stores.d.ts",
|
||||
"default": "./package/stores.js"
|
||||
},
|
||||
"./externalDomain": {
|
||||
"types": "./package/externalDomain.d.ts",
|
||||
"default": "./package/externalDomain.js"
|
||||
},
|
||||
"./gen": {
|
||||
"types": "./package/gen/index.d.ts",
|
||||
"default": "./package/gen/index.js"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
import { Button, Drawer, DrawerContent } from './common'
|
||||
import { copyToClipboard } from '$lib/utils'
|
||||
import { base } from '$lib/base'
|
||||
import { withExternalDomain } from '$lib/externalDomain'
|
||||
import { workspaceStore } from '$lib/stores'
|
||||
import { AnsiUp } from 'ansi_up'
|
||||
import NoWorkerWithTagWarning from './runs/NoWorkerWithTagWarning.svelte'
|
||||
@@ -204,6 +205,9 @@
|
||||
scroll = true
|
||||
}
|
||||
})
|
||||
let downloadHref = $derived(
|
||||
withExternalDomain(`${base}/api/w/${$workspaceStore}/jobs_u/get_logs/${jobId}`)
|
||||
)
|
||||
let truncatedContent = $derived(truncateContent(content, loadedFromObjectStore, LOG_LIMIT))
|
||||
let prefixInfo = $derived(findPrefixInfo(truncatedContent))
|
||||
let downloadStartUrl = $derived(findStartUrl(truncatedContent, prefixInfo))
|
||||
@@ -244,7 +248,7 @@
|
||||
{#snippet actions()}
|
||||
{#if jobId && download}
|
||||
<Button
|
||||
href="{base}/api/w/{$workspaceStore}/jobs_u/get_logs/{jobId}"
|
||||
href={downloadHref}
|
||||
download="windmill_logs_{jobId}.txt"
|
||||
color="light"
|
||||
size="xs"
|
||||
@@ -323,7 +327,7 @@
|
||||
<a
|
||||
class="text-primary pb-0.5"
|
||||
target="_blank"
|
||||
href="{base}/api/w/{$workspaceStore}/jobs_u/get_logs/{jobId}"
|
||||
href={downloadHref}
|
||||
download="windmill_logs_{jobId}.txt"
|
||||
><Download size="14" />
|
||||
</a>
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
// Optional external domain (e.g. "https://app.windmill.dev") used to build
|
||||
// absolute URLs for user-facing links when the Windmill UI is embedded on a
|
||||
// different host than the API. Undefined = same-origin (default behavior).
|
||||
// Intended to be set once at boot by SDK consumers (e.g. windmill-react-sdk),
|
||||
// before any component that builds links has rendered — there is no
|
||||
// reactivity, so changing it after mount won't update already-rendered hrefs.
|
||||
let externalDomain: string | undefined = undefined
|
||||
|
||||
export function setExternalDomain(domain: string | undefined): void {
|
||||
externalDomain = domain
|
||||
}
|
||||
|
||||
export function withExternalDomain(path: string): string {
|
||||
if (!externalDomain) return path
|
||||
const trimmed = externalDomain.replace(/\/$/, '')
|
||||
return `${trimmed}${path.startsWith('/') ? path : `/${path}`}`
|
||||
}
|
||||
Reference in New Issue
Block a user