Class: ActiveStorage::HotCell::Server::Transformers::Image::Vips

Inherits:
VipsOperation show all
Includes:
ActiveStorage::HotCell::Server::Transforming
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.

Constant Summary

Constants inherited from Operation

Operation::CONTENT_TYPES

Method Summary

Methods included from ActiveStorage::HotCell::Server::Transforming

#perform