FileTransform​File​Transform

Transform a file from Kestra with a Ruby script using the GraalVM scripting engine.

yaml
type: "io.kestra.plugin.graalvm.ruby.FileTransform"
yaml
id: transformRuby
namespace: company.team

tasks:
  - id: download
    type: io.kestra.plugin.core.http.Download
    uri: https://dummyjson.com/carts/1
  - id: jsonToIon
    type: io.kestra.plugin.serdes.json.JsonToIon
    from: "{{outputs.download.uri}}"
  - id: transformRuby
    type: io.kestra.plugin.graalvm.ruby.FileTransform
    from: "{{ outputs.jsonToIon.uri }}"
    script: |
      row = Polyglot.import('row')
      if row[:id] == 55
        # remove un-needed row
        Polyglot.export('row', nil)
      else
        # remove the 'products' column
        row[:products] = nil
        # add a 'totalItems' column
        row[:totalItems] = row[:totalProducts] * row[:totalQuantity]
      end
Properties

Source file containing rows to transform.

Can be a Kestra internal storage URI, a map or a list.

The script to evaluate

Number of concurrent parallel transformations to execute.

Take care that the order is not respected if you use parallelism.

Format uri

URI of a temporary result file.

The file will be serialized as an ION file.