Setup — Baserow Cloud, Application Builder app published on a custom domain.
User source = Local Baserow table, authentication = OIDC provider (Outseta).
Login itself works fine.
Goal — Outseta ships a JS SDK that can open the user’s profile/billing widget
as a modal on my own page, instead of sending them to Outseta’s full-page hosted
profile. It needs an Outseta JWT in the browser: Outseta.setAccessToken(jwt)
then Outseta.profile.open(). I’ve confirmed the modal works perfectly once the
token is set manually in the console.
The problem: the OIDC code exchange happens server-side between Baserow and
Outseta, so the browser never receives an Outseta token. Outseta.getAccessToken()
returns null.
Outseta exposes a server-side endpoint to mint a JWT for a given user
(POST /api/v1/tokens, API key in the header, email in the body), which is
exactly what the workflow actions should be able to call.
What I tried — Three actions on the login form’s After login event:
Send HTTP request → Execute code (parse the JSON) → Open page (redirect
back with the token appended to the URL, so my custom JS can read it).
What I ran into
-
The After login event does not fire when the login goes through the OIDC
provider. With all three actions fully configured and no validation warnings,
the network tab shows onlyGET /api/builder/domains/published/page/{id}/workflow_actions/
and no dispatchPOSTat all. Is this expected for SSO, or a bug? The event is
offered on the Login element regardless of which auth method it uses. -
There is no on-page-load trigger, so once the user is in the app there is no
other hook to run those actions automatically. Every action needs a click. -
There seems to be no supported way to hand a workflow action’s result to the
app’s own custom JavaScript. Actions chain to each other, but the Custom
CSS/JS pane is a separate world. The only two routes I found are both
workarounds: append the value to a URL viaOpen page, or write it to a row
and read it back out of the DOM. Putting a bearer token in a URL is not great —
it lands in history and inRefererheaders. -
No raw HTML element, so I can’t render a server-side value into the page
either.
Questions
- Is point 1 a known limitation or a bug worth reporting?
- Is there any trigger that fires after an SSO/OIDC login?
- Is there a supported way to pass a workflow action result to custom JS?
- Failing that, which workaround would you consider least bad here?
Outseta side, for reference: