Skip to main content

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

String

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

Boolean

RootFolderWellKnownName

RtWellKnownName of the file-system root folder to place the item under (persist mode).

public string RootFolderWellKnownName { get; set; }

Property Value

String

FileName

Static file name for the persisted archive (persist mode).

public string FileName { get; set; }

Property Value

String

FileNamePath

Path to the file name for the persisted archive (persist mode).

public string FileNamePath { get; set; }

Property Value

String

ContentType

Content type of the persisted archive (persist mode). Defaults to application/zip.

public string ContentType { get; set; }

Property Value

String

GenerateRtId

When true, generates the item's RtId (persist mode).

public bool GenerateRtId { get; set; }

Property Value

Boolean

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

Boolean

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

String

ManifestFileNameColumn

Column name for the entry path column of the manifest. Defaults to FileName.

public string ManifestFileNameColumn { get; set; }

Property Value

String

ManifestDelimiter

Value delimiter of the manifest CSV. Defaults to ; (BMD/Excel-friendly).

public string ManifestDelimiter { get; set; }

Property Value

String

Path

public string Path { get; set; }

Property Value

String

TargetPath

public string TargetPath { get; set; }

Property Value

String

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

String

Constructors

CreateZipArchiveNodeConfiguration()

public CreateZipArchiveNodeConfiguration()