CreateZipArchiveNodeConfiguration
Namespace: Meshmakers.Octo.MeshAdapter.Nodes.Transform
Configuration for CreateZipArchive@1. Bundles a set of files into a
single ZIP archive written as base64 to
.
The value at must be a JSON array of entries of the shape
{ "fileName": "AP/RE-2025-001.pdf", "contentBase64": "JVBERi0..." }
.
A fileName may contain forward slashes to create folders inside the
archive (e.g. group by AP/AR). Keys are matched case-insensitively.
Instead of a pre-composed fileName, an entry may carry
pathSegments — an array of folder names ending with the file name
(incl. extension), e.g. ["FY 2026", "2026-01", "2026-01-15_ACME.pdf"].
Each segment is sanitized for file-system use (path separators and other
invalid characters are replaced), so data-derived values such as vendor
names cannot create unintended folders or invalid entry names.
public record CreateZipArchiveNodeConfiguration : SourceTargetPathNodeConfiguration, INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IPathNodeConfiguration, IEquatable<SourceTargetPathNodeConfiguration>, IEquatable<CreateZipArchiveNodeConfiguration>
Inheritance Object → NodeConfiguration → TargetPathNodeConfiguration → SourceTargetPathNodeConfiguration → CreateZipArchiveNodeConfiguration
Implements INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IPathNodeConfiguration, IEquatable<SourceTargetPathNodeConfiguration>, IEquatable<CreateZipArchiveNodeConfiguration>
Properties
ContentLengthTargetPath
Optional path to write the archive's byte length to (as a long). Handy for
feeding a following CreateFileSystemUpdate@1, which requires the
content length explicitly. Ignored in CreateZipArchiveNodeConfiguration.PersistAsFileSystemItem
mode (the node persists the archive itself).
public string ContentLengthTargetPath { get; set; }
Property Value
PersistAsFileSystemItem
When true, the archive is streamed to the per-execution scratch space and
persisted directly as a System.Reporting/FileSystemItem — the node writes
the resulting item's RtId (as a string) to
instead of a base64 archive.
This avoids the three large-object-heap copies of the whole ZIP (MemoryStream +
ToArray + base64) and a separate CreateFileSystemUpdate@1 round-trip that
otherwise OOM a big fiscal-year handover export (AB#4642). Requires
CreateZipArchiveNodeConfiguration.RootFolderWellKnownName. Entries may carry their content as
contentBase64 or as a scratch reference (scratchFileToken).
public bool PersistAsFileSystemItem { get; set; }
Property Value
RootFolderWellKnownName
RtWellKnownName of the file-system root folder to place the item under (persist mode).
public string RootFolderWellKnownName { get; set; }
Property Value
FileName
Static file name for the persisted archive (persist mode).
public string FileName { get; set; }
Property Value
FileNamePath
Path to the file name for the persisted archive (persist mode).
public string FileNamePath { get; set; }
Property Value
ContentType
Content type of the persisted archive (persist mode). Defaults to application/zip.
public string ContentType { get; set; }
Property Value
GenerateRtId
When true, generates the item's RtId (persist mode).
public bool GenerateRtId { get; set; }
Property Value
AppendSequenceNumber
When true, a running number (_001, _002, …) is inserted
before the extension of every content entry's file name, guaranteeing unique
entry names even when several entries would otherwise resolve to the same name
(e.g. two invoices of the same vendor on the same day).
public bool AppendSequenceNumber { get; set; }
Property Value
ManifestFileName
When set (e.g. belege.csv), a CSV manifest with this name is written as
the first archive entry. Each content entry may carry a manifest object
whose fields become the CSV columns (ordered union across entries); the entry's
final archive path (after sanitizing and sequence numbering) is prepended as the
CreateZipArchiveNodeConfiguration.ManifestFileNameColumn column. Semicolon-separated, UTF-8 with BOM.
public string ManifestFileName { get; set; }
Property Value
ManifestFileNameColumn
Column name for the entry path column of the manifest. Defaults to FileName.
public string ManifestFileNameColumn { get; set; }
Property Value
ManifestDelimiter
Value delimiter of the manifest CSV. Defaults to ; (BMD/Excel-friendly).
public string ManifestDelimiter { get; set; }
Property Value
Path
public string Path { get; set; }
Property Value
TargetPath
public string TargetPath { get; set; }
Property Value
TargetValueWriteMode
public TargetValueWriteModes TargetValueWriteMode { get; set; }
Property Value
TargetValueWriteModes
TargetValueKind
public ValueKinds TargetValueKind { get; set; }
Property Value
ValueKinds
DocumentMode
public DocumentModes DocumentMode { get; set; }
Property Value
DocumentModes
Description
public string Description { get; set; }
Property Value
Constructors
CreateZipArchiveNodeConfiguration()
public CreateZipArchiveNodeConfiguration()