Skip to content
Please update to the latest release 0.77.2 to address Multiple CVEs.
Server.Import.WatchS3Directory

Server.Import.WatchS3Directory

This is an artifact that will monitor an S3 path for collections, which it will then ingest.


name: Server.Import.WatchS3Directory
description: |
   This is an artifact that will monitor an S3 path for collections, 
   which it will then ingest. 

# Can be CLIENT, CLIENT_EVENT, SERVER, SERVER_EVENT
type: SERVER_EVENT

parameters:
   - name: WatchDir
     default: "/velociraptor/*.zip"

   - name: Endpoint
     default: 'http://127.0.0.1:9000/'
     
   - name: Key
     default: 'admin'
     
   - name: Secret
     default: 'password'
     
   - name: Region
     default: 'us-east-1'

sources:
  - query: |
        LET S3_CREDENTIALS <= dict(
            endpoint=Endpoint, 
            credentials_key=Key, 
            credentials_secret=Secret,
            region=Region,
            no_verify_cert=1)
        SELECT * FROM foreach(
            row={
                SELECT * FROM diff(
                    query={
                        SELECT OSPath FROM glob(globs=WatchDir, accessor="s3")
                    }, period=3, key="OSPath"
                )
                WHERE Diff =~ "added"
            }, query={
                SELECT *, import_collection(
                    filename=OSPath,
                    accessor="s3"
                ),  OSPath 
                FROM scope()
            }
        )