UPDATE: This feature will appear only once all regions receive the 25.04 update to production shapes (currently estimated to be late May 2025). Apologies for the delay on this.

I have the great pleasure of introducing a fantastic new feature to you in the 25.04 release of Oracle Integration: File Server Events! 

OIC File Server is the built-in sFTP server that comes free with every instance of OIC and gives you 500 GB of free storage right out of the box. When using OIC File Server, you don’t have to stand up and manage a separate FTP server instance to support your file processing workflows. 

With this release, we now support OIC system-generated events for File Server. These events are raised automatically for you whenever files or folders are created or deleted in OIC File Server through an sFTP connection.  

 

Example Use Case

Automatically execute an integration whenever my customer or partner uploads new files to OIC File Server. For example, do you have customers or partners that upload invoice documents to your OIC File Server instance? With this new feature you can now write event driven integrations that are automatically executed for you upon file upload. No more scheduled integrations to poll folders for new files!

For this example, you may implement a new event-driven integration called processNewInvoices, where processNewInvoices is a subscriber to the OIC system event called File Server / File created. We’ll use this example throughout the rest of the blog. Keep reading for more information about these new system events.

Don’t like reading? Jump straight to the demo video!

 

Event Types

In this release, we support the four different event types:

  • File created
  • File deleted
  • Folder created
  • Folder deleted

Event types

The image above shows how you can select the event that you want to trigger your integration. This choice is offered in the trigger wizard when you choose to create a new event-driven integration.

The File Server system event consists of the following format:

{
    "action": "file_create",
    "name": "invoice.json",
    "path": "/inbox/invoices",
    "size": 2225,
    "extension": "json",
    "source": "urn://fs/sftp",
    "type": "file",
    "time": "2025-03-27T03:55:05.233Z",
    "metadata": [
        {
            "key": "createdBy",
            "value": "l2serviceadmin"
        }
    ]
}

 

Event Filters

Being able to filter events is very important. Obviously, you do not want your processNewInvoices integration to execute whenever any old file was uploaded. You probably only want it to run when someone uploaded a specific type of invoice file to a very specific folder in your file server. In our example, let’s say that we only want to process invoices in JSON format uploaded to the folder /inbox/invoices.

In this case, we need to define a filter so that our integration only runs when our customer uploads .json files into the /inbox/invoices folder. We can do that using the filter capability in the Configure Event wizard.

Event filters

The wizard allows us to specify the event filter as a JQ filter expression. You can learn more about JQ filters here. You can see from the image above that we are specifying that the path field should equal “/inbox/invoices” and the name field should end with “.json”. This is how we specify that the integration should only run when these criteria are met.

 

Example Filters

Here are some example filters that you might use for common file processing tasks:

  • Only trigger for files uploaded to the /inbox/invoices folder:
    • {"type":"jq_filter","filter-def":".data.path==\"/inbox/invoices\" "}
  • Only trigger if the file uploaded is a .csv file:
    • {"type":"jq_filter","filter-def(.data.name | endswith(\".csv\")"}
  • Only trigger if JSON files are uploaded to the /inbox/invoices folder:
    • {"type":"jq_filter","filter-def":".data.path==\"/inbox/invoices\" and (.data.name | endswith(\".json\")) "}

 

How to Build Event-Driven Integrations for OIC File Server

Watch the demo video below where I show end to end how to build a File Server event driven integration and then run it by uploading a file.

 

 

Current Limitations

With this initial release, the system events will only be triggered when files or folders are created using the FTP Adapter. They will not be triggered if you create or delete using the File Server native action. This will be supported in a future release but for now, if you need to manipulate files from within an integration flow, and you need that action to trigger an event, use an FTP adapter connection to the local fileserver in your flow rather than the native action.
Also, we will eventually release a graphical editor for building filters, so you don’t have to wrestle the JQ filer yourself.

Until then, happy eventing!