Creating a data processor
:::info Status Outline — expand with a full worked example (e.g. a new batch import/export processor). :::
:::tip Use the shipped skill
Prefer the create-data-processor skill (in your scaffolded repo's .claude/skills/) over
hand-rolling this.
:::
A DataProcessor is a transient batch-operation form — it isn't persisted itself. Think "import NBU exchange rates" or "recalculate item costs for a date range": a form the user fills in and runs, with no permanent record of the form instance afterward.
The pieces
*Dto/[KandraDataProcessorForm] plus a *Validator — both DI wiring and the Blazor UI
(DataProcessorPageBase) are generated, the same as other form-bearing kinds. There's no
*Base EF entity in the usual sense, since nothing is persisted.
Worked example on the platform team's side
The NBU currency-rate import (Kandra.Plugins.UA.Rates.Nbu) is a real, shipped data
processor on the platform team's own reference configuration — and also the canonical example
of the plugin layering model: an optional locale-specific piece that plugs into a
configuration without living in its core. It's a useful conceptual example even without
access to that source, since Plugins covers the same layering model your own
configuration can use.
Gotchas worth knowing before you start
DataProcessorPageBaseneeds a null-Filters/parameters render guard — the same pattern reports needed, since both can render before the first parameter load completes.