Class: ActiveStorage::HotCell::Server::Transformers::Image::Vips
- Inherits:
-
VipsOperation
- Object
- HotCell::Operation
- Operation
- VipsOperation
- ActiveStorage::HotCell::Server::Transformers::Image::Vips
- Defined in:
- lib/active_storage/hot_cell/server/transformers/image/vips.rb
Overview
What ActiveStorage::Transformers::ImageProcessingTransformer does, moved out of the application,
and deliberately nothing more: the transformations and the format reach ImageProcessing exactly as
Rails hands them over.
There is no allowlist here, and that mirrors Rails: the vips path validates exactly one thing —
combine_options is refused — and ActiveStorage.supported_image_processing_methods is enforced by
the ImageMagick transformer alone. ImageProcessing itself refuses a name that is not one of its own
operations or a Vips::Image method, which rules out :system and friends. Bounding the operation
set and the keys inside loader/saver is a planned, separate deliverable — see the README — and
until then the cell's limits are the bound: RLIMIT_DATA, RLIMIT_FSIZE and the deadline still apply,
so a pipeline libvips has been told not to bound costs the caller a killed worker.