Faspex admins have the ability to execute post-processing scripts on the server to accomplish
tasks such as virus checking, moving files, and creating backups once packages
arrive. Post-processing uses a set of filtering options to determine when to execute
customized scripts. Aspera Faspex can execute shell scripts and Windows batch
scripts, where information about the package is passed to the script by means of
environment variables.
Post-processing scripts that have been activated execute automatically after the
initial transfer to a default inbox. The relay of a package to a custom inbox does
not trigger script execution.
In the event that a Faspex Administrative account is
compromised, post-processing can be a serious threat to your server's security.
Thus, Aspera strongly recommends that you update your administrative users'
permissions in order to prevent unauthorized users from executing post-processing on
Faspex by restricting the IP addresses from which a user can log into an admin
account. For more information, see
Configure User Settings.
Note: By
default, post-processing is enabled. To disable it for security reasons, see the
instructions at the end of this topic.
-
Prepare the post-processing script.
Generate your post-processing script and place it in a directory on the
machine running your Faspex. Take note
of, or copy, your script's full system path on the server. You can utilize
the following environment variables in your post-processing scripts, but be
sure to use the proper format. For example, the variable
faspex_pkg_directory will be available as
$faspex_pkg_directory in shell scripts, and
%faspex_pkg_directory% in Windows batch files.
Variable |
Description |
faspex_pkg_directory |
Storage directory of the package. See cautionary note
below. |
faspex_pkg_name |
Package title. |
faspex_pkg_note |
Package note. |
faspex_pkg_id |
Package ID. |
faspex_recipient_list |
Comma-separated list of recipients. (for example, "admin,
johndoe") |
faspex_recipient_count |
Number of recipients. (for example, "3") |
faspex_recipient_i |
Name of the recipient. (i starts at "0", for example,
faspex_recipient_0, faspex_recipient_1 ...). |
faspex_sender_id |
The sender's ID. |
faspex_sender_name |
The sender's full name. |
faspex_sender_email |
The sender's e-mail. |
faspex_pkg_total_bytes |
Size of the package in bytes. |
faspex_pkg_total_files |
Number of files in the package. |
faspex_pkg_uuid |
The package's UUID (36 characters). |
faspex_metadata_fields |
Comma separated list of the metadata fields defined for the
package. |
faspex_metadata_<field> |
The value of the metadata field named <field>. In the
field name, spaces are converted to underscores, non alphanumeric
characters or underscores are stripped. For example, "my field"
becomes "my_field"; "*my_group" becomes "mygroup". |
CAUTION:
If you are upgrading from Faspex 2.X to 3.X and use
post-processing scripts, modify the scripts as follows, since the package's
full path is no longer available to the scripts:
- If the transfer server is on the same machine as Faspex, ensure that
the package path is prefixed with the user’s docroot. After doing
so, you may want to check for an extra slash character in the path
if you have a slash both at the end of the docroot and at the start
of the path as defined in $faspex_pkg_directory. For example,
the entry /home/faspex/faspex_packages/$faspex_pkg_directory and a
package title of "NewVideos" could result in /home/faspex/faspex_packages//NewVideos -
10d8a2f1-30f4-47ad-a55b-6f8dbba7ff8d/PKG - NewVideos.
- If the transfer server is on a different machine, modify
post-processing scripts to invoke the Node API, or mount the remote
volume on the Faspex server.
Set up post-processing in the Faspex Web
UI.
-
Go to Server > Post-Processing and click
Create New.
-
Configure the script.
Script to run
Item |
Description |
Name |
A descriptive name for this script. |
Path to script on server |
Enter the full path to the executable script that exists on
the server. Important: The system user faspex should
have the proper permissions to access and execute this file.
|
Active |
Check to enable this script. |
Execution criteria
All specified criteria must match the uploaded package's attributes for the
script to be run on that package. All match fields in this section are
optional. When
Exact match is checked, the package attribute has to
match the specified criterion exactly for the script to be run, the entered
text will be matched anywhere in the field.
Item |
Description |
Package name |
Execute when the package name matches the string.
|
Sender name |
Execute when the sender name matches the string. |
Sender email |
Execute when the sender email matches the string.
|
Recipient name |
Execute when the recipient name matches the string.
|
Recipient email |
Execute when the recipient email matches the string.
|
Package note |
Execute when the package note matches the string.
|
Package date |
Execute when the package date falls into the determined
range. |
Package size |
Execute when the package size falls into the determined
range. |
Package file count |
Execute when the package file count falls into the
determined range. |
For security reasons, you may optionally disable post-processing in faspex.yml.
The DisablePostProcessing setting can be found in the faspex.yml found
at:
/opt/aspera/faspex/config/faspex.yml
Important: Aspera strongly recommends backing up faspex.yml before
modifying.
Within faspex.yml, change
DisablePostProcessing:false to
DisablePostProcessing:true:
production:
...
DisablePostProcessing:true
...
For
more information on faspex.yml, see Configuring Faspex with faspex.yml.