feat(transport): export site/instance selection end-to-end via CLI + ManagementActor (M8 B4)

This commit is contained in:
Joseph Doherty
2026-06-18 06:14:39 -04:00
parent d7dae24355
commit bdbf5cdab0
16 changed files with 450 additions and 12 deletions
@@ -73,6 +73,10 @@ public sealed class BundleExporter : IBundleExporter
var resolved = await _resolver.ResolveAsync(selection, cancellationToken).ConfigureAwait(false);
// 2. Convert to the wire-shaped DTO (strips EF identity, refs-by-name).
// M8 (B4): the resolver's site/dataConnection/instance closure is wired
// through via object-initializer — without this the aggregate would
// carry the empty defaults and the bundle would ship empty site/
// instance arrays even when those were selected (review item I3).
var aggregate = new EntityAggregate(
TemplateFolders: resolved.TemplateFolders,
Templates: resolved.Templates,
@@ -83,7 +87,12 @@ public sealed class BundleExporter : IBundleExporter
NotificationLists: resolved.NotificationLists,
SmtpConfigurations: resolved.SmtpConfigs,
// Inbound API keys are not transported between environments (re-arch C4).
ApiMethods: resolved.ApiMethods);
ApiMethods: resolved.ApiMethods)
{
Sites = resolved.Sites,
DataConnections = resolved.DataConnections,
Instances = resolved.Instances,
};
var contentDto = _entitySerializer.ToBundleContent(aggregate);
// 3. Per-category summary counts — used for fast humanly-readable preview at import.