zip_list
List all entries in a ZIP archive.
Parameters
- pathstringrequired
- Path to a ZIP file. Supports
${ctx.key}interpolation. - output_keystringdefault "zip_entries"
- Context key where the listing array is stored.
- max_entriesnumberdefault IRONFLOW_MAX_ZIP_ENTRIES / 10000
- Maximum archive entries listed before failing.
- max_total_uncompressed_bytesnumberdefault IRONFLOW_MAX_ZIP_UNCOMPRESSED_BYTES / 536870912
- Maximum total uncompressed entry size accepted while listing.
Context Output
{output_key}— An array of entries. Each entry has:name— Entry path inside the archive.is_directory— Whether entry is a directory.size— Uncompressed size in bytes.compressed_size— Compressed size in bytes.crc32— CRC32 checksum.method— Compression method used.
{output_key}_count— Number of entries in the archive.zip_list_path— The resolved archive path.zip_list_success—truewhen listing completed successfully.
Example
local flow = Flow.new("zip_list_demo")
flow:step("list", nodes.zip_list({
path = "/tmp/project_files.zip",
output_key = "entries"
}))
flow:step("log", nodes.log({
message = "Archive entry count: ${ctx.entries_count}",
level = "info"
})):depends_on("list")
return flow
Limits
zip_list validates entry count and total uncompressed bytes while reading archive metadata. This protects workflow context from very large listings and catches likely zip-bomb inputs before extraction.