{#if !onLatest}
windmill-client
SDK, authenticated as the viewer (unlike runnables, which run on behalf of the
publisher). Each viewer is asked to approve the scopes below before the app runs. Grant only
what the app needs: its code — or an XSS bug in it — can use them as that viewer. Add
windmill-client to the app's dependencies to import it; it configures itself from
the token handed to the bundle.
windmill-client versions
cannot do. An app bundled before this Windmill version fails with a CORS error until you deploy
it again, which re-bundles it against a current client.
wm_coep flag guest.<jwt>. Each token
is its own seatless guest, confined to this app — no shared secret and no Windmill
account, unlike the plain secret URL above.
JWT_EXT_JWKS_URL) when no workspace key is set{/if}. Set
the public half there; in your backend, sign each token with the matching
private key using RS256/384/512, PS256/384/512 or ES256/384 (symmetric HS* is
refused), carrying email, workspace_id = {opWs},
app_path = {appPath} and exp (at most 24h ahead).
YOUR_GUEST_JWT with the token your backend signs per user. Past the instance's
free guest allowance a new guest email is refused (see the count above); guests already seen
in the window keep working.