From 7e89f2092f11f0ee493ebb78a454d6656356e2d8 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Sun, 24 May 2026 03:46:09 -0400 Subject: [PATCH] feat(transport): add bundle manifest DTOs in Commons --- .../Types/Transport/BundleManifest.cs | 13 +++++++++++++ .../Types/Transport/BundleSummary.cs | 12 ++++++++++++ .../Types/Transport/EncryptionMetadata.cs | 8 ++++++++ .../Types/Transport/ManifestContentEntry.cs | 7 +++++++ 4 files changed, 40 insertions(+) create mode 100644 src/ScadaLink.Commons/Types/Transport/BundleManifest.cs create mode 100644 src/ScadaLink.Commons/Types/Transport/BundleSummary.cs create mode 100644 src/ScadaLink.Commons/Types/Transport/EncryptionMetadata.cs create mode 100644 src/ScadaLink.Commons/Types/Transport/ManifestContentEntry.cs diff --git a/src/ScadaLink.Commons/Types/Transport/BundleManifest.cs b/src/ScadaLink.Commons/Types/Transport/BundleManifest.cs new file mode 100644 index 0000000..17b88db --- /dev/null +++ b/src/ScadaLink.Commons/Types/Transport/BundleManifest.cs @@ -0,0 +1,13 @@ +namespace ScadaLink.Commons.Types.Transport; + +public sealed record BundleManifest( + int BundleFormatVersion, + string SchemaVersion, + DateTimeOffset CreatedAtUtc, + string SourceEnvironment, + string ExportedBy, + string ScadaLinkVersion, + string ContentHash, + EncryptionMetadata? Encryption, + BundleSummary Summary, + IReadOnlyList Contents); diff --git a/src/ScadaLink.Commons/Types/Transport/BundleSummary.cs b/src/ScadaLink.Commons/Types/Transport/BundleSummary.cs new file mode 100644 index 0000000..a0baafb --- /dev/null +++ b/src/ScadaLink.Commons/Types/Transport/BundleSummary.cs @@ -0,0 +1,12 @@ +namespace ScadaLink.Commons.Types.Transport; + +public sealed record BundleSummary( + int Templates, + int TemplateFolders, + int SharedScripts, + int ExternalSystems, + int DbConnections, + int NotificationLists, + int SmtpConfigs, + int ApiKeys, + int ApiMethods); diff --git a/src/ScadaLink.Commons/Types/Transport/EncryptionMetadata.cs b/src/ScadaLink.Commons/Types/Transport/EncryptionMetadata.cs new file mode 100644 index 0000000..c4562eb --- /dev/null +++ b/src/ScadaLink.Commons/Types/Transport/EncryptionMetadata.cs @@ -0,0 +1,8 @@ +namespace ScadaLink.Commons.Types.Transport; + +public sealed record EncryptionMetadata( + string Algorithm, // "AES-256-GCM" + string Kdf, // "PBKDF2-SHA256" + int Iterations, + string SaltB64, + string IvB64); diff --git a/src/ScadaLink.Commons/Types/Transport/ManifestContentEntry.cs b/src/ScadaLink.Commons/Types/Transport/ManifestContentEntry.cs new file mode 100644 index 0000000..f01680c --- /dev/null +++ b/src/ScadaLink.Commons/Types/Transport/ManifestContentEntry.cs @@ -0,0 +1,7 @@ +namespace ScadaLink.Commons.Types.Transport; + +public sealed record ManifestContentEntry( + string Type, + string Name, + int Version, + IReadOnlyList DependsOn);