cleverage/archive-process-bundle
CleverAge ArchiveProcessBundle integrates Archive handling into the ProcessBundle project, adding archive processing support to Symfony applications. Built for stable Symfony and LTS releases, it helps manage archived data within process workflows.
ZipTask/UnzipTask pipeline with per-input option resolution, correct files_base_path handling, and explicit exceptions instead of silent failures. v2.4 adds max_files and max_size options to UnzipTask (archive_unzip) to protect against “zip bombs”: entry count and total uncompressed size are checked before extraction, and the task throws a RuntimeException when a limit is exceeded. For PMs, this turns archive handling from a best-effort utility into a dependable, configurable safety control for production workflows.null (no limit). That means PMs must explicitly decide per workflow whether to cap file count and uncompressed size, and engineering must monitor the resulting exceptions. This is a product risk-acceptance decision, not just a configuration detail—especially for archives received from customers, partners, or legacy systems.Adopt When:
max_files / max_size limits in v2.4 to reduce zip-bomb risk.Look Elsewhere If:
Upgrade Consideration (v2.2 → v2.4): The v2.4 zip-bomb options are opt-in, with defaults of null (no limit), so existing unzip jobs should behave the same unless you configure limits. If you do set max_files or max_size, exceeding either limit will now throw a RuntimeException before extraction—make sure job error handling, retries, and monitoring account for this. Documentation now uses task codes instead of the deprecated service: syntax; update internal runbooks and examples if they still reference the old style. No API removals or code deprecations are announced. If you are upgrading from v2.0, the earlier v2.2 zip/unzip behavior changes still require a short regression pass; v2.4 itself is low-risk.
For Executives: "This bundle lets us archive completed workflows (e.g., customer onboarding, approval chains) without custom development, cutting database costs and supporting compliance. It’s a lightweight, MIT-licensed tool that integrates with our existing Symfony process engine. The latest v2.4 release adds configurable zip-bomb protection: we can cap how many files and how much uncompressed data an archive may contain before extraction, and failures raise clear errors we can monitor. That reduces operational risk when we ingest archives from customers, partners, or legacy systems. The defaults are unlimited, so we’ll set policy limits where the threat model requires it—but the capability is now built in rather than custom glue."
For Engineering: "The ArchiveProcessBundle provides a turnkey solution to offload completed processes to storage (e.g., S3) while keeping metadata queryable. Key benefits:
ZipTask/UnzipTask to resolve options per execution, strip only the leading files_base_path, resolve relative paths correctly when the base path is empty, and throw \RuntimeException / \UnexpectedValueException with ZipArchive error codes instead of returning a path on failure.max_files and max_size to UnzipTask (archive_unzip). Both default to null (no limit); when set, the task checks entry count and total uncompressed size before extraction and throws RuntimeException if exceeded. Docs and tests are included.service: syntax and documents bundle exceptions.Tradeoff: It’s not a full archival DB (e.g., no built-in search), and v2.4’s zip-bomb limits are not safe-by-default—we must configure and monitor them. Also, any existing job that depended on pre-v2.2 option-reuse or lenient-failure behavior would break loudly if you upgrade from that far back. That’s the right tradeoff for archival, but we should smoke-test existing archive jobs and add explicit limit policy before rollout. Let’s prototype archiving and unzipping a sample workflow to validate fit."*
How can I help you explore Laravel packages today?