Custom Import action what setting model should I be using?

I am trying to create an Action for importing the data. I have the action rendering with a file upload and I can see the JSON been sent to the server.

Looking at the models from the property Value converter it should be FileUploadValue however its always null

internal class ImportDataSetAction : Umbraco.UIBuilder.Configuration.Actions.Action<ImportDataSetSettings, ActionResult>
{
    public override string Icon => "";
    public override string Alias => "dataset.import";

    public override string Name => "Import";

    public override bool ConfirmAction => false;
    public override bool IsVisible(ActionVisibilityContext ctx) => true;

    public override void Configure(SettingsConfigBuilder<ImportDataSetSettings> settingsConfig)
    {
        settingsConfig.AddFieldset("General", fieldsetConfig => fieldsetConfig
            .AddField(s => s.TemporaryFile!).SetLabel("Import File")
            .MakeRequired()
            .SetDataType("Upload DataSet"));
    }

    public override ActionResult Execute(string collectionAlias, object[] entityIds, ImportDataSetSettings? settings)
    {
        if (settings is null) return new ActionResult(false, new ActionNotification("No settings"));
        if (settings.TemporaryFile is null) return new ActionResult(false, new ActionNotification("No TemporaryFile"));

        return new ActionResult(true, new ActionNotification(settings.TemporaryFile.Src + " " + settings.TemporaryFile.TemporaryFileId));
    }
}


public class ImportDataSetSettings
{
    public FileUploadValue? TemporaryFile { get; set; }
}

I have also tried adding a ValueMapper but the input is always null

internal class DatasetFileUploadMapper : ValueMapper
{
    public override object? EditorToModel(object? input) 
    {
        if(string.IsNullOrWhiteSpace(input?.ToString())) return null;
        var k = JsonSerializer.Deserialize<FileUploadValue>(input.ToString());
        return k;
    }
    public override object? ModelToEditor(object? input) => input;
}

I think you need to actually perform the save yourself within the execute action - atleast that’s how I’ve gotten it to work before..

I wrote about it a while back if you are looking for concrete examples: Creating a custom export & import action in Umbraco UI Builder by Jesper Mayntzhusen | Issue 111 of Skrift Magazine

The repo used in that post is here: efcore-and-uibuilder/TwentyFourDays/UiBuilder at feature/custom-export-import · jemayn/efcore-and-uibuilder

Looks like HQ ship one, but it only works if you use the -90 data type. Shipping your own with allowed extensions set does not work