You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 5524f84
Browse filesBrowse the repository at this point in the historyBrowse files
A record-change flow can declare `expand: ['<lookup>', …]` on its start-node
config so node templates resolve `{record.<lookup>.<field>}` (e.g.
`{record.account.name}` — the #3426 lookup gap).
The engine re-reads the declared relations AFTER identity resolution, as the
run's OWN principal (`resolveRunDataContext` honors `runAs`), and grafts the
expanded objects onto the run record. So a `runAs:'user'` run reads the
referenced object as the triggering USER — RLS/FLS enforced — not system-
elevated, which is exactly what made expansion unsafe in the trigger's re-read
(no resolved grants there). New `AutomationEngine.setRecordExpander`, bridged by
the plugin to the same data engine the CRUD nodes use.
Only declared keys are grafted, so bare lookup ids, `multiple` lookup arrays
(#1872), and trigger-hydrated formula fields are untouched. Opt-in ⇒ zero cost
otherwise; best-effort ⇒ a re-read failure leaves the record unexpanded and
never breaks the flow. The `flow-template-lookup-traversal` lint warning
(#3472) is suppressed once a relation is declared in `config.expand`.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
0 commit comments