diff --git a/flow/activities/flowable_core.go b/flow/activities/flowable_core.go index 1935e066f4..96cea69856 100644 --- a/flow/activities/flowable_core.go +++ b/flow/activities/flowable_core.go @@ -364,13 +364,9 @@ func (a *FlowableActivity) replicateQRepPartition(ctx context.Context, return err } lfn := ls.Env.RawGetString("transformRow") - fn, ok := lfn.(*lua.LFunction) - if !ok { - err := fmt.Errorf("script should define `transformRow` as function, not %s", lfn) - a.Alerter.LogFlowError(ctx, config.FlowJobName, err) - return err + if fn, ok := lfn.(*lua.LFunction); ok { + outstream = pua.AttachToStream(ls, fn, stream) } - outstream = pua.AttachToStream(ls, fn, stream) } var rowsSynced int diff --git a/ui/app/mirrors/create/helpers/qrep.ts b/ui/app/mirrors/create/helpers/qrep.ts index 392439ee77..aa2b80d462 100644 --- a/ui/app/mirrors/create/helpers/qrep.ts +++ b/ui/app/mirrors/create/helpers/qrep.ts @@ -123,8 +123,14 @@ export const qrepSettings: MirrorSetting[] = [ ...curr, waitBetweenBatchesSeconds: parseInt(value as string, 10) || 30, })), - tips: 'Time to wait (in seconds) between getting partitions to process. The default is 30 seconds', + tips: 'Time to wait (in seconds) between getting partitions to process. The default is 30 seconds.', default: 30, type: 'number', }, + { + label: 'Script', + stateHandler: (value, setter) => + setter((curr: QRepConfig) => ({ ...curr, script: value as string })), + tips: 'Script to use for row transformations. The default is no scripting.', + }, ];