Trigger Trigger

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

Trigger a flow as soon as new files are detected in a given SMB (Samba for eg.) server's directory.

Examples

Wait for one or more files in a given SMB server's directory and process each of these files sequentially. Then move them to another share which is used as an archive.

yaml
id: smb_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.smb.Trigger
    host: localhost
    port: 445
    username: foo
    password: bar
    from: "/my_share/in/"
    interval: PT10S
    action: MOVE
    moveDirectory: "/archive_share/"

Wait for one or more files in a given SMB server's directory and process each of these files sequentially. Then move them to another share which is used as an archive.

yaml
id: smb_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 }}"
      - id: delete
        type: io.kestra.plugin.fs.smb.Delete
        host: localhost
        port: 445
        username: foo
        password: bar
        uri: "/my_share/in/{{ taskrun.value }}"

triggers:
  - id: watch
    type: io.kestra.plugin.fs.smb.Trigger
    host: localhost
    port: 445
    username: foo
    password: bar
    from: "/my_share/in/"
    interval: PT10S
    action: NONE

Wait for one or more files in a given SMB server's directory (composed of share name followed by dir path) 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: smb_wait_for_csv_in_my_share_my_dir
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.smb.Trigger
    host: localhost
    port: "445"
    username: foo
    password: bar
    from: "my_share/mydir/"
    regExp: ".*.csv"
    action: MOVE
    moveDirectory: "my_share/archivedir"
    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.

interval

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

The interval between test of triggers

moveDirectory

  • Type: string
  • Dynamic: ✔️
  • Required:

**The destination directory in case off MOVE **

password

  • Type: string
  • Dynamic: ✔️
  • Required:

Password on the remote server

port

  • Type: string
  • Dynamic: ✔️
  • Required:
  • Default: 445

Port of the remote server

recursive

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

List file recursively

regExp

  • Type: string
  • Dynamic: ✔️
  • Required:

A regexp to filter on full path

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: