Trigger Trigger

yaml
type: "io.kestra.plugin.fs.ftps.Trigger"

Trigger a flow as soon as new files are detected in a given FTPS server's directory.

Examples

Wait for one or more files in a given FTPS server's directory and process each of these files sequentially.

yaml
id: ftps_trigger_flow
namespace: dev

tasks:
  - id: for_each_file
    type: io.kestra.core.tasks.flows.EachSequential
    value: "{{ trigger.files | jq('.path') }}"
    tasks:
      - id: return
        type: io.kestra.core.tasks.debugs.Return
        format: "{{ taskrun.value }}"

triggers:
  - id: watch
    type: io.kestra.plugin.fs.ftps.Trigger
    host: localhost
    port: 990
    username: foo
    password: bar
    from: "/in/"
    interval: PT10S
    action: MOVE
    moveDirectory: "/archive/"

Wait for one or more files in a given FTPS server's directory and process each of these files sequentially. In this example, we restrict the trigger to only wait for CSV files in the mydir directory.

yaml
id: ftp_wait_for_csv_in_mydir
namespace: dev

tasks:
  - id: each
    type: io.kestra.core.tasks.flows.EachSequential
    value: "{{ trigger.files | jq('.path') }}"
    tasks:
      - id: return
        type: io.kestra.core.tasks.debugs.Return
        format: "{{ taskrun.value }}"

triggers:
  - id: watch
    type: io.kestra.plugin.fs.ftps.Trigger
    host: localhost
    port: "21"
    username: foo
    password: bar
    from: "mydir/"
    regExp: ".*.csv"
    action: MOVE
    moveDirectory: "archive/"
    interval: PTS

Properties

action

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: βœ”οΈ
  • Possible Values:
    • MOVE
    • DELETE
    • NONE

The action to perform on the retrieved files. If using 'NONE' make sure to handle the files inside your flow to avoid infinite triggering.

from

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: βœ”οΈ

The directory to list

host

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: βœ”οΈ

Hostname of the remote server

conditions

  • Type: array
  • SubType: Condition
  • Dynamic: ❌
  • Required: ❌

List of conditions in order to limit the flow trigger.

dataChannelProtectionLevel

  • Type: string
  • Dynamic: ❌
  • Required: ❌
  • Default: P
  • Possible Values:
    • C
    • S
    • E
    • P

Sets the data channel protection level (PROT).

insecureTrustAllCertificates

  • Type: boolean
  • Dynamic: ❌
  • Required: ❌

Whether the client should disable checking of the remote SSL certificate.

Note: This makes the SSL connection insecure, and should only be used for testing.

interval

  • Type: string
  • Dynamic: ❌
  • Required: ❌
  • Default: 60.000000000
  • Format: duration

The interval between test of triggers

mode

  • Type: string
  • Dynamic: ❌
  • Required: ❌
  • Default: EXPLICIT
  • Possible Values:
    • IMPLICIT
    • EXPLICIT

Sets FTPS mode, either "implicit" or "explicit".

moveDirectory

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: ❌

**The destination directory in case off MOVE **

passiveMode

  • Type: boolean
  • Dynamic: ❌
  • Required: ❌
  • Default: true

Whether to use a passive mode. Passive mode is generally considered more secure as it's less likely to encounter issues with NAT and firewalls. Therefore, this property is by default set to true. To use active mode instead, set the property to false.

password

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: ❌

Password on the remote server

port

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: ❌
  • Default: 990

Port of the remote server

proxyHost

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: ❌

FTP proxy host

proxyPort

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: ❌

FTP proxy port

proxyType

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: ❌
  • Possible Values:
    • DIRECT
    • HTTP
    • SOCKS

FTP proxy type

recursive

  • Type: boolean
  • Dynamic: ❓
  • Required: ❌
  • Default: false

List file recursively

regExp

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: ❌

A regexp to filter on full path

remoteIpVerification

  • Type: boolean
  • Dynamic: ❌
  • Required: ❌
  • Default: true

Control that the server ip that emit the request is the same than send response.

rootDir

  • Type: boolean
  • Dynamic: ❌
  • Required: ❌
  • Default: true

Is path is relative to root dir

stopAfter

  • Type: array
  • SubType: string
  • Dynamic: ❌
  • Required: ❌

List of execution states after which a trigger should be stopped (a.k.a. disabled).

username

  • Type: string
  • Dynamic: βœ”οΈ
  • Required: ❌

Username on the remote server

Outputs

files

  • Type: array
  • SubType: File
  • SubType: File
  • Dynamic: ❌
  • Required: ❌

The bucket of the downloaded file

Definitions

io.kestra.plugin.fs.vfs.models.File

Properties

accessDate
  • Type: string
  • Dynamic: ❓
  • Required: ❓
  • Format: date-time
fileType
  • Type: string
  • Dynamic: ❓
  • Required: ❓
  • Possible Values:
    • FOLDER
    • FILE
    • FILE_OR_FOLDER
    • IMAGINARY
flags
  • Type: integer
  • Dynamic: ❓
  • Required: ❓
groupId
  • Type: integer
  • Dynamic: ❓
  • Required: ❓
name
  • Type: string
  • Dynamic: ❓
  • Required: ❓
path
  • Type: string
  • Dynamic: ❓
  • Required: ❓
  • Format: uri
permissions
  • Type: integer
  • Dynamic: ❓
  • Required: ❓
size
  • Type: integer
  • Dynamic: ❓
  • Required: ❓
  • Type: boolean
  • Dynamic: ❓
  • Required: ❓
  • Default: false
updatedDate
  • Type: string
  • Dynamic: ❓
  • Required: ❓
  • Format: date-time
userId
  • Type: integer
  • Dynamic: ❓
  • Required: ❓

Was this page helpful?