novolis-governance / imports-todo/frank-workflow-engine.md
Import: `Frank.WorkflowEngine` → Novolis
Policies that keep the org coherent
dotnetgovernancenovolis
Source: D:\frankrepos\Frank.WorkflowEngine
What
Single packable library Frank.WorkflowEngine + sample app + tests.
Frank package dependencies:
Frank.CronJobs 2.0.0
Frank.Mapping 1.1.0
Frank.Channels.DependencyInjection 1.2.0
Microsoft.Extensions.Hosting.Abstractions
Microsoft.Extensions.Caching.MemoryOrchestration layer for multi-step workflows on top of channels, cron, and mapping.
Why
- Capstone for infrastructure lane (messaging + scheduling + mapping).
- Not in P0 waves; no Novolis equivalent today.
- Useful for WireFish capture pipelines, codegen hosts, and long-running services.
How
Target
New repo: novolis-workflow-engine → Novolis.WorkflowEngine
**Note:** Org repo `novolis-workflows` is **GitHub Actions shared workflows** only. Do not put WorkflowEngine libraries there.
Prerequisites (PackageReference only)
| Prerequisite | Doc |
|---|---|
| `Novolis.Mapping` | [frank-mapping.md](./frank-mapping.html) |
| `Novolis.Scheduling` | [frank-scheduling-cronjobs.md](./frank-scheduling-cronjobs.html) |
| `Novolis.Messaging.Channels` | wave 0 (done in tree) |
Port steps
- Wait for all three on GPR
2026.1.*. - Bootstrap
novolis-workflow-engine; port core library; retarget deps to Novolis packages. - Port sample as
novolis-dogfoodingor docs sample (not shipped NuGet). - Rebuild tests with TUnit; no Frank.Testing package refs in production.
- Modernize
Microsoft.Extensions.*to .NET 10 aligned versions.
Acceptance
Frank.WorkflowEnginesample runs against Novolis packages only.- Documented in registry; frank-inventory updated.