Flight Deck FIMS API Reference
The Framework for Interoperable Media Services or FIMS, is an open standard for service oriented architecture (SOA). This approach replaces the tightly coupled devices and functions found in traditional systems. FIMS allows you to use a set of media services that are interoperable, interchangeable and reusable.
The Signiant FIMS Compliant API is based on the FIMS 1.1 standard. This service allows an orchestration system to invoke a Signiant workflow using a FIMS compliant API.
To use the FIMS API, you must have Signiant Manager installed, a familiarity with using an REST or SOAP API, and an understanding of the FIMS architecture.
An example set of REST functions are included in the Signiant Manager installation bundle, separate from the Manager installer, in the /support/fims_samples
directory.
For more information about the FIMS project, see the FIMS GitHub Organization
Job Queuing
The FIMS API supports the job and Agent queues as Signiant Resource Controls. These controls allow for the queuing of concurrent jobs and transfers within the system, as well as automated bandwidth provisioning.
Job Callback Functions (Webhooks)
Each submitted job can include a notification callback as a webhook message through the job replyTo
or faultTo
fields:
- The
replyTo
URL is sent job status changes - The
faultTo
URL is sent job error messages
The TransferFaultType
object includes details about failure notifications and the innerFaultType
element contains the return code for the job.
When a notification cannot be delivered, the notification is queued and retried for up to 12 hours.
When there are multiple notifications going to the same URL, these notifications are added to the queue and attempted once the first notification has been delivered or has expired.
Job Maintenance
The maintenance function removes deleted FIMS jobs and the associated job resource IDs. To learn more about maintenance, see Understanding Maintenance.
Supported FIMS Functionality
The Signiant FIMS SOAP API supports the following functions:
TransferMedia
MediaServiceStatus QueryJob
MediaServiceStatus ManageJob
The Signiant FIMS REST API supports the following endpoints:
- POST
/job
- Create a Transfer Job - GET
/job/{jobId}
- Retrieve a Transfer Job - GET
/job
- Retrieve All Transfer Jobs - GET
/job/jobId={jobid}&jobId={jobId}
- Retrieve a list of Specific Transfer Jobs - GET
/job
- Retrieve a Filtered List Transfer Jobs (See list Job Filter Criteria table below) - POST
/job/{jobId}/manage
- Manage Jobs (Control Jobs) - GET
/job/{jobId}/manage
- Get Minimal Job for current Status
Jobs submitted with the FIMS API are controlled by the Signiant Resource controls when applied.
The following tables detail these services including the supported and not supported operations for each service.
TransferMedia Service/Create a Transfer Job
The TransferMedia
Service or Create a Transfer Job functions are used to create FIMS jobs. This section describes the supported FIMS job attributes.
Job Status
The following table describes the values that can be represented by JobStatusType
on a FIMS job.
Supported Value | Value Description |
---|---|
new |
A new job is created. |
canceled |
The job has been canceled via the Manager interface or through the API. |
running |
The job is currently running. |
queued |
The job is currently queued by a Signiant [resource control]. |
completed |
The job is complete. |
failed |
The job has failed and is no longer running. |
Job Priority
Submitted jobs are queued (if configured) based on the priority in the TransferJob. If more than one job in the queue has the same priority, the finishBefore value can be used to prioritize the jobs (otherwise a FIFO order is maintained).
The priority of a job (the queue position) can be modified by using the MediaServiceStatus manageJob function, using the modify_priority
command.
The job priority (queue position) can be modified using the MediaServiceStatus ManageJob service and the Modify_Priority operation. When set to immediate priority level, the job is not started automatically - it sets the job as having the highest priority in the queue.
The following table describes the job priority level.
Job Priority Level | Description |
---|---|
Low | Job initially allocated to the end of the queue. |
Medium | Job initially allocated to be executed before any low priority jobs but after any existing medium priority jobs. |
High | Job initially allocated before any medium and low priority jobs but after existing high priority jobs. |
Urgent | Job initially allocated to be executed before any high, medium and low priority jobs but after existing urgent jobs. |
Immediate | Job should be executed as soon as the request is received. |
Elements Not Represented On The Transfer Job
The following elements are not represented on the transferJob.
Elements Not Supported | Element Description |
---|---|
estimatedCompletionDuration |
Not provided. |
tasks |
Not supported. |
queueReference |
While jobs can be queued in the system, a reference to the queue is not provided. |
currentQueuePosition |
Not provided. |
Scheduling Job Start
By default FIMS jobs are started as soon as they are received by the Manager.
To specify a job start time, use the startJob
prompt with the bms.StartJobByTimeType
function.
The bms.StartJobByTimeType
format is YYYY-MM-DDTHH:MM:ss+-HH:MM00
Note: +-HH:00
is the GMT offset for the job start time. For example, including 2020-04-20T12:00-04:00
creates a job for April 20, 2020 at noon GMT, adjusted to 8:00 AM local time.
To optionally specify that you want the job to start when submitted to the API, use the bms.StartJobByNoWaitType
xsi.type
in the startJob
object:
{
"transferJob": {
"bms.resourceID": "5",
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://example.com/transfers/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"bms.startJob": {
"@xsi.type": "bms.StartJobByNoWaitType"
},
"profiles": {
"transferProfile": [
{
"@name": "Transfer Profile",
"@description": "Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://example.com/c:/transfers/MediaIn"
}
]
}
]
}
}
}
To optionally specify when FIMS transfer jobs are started:
- use
startJob
andsig.StartJobByTimeType
in thesig.fimsMapping
object - use
startJob
andSchedule._sp_start_at
The bms.StartJobByTimeType
format is YYYY-MM-DDTHH:MM:ss+-HH:MM00
where +-HH:00 is the GMT offset (for example: 2020-09-30T12:00-04:00).
The following example shows the Media Mover transfer job using startJob
and sig.StartJobByTimeType
mapping:
{
"transferJob": {
"bms.resourceID": "5",
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://example.com/X:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"bms.startJob": {
"@xsi.type": "bms.StartJobByTimeType",
"bms.time": "2020-09-02T18:00:00Z"
},
"profiles": {
"transferProfile": [
{
"name": "Transfer Profile",
"description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://example.com/C:/storage/MediaIn"
}
],
"bms.location": "https://agent.example.com/template/Media_Mover_Workflows/component/MediaDistributor",
"bms.ExtensionGroup": [
{
"sig.SigniantExtensionGroup": [
{
"sig.jobContextParameters": {
"sig.jobName": "JobName_1",
"sig.jobGroup": "MediaDistributor"
},
"sig.fimsMapping": [
{
"sig.sourceAgent": [
"MediaDistributor.Source.SourceAgent"
],
"sig.targetAgent": [
"MediaDistributor.Target.TargetAgents"
],
"sig.BMEssenceLocatorType": [
"MediaDistributor.Source.SourceData"
],
"sig.destination": [
"MediaDistributor.Target.TargetDirectory"
],
"sig.priority": ["MediaDistributor.Schedule.priority"],
"sig.StartJobByTimeType": [
"MediaDistributor.Schedule._sp_start_at"
]
}
],
"sig.jobVariables": {
"sig.JobVariableName": "MediaDistributor.Schedule._sp_interrupt_on_failure",
"sig.JobVariableValue": "no"
},
"sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
"sig.JobVariableValue": "job date"
}
]
}
]
}
]
}
}
}
The following example shows the Media Mover transfer job using startJob and Schedule._sp_start_at:
{
"transferJob" : {
"bms.resourceID" : "5",
"bms.bmObjects" : {
"bms.bmObject" : [ {
"bms.bmContents" : {
"bms.bmContent" : [ {
"bms.bmContentFormats" : {
"bms.bmContentFormat" : [ {
"bms.bmEssenceLocators" : {
"bms.bmEssenceLocator" : [ {
"@xsi.type" : "bms.SimpleFileLocatorType",
"bms.file" : "file://testserver.com/F:/storage/MediaOut"
} ]
},
"bms.packageSize" : 44947460
} ]
}
} ]
}
} ]
},
"bms.priority" : "low",
"bms.startJob" : {
"@xsi.type" : "bms.StartJobByTimeType",
"bms.time" : "2020-09-29T18:00:00Z"
},
"profiles" : {
"transferProfile" : [ {
"name" : "Transfer Profile",
"description" : "Highspeed Transfer Delivery",
"transferAtom" : [ {
"bms.destination" : "file://targetagent.example.com/C:/storage/MediaIn"
} ],
"bms.location" : "https://sourceagent.example.com/template/Media_Mover_Workflows/component/MediaDistributor",
"bms.ExtensionGroup": [ {
"sig.SigniantExtensionGroup": [ {
"sig.jobContextParameters": {
"sig.jobName": "JobName_1",
"sig.jobGroup" : "MediaDistributor"
} ,
"sig.fimsMapping" : [ {
"sig.sourceAgent" : ["MediaDistributor.Source.SourceAgent"],
"sig.targetAgent" : ["MediaDistributor.Target.TargetAgents"],
"sig.BMEssenceLocatorType" : ["MediaDistributor.Source.SourceData"],
"sig.destination" : ["MediaDistributor.Target.TargetDirectory"],
"sig.priority" : ["MediaDistributor.Schedule.priority"],
} ] ,
"sig.jobVariables" :
{ "sig.JobVariableName" : "MediaDistributor.Schedule._sp_interrupt_on_failure", "sig.JobVariableValue" : "no"},
{ "sig.JobVariableName" : "MediaDistributor.Target.PathMappingOptions", "sig.JobVariableValue" : "job date"}
{ "sig.JobVariableName": "MediaDistributor.Schedule._sp_frequency" , "sig.JobVariableValue": "Once" },
{ "sig.JobVariableName": "MediaDistributor.Schedule._sp_start_at" , "sig.JobVariableValue": "2020/09/29 21:30:00" },
} ]
} ]
} ]
}
}
}
MediaServiceStatus QueryJob / Retrieve a Transfer Job
The MediasServiceStatus QueryJob
service or Retrieve a Transfer Job REST call allow you to query the jobs submitted with the FIMS API. Use QueryJobRequestByIdType
to query one or many resourceIDs.
Note: QueryJobRequestByFilterType
is not supported. JobInfoSelectionType
only supports 'all'
MediaServiceStatus ManageJob/Manage Jobs (Control Jobs)
The MediasServiceStatus ManageJob service/Manage Jobs (Control Jobs) allows you to control jobs submitted through the FIMS API. The first table details the supported commands for the service and the second table details the commands not supported with the MediaServiceStatus ManageJob service.
Supported Command | Command Description |
---|---|
pause |
Temporarily stop a job from running. |
cancel |
Stop a running job or removes the job from a job queue |
cleanup |
Delete a job on the Signiant Manager |
resume |
Resume a paused job |
restart |
Restart a job |
modify_priority |
Modify the priority of any queued job |
The stop
command is not supported.
The MediaServiceStatus ManageQueue
service is not supported. All jobs submitted may be controlled by Resource Controls.
Signiant FIMS API Examples
This section uses code examples and REST examples to create, manage, list and retrieve jobs. The REST examples used in this guide are available in the Signiant Manager installer bundle in /support/fims_samples
.
The following sections and examples are based on the default FIMS configuration.
Using the examples
You must edit the JSON and make the following updates:
- Manager hostname
- Source agent hostname/agent group name
- Target agent hostname/agent group name
- Source path
- Target path
You must edit the REST header to modify your security credentials:
X_FIMS_USERNAME
X_FIMS_PASSWORD
Accessing The Signiant FIMS WSDL And Schema (SOAP)
The WSDL for the Transfer Service end point to submit jobs can be obtained from the following URL:
http://signiant_manager_name/signiant_fims_transfer_service/TransferMediaPort?wsdl
The WSDL for the Transfer Service end point to query and control jobs can be obtained from the following URL:
http://signiant_manager_name/signiant_fims_transfer_service/TransferMediaStatusPort?wsdl
The Signiant schema extension can be obtained from the following URL:
https://signiant_manager_name/signiant_fims_transfer_service/TransferMediaPort?wsdl&resource=signiantMediaService-V_1_1_0.xsd
Accessing the Signiant FIMS REST API
Use the following URL:
http://signiant_manager_name/signiant_fims_transfer_service/transferservice/service_URI
The table below details the URLs for the TransferService services.
The following table lists the Job Filter Criteria:
URL | Description | HTTP Method | Request Body | Success Body | Failure Body |
---|---|---|---|---|---|
.../job | Create a Transfer Job | POST | tms: transferJob | tms: transferJob | tms: TransferFaultType |
.../job/{jobId} | Retrieve a Transfer Job | GET | - | tms: transferJob | tms: TransferFaultType |
.../job/ | Retrieve All Transfer Jobs | GET | - | bms: JobsType | tms: TransferFaultType |
.../job/jobId={jobid}&jobId={jobId}... | Retrieve a list of Specific Transfer Jobs | GET | - | bms: JobsType | tms: TransferFaultType |
.../job/ (See the Job Filter Criteria table below) | Retrieve a Filtered List of Transfer Jobs | GET | - | bms: QueryJobResponseType | tms: FaultMsg |
.../job/{jobId}/manage | Manage Jobs (Control Jobs) | POST | bms: ManageJobRequestType | tms: transferJob *1 | tms: FaultMsg |
.../job/{jobId}/manage | Get Minimal Job for current status | GET | - | tms: transferJob (minimum attributes) | tms: FaultMsg |
The HTTP Response Header for .../job is location:(urlForJob).
The {jobID} parameter described above is the unique identifier for a job.
Parameter | Description | Values |
---|---|---|
JobInfoSelectionType | Return only mandatory attributes or all attributes of a job | all or mandatory |
toDate | Jobs to be listed started on or before the date specified in this field | dateTime |
fromDate | Jobs to be listed shall have started on or after the date specified in this field | dateTime |
includeQueued | A flag to indicate job or jobs in the queue | true, false |
includeFinished | A flag to indicate job or jobs in the 'Completed', 'Stopped' or 'Cleaned' state | true, false |
includeActive | A flag to indicate job or jobs in the 'Running', 'Paused' or 'Unknown' state | true, false |
includeFailed | A flag to indicate job or jobs in the 'Failed' state | true, false |
maxNumberResults | Maximum number of results to be listed | Positive Integer Value |
The following table describes the notifications that can be generated for the Transfer Service. The notifications and faults are generated by the service and sent to the orchestration system that invoked the service. The URL for notification or fault is contained in the replyTo and faultTo of the submitted job.
Description | HTTP Method | Body | Generation Events |
---|---|---|---|
Transfer Job events related to state change, creation, deletion and progress | POST | tms: transferJob |
Create Job, Job Progress, Manage Job |
Transfer Job Failures | POST | tms: TransferFaultNotificationType |
Create Job |
JSON Samples
The following table describes the JSON samples used in the Curl examples. These samples are located in the Signiant Manager installation directory in /support/fims_samples.
File | Description |
---|---|
SigniantFIMSCreateJob.json |
Transfer utilizing FIMS default workflow. |
SigniantFIMSCreateJobWithExtension.json |
Transfer using custom workflow. Shows specification of: Custom job template library, Custom start component, Custom job group, Custom job name, Custom prompts. The sample sig.fimsMapping and sig.jobVariables match with a Job Template library of Media_Mover_Workflows and the MediaDistributor start component. |
SignianFIMSCancelJob.json |
Cancel an existing job. |
REST_Server.pl |
Receives and displays REST calls. |
In order to specify the location of source files and folders to transfer - use the URL format for files. The URL must specify the agent name and the location of the files and/or folders to be transferred. The files and agent must be co-located (SAN, Local disk, NAS, etc.). The URL format can be used to specify CIFs locations as well.
Use the bmEssenceLocatorType to specify the physical location of the files and/or folders to be transferred. The FIMS API supports all the three types of essence locators: SimpleFileLocatorType, ListFileLocatorType and FolderLocatorType.
To specify file and folder values:
The following is the format of the URL for the file location on the bmEssenceLocatorType:
file://agent name/file location
Where:
- agent name: specifies the name of the Signiant agent (from the agent listing page) or the agent group name (from the agent details)
- file location: the location of the data to transfer
URL format file path examples:
- Windows JSON example of a standard file path:
bms.file
: file://agent.example.com/c:/transfers/MediaOut
- Windows JSON example of UNC path:
bms.file
: file://agent.example.com///nas-storage.example.com/main/storage/MediaOut
- Linux JSON example of a standard Linux file path:
bms.file
: file://agent.example.com//storage/MediaOut
The SimpleFileLocatorType
specifies the location of a single file to transfer.
Default Workflows
Signiant jobs are created from configured workflows in the system. These workflows are templates that contain variables and default values that are used when creating a job in the system. When a job is created from a workflow it is stored in a Job Group.
By default the FIMS API uses a preset workflow and Job Group for the submitted jobs. Signiant Extension Group attributes are not required when submitting jobs to the default workflow.
The default values in the workflow can be modified based on your requirements.
- Default workflow: FIMS_Workflow
- Default job group: FIMS_Workflow
- Default job name: FIMS_
<timestamp>
To view the default FIMS JSON and to export this a template, use the Manager
- Open the FIMS_Workflow job template in the job template canvas.
- Right-click the FIMS_Transfer_Start component and select Create FIMS JSON. You can view the JSON within the viewer or Export to a file which you can use to view FIMS variables and to customize your FIMS implementation.
Create a Job
Use the following Curl command to create a job:
curl -X POST -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <Username>" -H "X-FIMS-Password: <Password>" -H "Content-Type: application/json" --data @SigniantFIMSCreateJob.json http://manager.example.com/signiant_fims_transfer_service/transferservice/job
REST Create Job JSON Content (SigniantFIMSCreateJob.json)
{
"transferJob": {
"bms.resourceID": 1426773837,
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"profiles": {
"transferProfile": [
{
"@name": "Transfer Profile",
"@description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
}
]
}
]
}
}
}
Create Job Response
# => 200 OK | application/json 124 bytes
{`tms.transferJob`=>
{`bms.resourceID`=>`1426773837`,
`bms.status`=>`running`,
`bms.serviceProviderJobID`=>`FIMS_1426773847566`}}
Managing a Job
The example below shows how to cancel a job. Use the following Curl command to manage (cancel) a job:
curl -X POST -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <Username>" -H "X-FIMS-Password: <Password>" -H "Content-Type: application/json" --data @SigniantFIMSCancelJob.json http://manager.example.com/signiant_fims_transfer_service/transferservice/job/<job_id>/manage
REST Create Job Response
{
"tms.transferJob": {
"bms.resourceID": "80",
"bms.status": "canceled",
"bms.serviceProviderJobID": "FIMS_1427392901082"
}
}
How To Cleanup a Job
To delete or cleanup a job on the Signiant Manager, use the manage
request and the cleanup
job command.
Json Cleanup
{
"jobID": "1437658544440713",
"jobCommand": "cleanup"
}
Use the following Curl command to clean up a job:
curl -X POST -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <username>" -H "X-FIMS-Password:
<password>" -H "Content-Type: application/json" --data @SigniantFIMSCleanupJob.
json http://manager.example.com/signiant_fims_transfer_
service/transferservice/job/<jobid>/manage
REST Cleanup Job Response
{
"tms.transferJob": {
"bms.resourceID": "1437658544440713",
"bms.status": "cleaned",
"bms.serviceProviderJobID": "FIMS_1437658604953"
}
}
Retrieving Job Details
Use the following Curl command to retrieve a job:
curl -X GET -H "X-FIMS-Version: 1.1" -H "X-FIMS-UserName: <Username>" -H "X-FIMS-Password: <Password>" -H "Content-Type: application/json" http://manager.example.com/signiant_fims_transfer_service/transferservice/job/<jobid>
REST Job Details Response
{
"tms.transferJob": {
"bms.resourceID": "1427392239722417",
"bms.status": "completed",
"bms.serviceProviderJobID": "FIMS_1427392251829",
"bms.operationName": "Transfer",
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
},
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent2.example.com/C:/storage/MediaIn/"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"bms.jobStartedTime": "2020-03-26T13:50:53.000-04:00",
"bms.jobCompletedTime": "2020-03-26T13:50:57.000-04:00",
"bms.processed": {
"@xsi.type": "bms.ProcessedInfoByBytesType",
"bms.percentageProcessedCompleted": 100,
"bms.processedBytesCount": 2218710
},
"profiles": {
"transferProfile": [
{
"@name": "Transfer Profile",
"@description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
}
]
}
]
}
}
}
Receiving And Viewing Notifications
To invoke a Perl-based web server that accepts and displays received FIMS notifications, use the following command. This code is included in the Signiant Manager bundle directory in /support/fims_samples
.
RESTServer.pl 8088
Note: Your job must include a notification section which provides details on where to send the notification. These details must include the IP address and port where the RESTServer.pl
is running.
Finding Prompt Variable Values
To find prompt variable values:
- In the Signiant Manager, right-click a component and select Edit Component.
- In the Component Editor, select a prompt and click Advanced Options.
- In the Prompt Editor, the variable values are displayed in the Values and Labels fields.
Submitting Non-FIMS Transfer Jobs
The Signiant Extension Schema
The Signiant Extension Schema allows you to specify your own workflow values at runtime rather than using the configured default FIMS configuration. For example, you can invoke a custom workflow or use the Media Mover distribute workflow with your own variable values.
You do this by specifying the values you need in the transfer request payload.
Signiant Extension Schema Example
{
"transferJob": {
"bms.resourceID": 1426773850,
"bms.notifyAt": {
"bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
"bms.faultTo": "http://192.168.0.1:8089/TransferMediaNotificationPort"
},
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"profiles": {
"transferProfile": [
{
"name": "Transfer Profile",
"description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://agent.example.com/C:/storage/MediaIn/"
}
],
"bms.location": "https://manager.example.com.com/template/Media_Mover_Workflows/component/MediaDistributor",
"bms.ExtensionGroup": [
{
"sig.SigniantExtensionGroup": [
{
"sig.jobContextParameters":
{
"sig.jobName": "JobName_1_1426773850",
"sig.jobGroup": "MediaDistributor"
}
,
"sig.fimsMapping": [
{
"sig.sourceAgent": [
"MediaDistributor.Source.SourceAgent"
],
"sig.targetAgent": [
"MediaDistributor.Target.TargetAgents"
],
"sig.BMEssenceLocatorType": [
"MediaDistributor.Source.SourceData"
],
"sig.destination": [
"MediaDistributor.Target.TargetDirectory"
],
"sig.priority": [
"MediaDistributor.Schedule.priority"
]
}
],
"sig.jobVariables":
{
"sig.JobVariableName": "MediaDistributor.Schedule._sp_interrupt_on_failure",
"sig.JobVariableValue": "no"
},
{
"sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
"sig.JobVariableValue": "job date"
}
}
]
}
]
}
]
}
}
}
Generating Code From The Signiant Extension Schema
To assist the FIMS developer with the integration of the Signiant FIMS extension schema into the development environment, Signiant provides an XSD
version of its FIMS extension schema. The XSD can be downloaded from:
https://<manager>/signiant_fims_transfer_service/TransferMediaPort/wsdl/resource=signiantMediaService-V1_1_0.xsd
How To Use The Signiant Extension Schema
To use the Signiant Extension Schema, you must enter correct workflow variable names. To determine these variables in the Signiant Manager:
- In Jobs select Templates.
- Select your workflow and click Open Canvas.
- Right-click on the start component and select Show Web Services Info.
The Signiant Extension Schema provides type definitions that allow you to invoke any workflow by mapping standard FIMS attributes to workflow variables and to specify arbitrary parameters to jobs.
There are three categories of type definitions that you can use:
- FIMSAttributeMapping: specifies the workflow component variable name that a FIMS standard element maps to.
- JobVariable: specifies a workflow component variable and associated value.
- JobContextParameters: specifies values concerning the environment in which a job executes.
All or none of these types can be specified to provide information to submit a job. These types are then added to the SigniantExtensionGroup type, which in turn is added to the TransferProfile ExtensionGroup.
Mapping FIMS standard elements to Job Template variables
The FIMSAttributeMappingType specifies the Job Template variable that a FIMS standard element value must be mapped to. For example in the MediaDistributor Job Template below, the variable for the source agent is MediaDistributor.Source.SourceAgent. To specify the mapping use the element sourceAgent and set the value to MediaDistributor.Source.SourceAgent.
The following table details the FIMSAttributeMappingType elements:
Element | Value |
---|---|
sourceAgent | Extracts the host name from the BMEssenceLocator type URL and inserts the value into the specified workflow component value for the source agent. |
targetAgent | Extracts the host name from the TransferAtom destination type URL and inserts the value into the specified workflow component value for the target agent. |
BMEssenceLocatorType | Extracts the file name or folder portion of the BMEssenceLocator type URL and inserts the value into the specified workflow component value for the source data. |
destination | Extracts the file name or folder portion of the TransferAtom destination type URL and inserts the value into the specified workflow component value for the target location. |
priority | Extracts the TransferJobType priority value and inserts the value into the specified workflow component value for priority. |
finishBefore | Extracts the TransferJobType finishBefore value and inserts the value into the specified workflow component value for finishBefore. |
FIMSAttributeMapping Example
"sig.fimsMapping": [
{
"sig.sourceAgent": [
"MediaDistributor.Source.SourceAgent"
],
"sig.targetAgent": [
"MediaDistributor.Target.TargetAgents"
],
"sig.BMEssenceLocatorType": [
"MediaDistributor.Source.SourceData"
],
"sig.destination": [
"MediaDistributor.Target.TargetDirectory"
],
"sig.priority": [
"MediaDistributor.Schedule.priority"
]
}
]
Specifying a Job Template
All jobs are created using Job Templates within Job Template libraries. To specify a workflow to use (other than the default FIMS configuration), you must specify which Job Template Library to use within the submitted job. The desired Job Template Library name must be specified in the job's TransferProfileType location value in the request payload. The format of the value should be a URL which includes the Job Template Library name and Job Template name.
The following example shows the URL format to specify a Job Template Library name and Job Template name:
https://signiant_manager_name/template/template_name/component/startcomponent_name
Where:
- template_name: is the actual name of the Job Template Library, for example Media_Mover_Workflows.
- startcomponent name: is the name of the Job Template for the desired Job Template Library.
The following is an example for the TransferProfileType location that specifies the use of the Media Mover Media Distributor Job Template Library:
https://<signiant_manager_name/template>/Media_Mover_Workflow/component/MediaDistributor
The following is an example of how to specify a Job Template Library at runtime:
"bms.location": "https://<signiant_manager_name/template>/template/Media_Mover_Workflows/component/MediaDistributor"
Specifying a Job Group and Job Name
The JobContextVariables are specified values to control the environment in which the job executes. Currently there are two values that can be specified:
jobName
: Specifies the Signiant Job Name. The name must be unique and can contain only alphanumeric characters and underscores. The jobName is limited to 32 characters.jobGroup
: The name of the job group, which must exist in the Signiant system and the user specified in the FIMS job submission must have access to the specified job group.
The following shows an example of setting the jobName and jobGroup values:
"sig.jobContextParameters":
{
"sig.jobName": "JobName_1_1426773850",
"sig.jobGroup": "MediaDistributor"
}
,
Specifying Job Variables
The JobVariable type allows any workflow component variable to be added to a submitted FIMS job. These variables should not include the subset from the FIMSAttributeMapping
type.
The following describes elements of the JobVariable
type:
JobVariableName
: workflow component variable name, for example:MediaDistributor.Source.SourceData
JobVariableValue
: the required value for the workflow component variable.
The SigniantExtensionGroup Type allows you to add JobVariable, JobContextVariables, and/or FIMSAttributeMapping to a job. Any or all of the elements can be added to the SigniantExtensionGroup as required.
JobVariable Example
"sig.jobVariables":
{
"sig.JobVariableName": "MediaDistributor.Schedule._sp_interrupt_on_failure",
"sig.JobVariableValue": "no"
},
{
"sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
"sig.JobVariableValue": "job date"
},
{
"sig.JobVariableName": " MediaDistributor.Transport.BandwidthThrottleByTimeOfDay",
"sig.JobVariableValue": "00:00;00:00;YYYYYYY;1875000;"
}
Once the SigniantExtensionGroup
is populated with the required values, the extension group is then added to the TransferProfileType ExtensionGroup as an any element.
Troubleshooting
Common Error Messages
The following table provides descriptions of the common error messages.
Error | Description | Explanation |
---|---|---|
INF_S00_003 |
N/A | Check the Jboss log (signiant.log) for errors. |
INF_S00_003 |
The username or password you entered is incorrect. | The header contained an invalid username or password. |
INF_S00_003 |
Insufficient permissions error | The user does not have access to the specified job group or job template library or the job group or job template library does not exist. |
DAT_S00_001 |
Missing ResourceID or invalid request format | This is typically a JSON formatting error or valid JSON sent to the wrong service. |
DAT_S00_001 |
The supplied jobID already exists | The jobId in the JSON was already used for a transfer on this Signiant Manager. |
DAT_S00_002 |
Missing priority | The mandatory priority field is not specified. |
DAT_S00_003 |
Agent is not valid | The source or target agent name is incorrect. |
The following is an example of an Error Response.
# => 422 ClientError | application/json 93 bytes
{
"fault": {
"bms.code": "DAT_S00_0001",
"bms.description": "The supplied jobID already exists"
}
}
Troubleshooting Notes
The following list includes details which may help resolve some issues:
-
When referencing a custom workflow, both the source and target Agents must be set.
-
Specified paths must be absolute. Relative paths are not supported by the out-of-the-box FIMS sample or Media Mover workflows.
-
Most of the JSON properties are mandatory - for any random parsing errors, review the known working sample and modify rom this point. Typically, specific errors are not generated to indicate which property is missing.
-
Whereas the bms.packageSize property is mandatory, the specified value is irrelevant.
-
The terms JobID and ResourceID are used interchangeably in FIMS. Both terms refer to the identification string set during the create job call.
-
Specifying a namespace (for example, bms) for parameters is optional, but is a recommended practice. If you choose to specify only some namespaces you will see JSON parsing errors. You must either specify all of the namespaces or specify no namespaces.
-
Use the following format to specify a source or destination path:
bms.file: "file://agent.example.com//<folderName>/<filename>"
bms.destination: "file://agent.example.com//<folderName>"
- Use the following format to specify a source or destination UNC path:
bms.file: "file://agent.example.com///<FileServerHostname>/<UNCShare>/<folderName>/<filename>"
bms.destination: "file://agent.example.com///<FileServerHostname>/UNCShare>/<folderName>"
REST Examples
REST Create Job Request for Standard FIMS Job
RestClient.post "http://manager.example.com/signiant_fims_transfer_service/transferservice/job", 574 byte(s) length, "Accept"=>"*/*; q=0.5, application/xml", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"574", "Content-Type"=>"application/json", "X-FIMS-Password"=>"password", "X-FIMS-UserName"=>"username"
REST Create Job JSON Content
{
"transferJob": {
"bms.resourceID": 1426773837,
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"profiles": {
"transferProfile": [
{
"@name": "Transfer Profile",
"@description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
}
]
}
]
}
}
}
REST Create Job Response
# => 200 OK | application/json 124 bytes
{"tms.transferJob"=>
{"bms.resourceID"=>"1426773837",
"bms.status"=>"running",
"bms.serviceProviderJobID"=>"FIMS_1426773847566"}}
REST Create Job Request for Standard FIMS Job with Notifications Requested
RestClient.post `http://manager.example.com/signiant_fims_transfer_service/transferservice/job`, 729 byte(s) length, `Accept`=>`*/*; q=0.5, application/xml`, `Accept-Encoding`=>`gzip, deflate`, `Content-Length`=>`729`, `Content-Type`=>`application/json`, `X-FIMS-Password`=>`password`, `X-FIMS-UserName`=>`username`
REST Create Job JSON Content
{
"transferJob": {
"bms.resourceID": 1426773887,
"bms.notifyAt": {
"bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
"bms.faultTo": "http://192.168.0.1:8089/TransferMediaNotificationPort"
},
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"profiles": {
"transferProfile": [
{
"@name": "Transfer Profile",
"@description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
}
]
}
]
}
}
}
REST Create Job Response
# => 200 OK | application/json 124 bytes
{"tms.transferJob"=>
{"bms.resourceID"=>"1426773887",
"bms.status"=>"running",
"bms.serviceProviderJobID"=>"FIMS_1426773897458"}}
REST Create Job Notification of Job Started
{:method=>"POST"@0,
:URL=>{:path=>"/TransferMediaNotificationPort"@5},
:version=>"1.1"@41,
:headers=>
{"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
"Content-Length"=>"1044",
"Content-Type"=>"text/json",
"Host"=>"192.168.0.1:8088",
"Connection"=>"Keep-Alive",
"User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
"transferJob": {
"bms.resourceID": "1426773887",
"bms.notifyAt": {
"bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
"bms.faultTo": "http://192.168.0.1:8089/TransferMediaNotificationPort"
},
"bms.status": "running",
"bms.serviceProviderJobID": "FIMS_1426773897458",
"bms.operationName": "Transfer",
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"bms.jobStartedTime": "2020-03-19T10:04:58.000-04:00",
"bms.jobElapsedTime": "PT4.507S",
"bms.processed": {
"@xsi.type": "bms.ProcessedInfoByBytesType",
"bms.percentageProcessedCompleted": 0,
"bms.processedBytesCount": 0
},
"profiles": {
"transferProfile": [
{
"@name": "Transfer Profile",
"@description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
}
]
}
]
}
}
}
REST Create Job Notification of Job Fault
{
"transferFaultNotificationType": {
"transferJob": {
"bms.resourceID": "1437658544440713",
"bms.notifyAt": {
"bms.replyTo": "http://10.0.76.60:8088/TransferMediaNotificationPort",
"bms.faultTo": "http://10.0.76.60:8089/TransferMediaNotificationFailedPort"
},
"bms.status": "failed",
"bms.serviceProviderJobID": "FIMS_1437658604953",
"bms.operationName": "Transfer",
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/J:/var"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"bms.jobStartedTime": "2020-07-23T09:36:46.000-04:00",
"bms.jobElapsedTime": "PT2.703S",
"bms.processed": {
"@xsi.type": "bms.ProcessedInfoByBytesType",
"bms.percentageProcessedCompleted": 0,
"bms.processedBytesCount": 0
},
"profiles": {
"transferProfile": [
{
"@name": "Transfer Profile",
"@description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://agent2.example.com/C:/storage/MediaIn"
}
]
}
]
}
},
"fault": {
"bms.code": "SVC_S00_0009",
"bms.description": "Non-zero exit code from the Source initialization command\r\nExecution of job component 'FIMS_Transfer' is suppressed.\r\nFinished job component: FIMS_Transfer_Start.GROUP_FIMS_Transfer.FIMS_Transfer - with errors.\r\n",
"bms.innerFault": [
{
"bms.code": "24"
}
]
}
}
}
REST Create Job Notification of Job Completed
{"tms.transferJob": {
"bms.resourceID": "11",
"bms.notifyAt": {
"bms.replyTo": "http://agent1.example.com:8080/FIMSResponse/response.jsp",
"bms.faultTo": "http://agent1.example.com:8080/FIMSResponse/response.jsp"
},
"bms.status": "completed",
"bms.serviceProviderJobID": "test",
"bms.operationName": "Transfer",
"bms.bmObjects": {"bms.bmObject": [{"bms.bmContents": {"bms.bmContent": [{"bms.bmContentFormats": {"bms.bmContentFormat": [ {
"bms.bmEssenceLocators": {"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/Source"
},
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/target"
}
]},
"bms.packageSize": 123456
}]}}]}}]},
"bms.priority": "low",
"bms.jobStartedTime": "2017-01-20T15:49:01.000+01:00",
"bms.jobCompletedTime": "2017-01-20T15:49:05.000+01:00",
"bms.processed": {
"@xsi.type": "bms.ProcessedInfoByBytesType",
"bms.percentageProcessedCompleted": 100,
"bms.processedBytesCount": 705730
},
"profiles": {"transferProfile": [ {
"bms.location": "https://agent1.example.com/template/FIMS_Workflow/component/FIMS_Transfer_Start",
"bms.ExtensionGroup": {"sig.SigniantExtensionGroup": [ {
"sig.jobContextParameters": {
"sig.jobName": "test1",
"sig.jobGroup": "Default"
},
"sig.jobVariables": {
"sig.JobVariableName": "FIMS_Transfer_Start.targetDirectory",
"sig.JobVariableValue": "c:/target/2"
}
}]},
"transferAtom": [{"bms.destination": "file://agent1.example.com/c:/target/1"}]
}]}
}}
REST Create Job Request for MediaMover Job with Notifications Requested
RestClient.post `http://manager.example.com/signiant_fims_transfer_service/transferservice/job`, 1536 byte(s) length, `Accept`=>`*/*; q=0.5, application/xml`, `Accept-Encoding`=>`gzip, deflate`, `Content-Length`=>`1536`, `Content-Type`=>`application/json`, `X-FIMS-Password`=>`password`, `X-FIMS-UserName`=>`username`
REST Create for MediaMover Job JSON Content
{
"transferJob": {
"bms.resourceID": 1426773850,
"bms.notifyAt": {
"bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
"bms.faultTo": "http://192.168.0.1:8089/TransferMediaNotificationPort"
},
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"profiles": {
"transferProfile": [
{
"name": "Transfer Profile",
"description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"bms.destination": "file://agent2.example.com.com/C:/storage/MediaIn/"
}
],
"bms.location": "https://manager.example.com/template/Media_Mover_Workflows/component/MediaDistributor",
"bms.ExtensionGroup": [
{
"sig.SigniantExtensionGroup": [
{
"sig.jobContextParameters":
{
"sig.jobName": "JobName_1_1426773850",
"sig.jobGroup": "MediaDistributor"
}
,
"sig.fimsMapping": [
{
"sig.sourceAgent": [
"MediaDistributor.Source.SourceAgent"
],
"sig.targetAgent": [
"MediaDistributor.Target.TargetAgents"
],
"sig.BMEssenceLocatorType": [
"MediaDistributor.Source.SourceData"
],
"sig.destination": [
"MediaDistributor.Target.TargetDirectory"
],
"sig.priority": [
"MediaDistributor.Schedule.priority"
]
}
],
"sig.jobVariables":
{
"sig.JobVariableName": "MediaDistributor.Schedule._sp_interrupt_on_failure",
"sig.JobVariableValue": "no"
},
{
"sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
"sig.JobVariableValue": "job date"
}
}
]
}
]
}
]
}
}
}
REST Create for MediaMover Job Response
# => 200 OK | application/json 126 bytes
{"tms.transferJob"=>
{"bms.resourceID"=>"1426773850",
"bms.status"=>"running",
"bms.serviceProviderJobID"=>"JobName_1_1426773850"}}
REST Create for MediaMover Job Notification of Job Started
#######
{:method=>"POST"@0,
:URL=>{:path=>"/TransferMediaNotificationPort"@5},
:version=>"1.1"@41,
:headers=>
{"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
"Content-Length"=>"1941",
"Content-Type"=>"text/json",
"Host"=>"192.168.0.1:8088",
"Connection"=>"Keep-Alive",
"User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
"transferJob": {
"bms.resourceID": "1426773850",
"bms.notifyAt": {
"bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
"bms.faultTo": "http://192.168.0.1:8089/TransferMediaNotificationPort"
},
"bms.status": "running",
"bms.serviceProviderJobID": "JobName_1_1426773850",
"bms.operationName": "Transfer",
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"bms.jobStartedTime": "2020-03-19T10:04:21.000-04:00",
"bms.jobElapsedTime": "PT4.522S",
"bms.processed": {
"@xsi.type": "bms.ProcessedInfoByBytesType",
"bms.percentageProcessedCompleted": 0,
"bms.processedBytesCount": 0
},
"profiles": {
"transferProfile": [
{
"bms.location": "https://manager.example.com/template/Media_Mover_Workflows/component/MediaDistributor",
"bms.ExtensionGroup": {
"sig.SigniantExtensionGroup": [
{
"sig.jobContextParameters": {
"sig.jobName": "JobName_1_1426773850",
"sig.jobGroup": "MediaDistributor",
},
"sig.fimsMapping": {
"sig.sourceAgent": "MediaDistributor.Source.SourceAgent",
"sig.targetAgent": "MediaDistributor.Target.TargetAgents",
"sig.BMEssenceLocatorType": "MediaDistributor.Source.SourceData",
"sig.destination": "MediaDistributor.Target.TargetDirectory",
"sig.priority": "MediaDistributor.Schedule.priority",
},
"sig.jobVariables": {
"sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
"sig.JobVariableValue": "job date",
},
}
]
},
"transferAtom": [
{
"bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
}
]
}
]
}
}
}
REST Create for MediaMover Job Notification of Job Running
{:method=>"POST"@0,
:URL=>{:path=>"/TransferMediaNotificationPort"@5},
:version=>"1.1"@41,
:headers=>
{"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
"Content-Length"=>"1949",
"Content-Type"=>"text/json",
"Host"=>"192.168.0.1:8088",
"Connection"=>"Keep-Alive",
"User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
"transferJob": {
"bms.resourceID": "1426773850",
"bms.notifyAt": {
"bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
"bms.faultTo": "http://192.168.0.1:8089/TransferMediaNotificationPort"
},
"bms.status": "running",
"bms.serviceProviderJobID": "JobName_1_1426773850",
"bms.operationName": "Transfer",
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"bms.jobStartedTime": "2020-03-19T10:04:21.000-04:00",
"bms.jobElapsedTime": "PT11.814S",
"bms.processed": {
"@xsi.type": "bms.ProcessedInfoByBytesType",
"bms.percentageProcessedCompleted": 89,
"bms.processedBytesCount": 2218710
},
"profiles": {
"transferProfile": [
{
"bms.location": "https://manager.example.com/template/Media_Mover_Workflows/component/MediaDistributor",
"bms.ExtensionGroup": {
"sig.SigniantExtensionGroup": [
{
"sig.jobContextParameters": {
"sig.jobName": "JobName_1_1426773850",
"sig.jobGroup": "MediaDistributor",
},
"sig.fimsMapping": {
"sig.sourceAgent": "MediaDistributor.Source.SourceAgent",
"sig.targetAgent": "MediaDistributor.Target.TargetAgents",
"sig.BMEssenceLocatorType": "MediaDistributor.Source.SourceData",
"sig.destination": "MediaDistributor.Target.TargetDirectory",
"sig.priority": "MediaDistributor.Schedule.priority",
},
"sig.jobVariables": {
"sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
"sig.JobVariableValue": "job date",
},
}
]
},
"transferAtom": [
{
"bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
}
]
}
]
}
}
}
REST Create for MediaMover Job Notification of Job Completed
{:method=>"POST"@0,
:URL=>{:path=>"/TransferMediaNotificationPort"@5},
:version=>"1.1"@41,
:headers=>
{"SOAPAction"=>"http://transfermedia.fims.tv/notifyTransferResult",
"Content-Length"=>"1949",
"Content-Type"=>"text/json",
"Host"=>"192.168.0.1:8088",
"Connection"=>"Keep-Alive",
"User-Agent"=>"Apache-HttpClient/4.1.1 (java 1.5)"}}
{
"transferJob": {
"bms.resourceID": "1426773850",
"bms.notifyAt": {
"bms.replyTo": "http://192.168.0.1:8088/TransferMediaNotificationPort",
"bms.faultTo": "http://192.168.0.1:8089/TransferMediaNotificationPort"
},
"bms.status": "running",
"bms.serviceProviderJobID": "JobName_1_1426773850",
"bms.operationName": "Transfer",
"bms.bmObjects": {
"bms.bmObject": [
{
"bms.bmContents": {
"bms.bmContent": [
{
"bms.bmContentFormats": {
"bms.bmContentFormat": [
{
"bms.bmEssenceLocators": {
"bms.bmEssenceLocator": [
{
"@xsi.type": "bms.SimpleFileLocatorType",
"bms.file": "file://agent1.example.com/C:/storage/MediaOut"
}
]
},
"bms.packageSize": 44947460
}
]
}
}
]
}
}
]
},
"bms.priority": "low",
"bms.jobStartedTime": "2020-03-19T10:04:21.000-04:00",
"bms.jobElapsedTime": "PT11.814S",
"bms.processed": {
"@xsi.type": "bms.ProcessedInfoByBytesType",
"bms.percentageProcessedCompleted": 89,
"bms.processedBytesCount": 2218710
},
"profiles": {
"transferProfile": [
{
"bms.location": "https://manager.example.com/template/Media_Mover_Workflows/component/MediaDistributor",
"bms.ExtensionGroup": {
"sig.SigniantExtensionGroup": [
{
"sig.jobContextParameters": {
"sig.jobName": "JobName_1_1426773850",
"sig.jobGroup": "MediaDistributor",
},
"sig.fimsMapping": {
"sig.sourceAgent": "MediaDistributor.Source.SourceAgent",
"sig.targetAgent": "MediaDistributor.Target.TargetAgents",
"sig.BMEssenceLocatorType": "MediaDistributor.Source.SourceData",
"sig.destination": "MediaDistributor.Target.TargetDirectory",
"sig.priority": "MediaDistributor.Schedule.priority",
},
"sig.jobVariables": {
"sig.JobVariableName": "MediaDistributor.Target.PathMappingOptions",
"sig.JobVariableValue": "job date",
},
}
]
},
"transferAtom": [
{
"bms.destination": "file://agent2.example.com/C:/storage/MediaIn/"
}
]
}
]
}
}
}
FIMS Failed Status Response
"bms.status": "failed","bms.statusDescription": "Non-zero exit code from the Source initialization command\r\nExecution of job component 'FIMS_Transfer' is suppressed.\r\nFinished job component: FIMS_Transfer_Start.GROUP_FIMS_Transfer.FIMS_Transfer - with errors.\r\n",
RESTServer.pl
#!/usr/signiant/dds/bin/perl/bin/perl
use strict;
use Socket;
use IO::Socket;
# Simple web server in Perl
# Serves out .html files, echos form data
sub parse_form {
my $data = $_[0];
my %data;
foreach (split /&/, $data) {
my ($key, $val) = split /=/;
$val =~ s/\+/ /g;
$val =~ s/%(..)/chr(hex($1))/eg;
$data{$key} = $val;}
return %data; }
# Setup and create socket
my $port = shift;
defined($port) or die "Usage: $0 portno\n";
my $DOCUMENT_ROOT = $ENV{'HOME'} . "/public_html";
my $server = new IO::Socket::INET(Proto => 'tcp',
LocalPort => $port,
Listen => SOMAXCONN,
Reuse => 1);
$server or die "Unable to create server socket: $!" ;
# Await requests and handle them as they arrive
while (my $client = $server->accept()) {
$client->autoflush(1);
my %request = ();
my %data;
{
#-------- Read Request ---------------
local $/ = Socket::CRLF;
while (<$client>) {
chomp; # Main http request
if (/\s*(\w+)\s*([^\s]+)\s*HTTP\/(\d.\d)/) {
$request{METHOD} = uc $1;
$request{URL} = $2;
$request{HTTP_VERSION} = $3;
} # Standard headers
elsif (/:/) {
(my $type, my $val) = split /:/, $_, 2;
$type =~ s/^\s+//;
foreach ($type, $val) {
s/^\s+//;
s/\s+$//;
}
$request{lc $type} = $val;
} # POST data
elsif (/^$/) {
read($client, $request{CONTENT}, $request{'content-length'})
if defined $request{'content-length'};
last;
}
}
}
#-------- SORT OUT METHOD ---------------
if ($request{METHOD} eq 'GET') {
if ($request{URL} =~ /(.*)\?(.*)/) {
$request{URL} = $1;
$request{CONTENT} = $2;
%data = parse_form($request{CONTENT});
} else {
%data = ();
}
$data{"_method"} = "GET";
} elsif ($request{METHOD} eq 'POST') {
%data = parse_form($request{CONTENT});
$data{"_method"} = "POST";
} else {
$data{"_method"} = "ERROR";
}
#------- Serve file ----------------------
my $localfile = $DOCUMENT_ROOT.$request{URL};
# Send Response
if (open(FILE, "<$localfile")) {
print $client "HTTP/1.0 200 OK", Socket::CRLF;
print $client "Content-type: text/html", Socket::CRLF;
print $client Socket::CRLF;
my $buffer;
while (read(FILE, $buffer, 4096)) {
print $client $buffer;
}
$data{"_status"} = "200";
}
else {
print $client "HTTP/1.0 404 Not Found", Socket::CRLF;
print $client Socket::CRLF;
print $client "<html><body>404 Not Found</body></html>";
$data{"_status"} = "404";
}
close(FILE);
# Log Request
print ($DOCUMENT_ROOT.$request{URL},"\n");
foreach (keys(%data)) {
print (" $_ = $data{$_}\n"); }
# ----------- Close Connection and loop ------------------
close $client;
}
Using Flight
For information about the Signiant Flight CLI Utility, read the Signiant Flight Documentation.
Flight Uploads Workflow Prompts
The following sections provide the prompt names, descriptions, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Flight Uploads.
Source Content
The following are the Source prompts for the Flight Uploads workflow:
Source Agent
- Description: The agent where the files are uploaded from. This can be a single agent or a load-balanced agent group. This is a mandatory prompt.
- REST/SOAP Variable Value: The hostname of any agent or alias in the system.
- JSON Variable Name:Flight_Upload.sourceOptions.sourceAgent
Source Data
- Description: List of files/folders to be transferred. This is a list of absolute paths (or paths relative to the Base Folder) and may be in SigListXML format or comma-separated. If this list contains a path to a single file, and that path ends with ._manifest_, then it is considered a manifest file and is read by the job to determine the actual list of files/folders to be transferred. UNC paths are supported. If the Base Folder is specified, then these paths are considered relative to the Base Folder. A combination of absolute and relative paths is not supported. UNC paths are supported on Windows. This is a mandatory prompt.
- REST/SOAP Variable Value:
<siglist type=`filedir`>
<el v=`c:\Temp` t=`d`></el>
<el v=`e:\dist\source\test.txt` t=`f`></el>
</siglist>
The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
- JSON Variable Name: Flight_Upload.sourceOptions.sourceData
Delete Source Files After Upload
- Description: Set Yes or No. When set to Yes, files or folders are removed from the source after a successful transfer.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: Flight_Upload.sourceOptions.deleteSourceFilesAfterUpload
Delete Empty Source Folders After Upload
- Description: Set to Yes or No. When set to Yes, the empty source folder is deleted after the files and folders are uploaded.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: Flight_Upload.sourceOptions.deleteEmptySourceFoldersAfterUpload
Source Content Filters
The following list details the Source Content Filters prompts for the Flight Uploads workflow:
Include File Patterns
- Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names and types. For example, if you type _.doc, _.ppt, in the prompt, the transfer includes files with these extensions.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: Flight_Upload.sourceSelectionOptions.includeFilePatterns
Exclude File Patterns
- Description: Allows users to specify which files are excluded from the transfer. Use a comma to separate multiple filters. If the source directory for this job is also being used as the target directory for another job, you should add #workfile# and #chkptfile#.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: Flight_Upload.sourceSelectionOptions.excludeFilePatterns
Exclude Subdirectories
- Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
- REST/SOAP Variable Value: None, All or Specified
- JSON Variable Name: Flight_Upload.sourceSelectionOptions.excludeSubdirectories
Subdirectories to Exclude
- Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior changes to anchor the exclude folder path.
For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)
If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.
To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:
*
(matches zero or more characters)
?
(matches any single character)
[...]
(matches any one of the enclosed characters - for example, [ch] would match the characters c
or h
)
A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.
- REST/SOAP Variable Value: Comma separated list
- JSON Variable Name: Flight_Upload.sourceSelectionOptions.subdirectoriestoExclude
File Date Filter
- Description: Used to filter files based on date or unit of time.
- REST/SOAP Variable Value: -(filterType)(blankspace)(comparison)(blankspace)
(value)
where: - filterType can have these values: ['none','none'], ['modified','when file was last modified'], ['accessed','when file was last accessed'], ['created','when file was created'] (comparison) can have these values: ['gt','before' or 'more than'], ['lt','after' or 'within'], ['ge','before or on'], ['le','after or on'] (value) can have these values: Date in the form ofYYYY/MM/DD
or Number, followed by these letters: ['s','seconds'], ['m','minutes'], ['h','hours'], ['d','days'], ['w','weeks'], ['M','months'], ['y','years'] - JSON Variable Name: Flight_Upload.sourceSelectionOptions.fileDateFilter
File Readiness Check Type
- Description: Specify the check type used by an agent to determine if a file is ready to be transferred. Depending on your configuration, you may or may not want to enable the File Readiness Check Type option:
For Windows agents and local Windows file systems, there is no need to use a file readiness check, because the core file in use is sufficient.
For Windows agent and NAS Windows file systems, as long as the NAS file system properly supports file locking for in-use files, the readiness check is unnecessary. However, it is still available in the event the NAS file system does not properly support file locking.
For non-Windows agents of any kind (Linux, UNIX, MacOS). If the local or network file system supports file locking, the readiness check is not required. Determine this on a case-by-case basis.
- REST/SOAP Variable Value: Choose one of the following:
- None: files that are in use are skipped by default.
- Consecutive Seek (recommended) : reads the last few bytes at the end of the file, waits for the time specified in the Readiness Check Delay prompt and checks again. If the last few bytes match in both cases the file is sent. This is very useful with large files where the MD5 option would simply take too long.
- MD5 Hash: use an MD5 hash to compute a hash on all files under the dropbox folder. After the wait time specified in the Readiness Check Delay prompt, the hashes are recomputed. Only files with identical hashes are transferred. Note that job initialization may take a great deal of time if large files are present.
- Date/Time & Size: use a difference in date/time or size on the file to compare its readiness. Only files that have identical date/time and size are transferred.
- JSON Variable Name: Flight_Upload.sourceSelectionOptions.fileReadinessCheckType
Readiness Check Delay
- Description: The amount of time (in seconds) to pause between the two phases of the specified File Readiness Check Type (
MD5 Hash
,Consecutive Seek
, orDate/Time & Size
) for an open file. The file is transferred only if the results of the two checks are identical. If a large number of files are being checked, a value of 0 seconds may be sufficient, since there will likely be sufficient time between the first and second checks of a given file to determine if its content has changed without inserting an additional delay. The default value is 10 seconds. - REST/SOAP Variable Value: Any number between 0 and 300 with a step of 5. For example: 5, 10, 15.
- JSON Variable Name: Flight_Upload.sourceSelectionOptions.readinessCheckDelay
Target Storage
The following list details the Target Storage prompts for the Flight Uploads workflow:
Cloud Vendor
- Description: Set to Amazon S3 or Microsoft Azure to define the cloud storage you're using. This is a mandatory prompt.
- REST/SOAP Variable Value: Amazon S3 or Microsoft Azure
- JSON Variable Name: Flight_Upload.targetOptions.cloudVendor
Storage Specification Mechanism
- Description:Set to Flight Storage Config ID or Cloud Vendor Credentials. When set to Flight Storage Config ID, the object storage and access credentials are managed using https://manage.signiant.com. When set to Cloud Vendor Credentials, the credentials are specified in the job. If you use Flight Storage Config ID, you must enter this value below in Flight Storage Config ID. If you use Cloud Vendor Credentials, you must specify either the Amazon S3 or Microsoft Azure properties.
- REST/SOAP Variable Value: Flight Storage Config ID or Cloud Vendor Credentials
- JSON Variable Name: Flight_Upload.targetOptions.storageSpecificationMechanism
Flight Storage Config ID
- Description: Enter the Flight Storage Config ID. You must enter this value if you set the Storage Specification Mechanism to Flight Storage Config ID.
- REST/SOAP Variable Value: Enter the Flight Storage Config ID
- JSON Variable Name: Flight_Upload.targetOptions.flightStorageConfigID
Folder Structure Preservation
- Description: Specify how to manage folder structure during the upload of files and folders. Set to: Preserve Top-Level Folders and Subfolders, Preserve Subfolders Only, or Flatten Folder Structure. The workflow transfer can: preserve the structure of all uploaded folders including the base folder (Preserve Top-Level Folders and Subfolders), preserve the structure of the subfolders only and not the base folder (Preserve Subfolders Only) or flatten all content so that no folder structure is transferred to the object container (Flatten Folder Structure). Note: if Source Data is a manifest file, Folder Structure Preservation must be set to Flatten Folder Structure.
- REST/SOAP Variable Value: Preserve Top-Level Folders and Subfolders, Preserve Subfolders Only, or Flatten Folder Structure
- JSON Variable Name: Flight_Upload.targetOptions.folderStructurePreservation
Optional Target Subfolder
- Description: By default all uploaded content is placed relative to the root of the object storage. When an Optional Target Subfolder is specified, all content is placed relative to this subfolder rather than the root. This subfolder is created if it does not exist.
- REST/SOAP Variable Value: Enter the subfolder name and path.
- JSON Variable Name: Flight_Upload.targetOptions.optionalTargetSubfolder
Flight Service
The following list details the Flight Service prompts for the Flight Uploads workflow:
Flight Service Primary Entry Point
- Description: Set to your primary direct end point server. This specifies the specific locations or regions that the Flight CLI connects to when performing the upload. It is generally recommended that the Flight Service Primary Entry Point be at the location that is geographically closest to where the object storage container is located, not necessarily the point that is closest to the source Signiant Agent.
- REST/SOAP Variable Value: Enter the Flight Service Primary Entry Point.
- JSON Variable Name: Flight_Upload.flightServiceOptions.flightServicePrimaryEntryPoint
Flight Service Backup Entry Point
- Description: Set to the backup entry point server. This list includes the regional server aliases. This attribute can be specified as a geographic region spanning multiple Signiant Flight clusters, providing further high-availability and fault-tolerance. The Flight Service Backup Entry Point is provided for high-availability, in the unlikely event that the primary endpoint is not available, the backup is used.
- REST/SOAP Variable Value: Enter the Flight Service Backup Entry Point.
- JSON Variable Name: Flight_Upload.flightServiceOptions.flightServiceBackupEntryPoint
Flight API Key
- Description: The Signiant Flight API Key. You must create the Signiant Flight API Key using the Signiant Console. Use https://manage.signiant.com to access the Signiant Console.
- REST/SOAP Variable Value: Enter the Signiant Flight API Key
- JSON Variable Name: Flight_Upload.flightServiceOptions.flightAPIKey
Amazon S3 Credentials
The following list details the Amazon S3 Credentials prompts for the Flight Uploads workflow:
AWS Access Key
- Description: Your AWS Access Key.
- REST/SOAP Variable Value: Enter your AWS Access Key
- JSON Variable Name: Flight_Upload.amazonS3.aWSAccessKey
AWS Secret Key
- Description: Your AWS Secret Key.
- REST/SOAP Variable Value: Enter your AWS Secret Key
- JSON Variable Name: Flight_Upload.amazonS3.aWSSecretKey
S3 Bucket
- Description: Your S3 Bucket name. This is the folder into which the files are placed. This location must exist; it is not created automatically.
- REST/SOAP Variable Value: Enter your S3 Bucket name
- JSON Variable Name: Flight_Upload.amazonS3.s3Bucket
Microsoft Azure Credentials
The following list details the Microsoft Azure Credentials prompts for the Flight Uploads workflow:
Azure Storage Account Name
- Description: Your Azure Storage Account Name.
- REST/SOAP Variable Value: Enter your Azure Storage Account Name
- JSON Variable Name: Flight_Upload.microsoftAzure.azureStorageAccountName
Azure Access Key
- Description: Your Azure Access Key.
- REST/SOAP Variable Value: Enter your Azure Access Key
- JSON Variable Name: Flight_Upload.microsoftAzure.azureAccessKey
Azure Container
- Description: Your Azure Container name. This is the folder into which the files are placed. This location must exist, it is not created automatically.
- REST/SOAP Variable Value: Enter your Azure Container name
- JSON Variable Name: Flight_Upload.microsoftAzure.azureContainer
Encryption Options
The following list details the Encryption Options prompts for the Flight Uploads workflow:
Encrypt Uploaded Files
- Description: Set to Yes or No. All Flight transfers are encrypted in transit and when Encrypt Uploaded Files is set to Yes, all content uploaded to the cloud is encrypted. This allows you to choose an extra measure of security for sensitive material. The Encryption Key is required to decrypt this content.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: Flight_Upload.encryption.encryptUploadedFiles
Encryption Key
- Description: Enter your Encryption Key. This is used when encrypting the content. The Encryption Key must be a 64-character hex string (0....9,A-F).
- REST/SOAP Variable Value: Enter your Encryption Key.
- JSON Variable Name: Flight_Upload.encryption.encryptionKey
Initialization Vector
- Description: Enter your Initialization Vector. This is used when uploading content. The Initialization Vector must be a 32-character hex string (0...9, A-F).
- REST/SOAP Variable Value: Enter your Initialization Vector.
- JSON Variable Name: Flight_Upload.encryption.initializationVector
Transport Options
The following list details the Transport Options prompts for the Flight Uploads workflow:
Protocol
- Description: Specifies either to use a specific protocol (UDP, TCP, HTTP) for the file transfer, or to use all protocols (All). All means to try UDP first, then TCP, and finally HTTP. The default value is All.
- REST/SOAP Variable Value: udp, tcp, httpor all.
- JSON Variable Name: Flight_Upload.transport.protocol
Bandwidth Throttle
- Description: Allows you to specify the amount of bandwidth the job uses. Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: Any number, the value of which is in Bps.
- JSON Variable Name: Flight_Upload.transport.bandwidthThrottle
Transport Restart Attempts
- Description: The number of restarts on a transfer failure before the component exits in error. If zero, then no restarts are attempted. The component will not retry on invalid storage credentials or other conditions under which a retry has no chance of succeeding. The default value is 3.
- REST/SOAP Variable Value: Any number.
- JSON Variable Name: Flight_Upload.transport.transportRestartAttempts
Transport Port Usage
- Description: Set to single or range. By default the transfer uses a single port (49221) for firewall efficiency. For enhanced throughput, set to Range. If outbound firewall rules are set, then a port range of (49221-49420) must be added to the firewall. The default value is single.
- REST/SOAP Variable Value: single or range
- JSON Variable Name: Flight_Upload.transport.transportPortUsage
Relay Agents
- Description: If the network connection to the Flight Server must be routed via a Signiant relay agent (typically for DMZ navigation), then enter one or more relay agents through which the network connection is to be routed. If multiple relay agents are entered, all routes to the Flight Server will be tried, and the quickest to respond is used.
- REST/SOAP Variable Value: The hostname of any agent or alias in the system. Space separated list.
- JSON Variable Name: Flight_Upload.transport.relayAgents
HTTP Proxy
- Description: If you have an outbound HTTP proxy, specify the proxy server URL and port. This is required for the component key check. This proxy will not be used for HTTP fallback transfers. The specified value should be in the format:
http://<host>:<port>
- REST/SOAP Variable Value:
http://<host>:<port>
- JSON Variable Name: Flight_Upload.transport.HTTPProxy
Notification and Logging
The following list details the Notification and Logging prompts for the Flight Uploads workflow:
Success Email Condition
- Description: The circumstances in which an email is sent. Choose from: Never - no email is sent, Always - an email is always sent when a job runs, or On Transfer - an email is sent only when the transfer occurs.
- REST/SOAP Variable Value: never, always, or on transfer
- JSON Variable Name: Flight_Upload.notificationandLoggingOptions.successEmailCondition
Email To
- Description: The email address(es) who receive the logging report. Separate multiple email addresses with a comma.
- REST/SOAP Variable Value: Comma-separated list of email addresses
- JSON Variable Name: Flight_Upload.notificationandLoggingOptions.emailTo
Email Cc
- Description: The email address(es) who receive who receive a carbon copy email notification message when the job runs. Separate multiple email addresses with a comma.
- REST/SOAP Variable Value: Comma-separated list of email addresses
- JSON Variable Name: Flight_Upload.notificationandLoggingOptions.emailCc
Email Bcc
- Description: The email address(es) who receive who receive a blind carbon copy email notification message when the job runs. Separate multiple email addresses with a comma.
- REST/SOAP Variable Value: Comma-separated list of email addresses
- JSON Variable Name: Flight_Upload.notificationandLoggingOptions.emailBcc
Email Failure Report To
- Description: The email address(es) who receive failure reports. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Comma-separated list of email addresses
- JSON Variable Name: Flight_Upload.notificationandLoggingOptions.emailFailureReportTo
Log Detail Level
- Description: Set the amount of information based on severity, that is logged during the transfer. The options are: Error, Warn, Info, or Debug. The default is Info. Debug provides the greatest level of detail while Error provides the least.
- REST/SOAP Variable Value: error, warn, info, or debug
- JSON Variable Name: Flight_Upload.notificationandLoggingOptions._sp_log_severity
Create File Delivery Log
- Description: Set to Yes or No to optionally create the Delivery Log.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: Flight_Upload.notificationandLoggingOptions.createFileDeliveryLog
Job Schedule
The following list provides Job Schedule prompt details for the Flight Uploads workflow:
Frequency
- Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
The options are: None: use for jobs that run only at irregular, user defined times. Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval. Monthend: run the job once every last day of the month. Once: run the job only once, when first created.
- REST/SOAP Variable Value: Possible values are:
None, Any number, representing Every X minutes
, Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing Every X Y of the month
, Any (number)(blankspace)(letter) 4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s).
- JSON Variable Name: Flight_Upload.Schedule._sp_frequency
Start Date/Time
- Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
- JSON Variable Name: Flight_Upload.Schedule._sp_start_at
Time Zone
- Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
- REST/SOAP Variable Value: **Standard time zone values. For example: GMT-01:00. **
- JSON Variable Name: Flight_Upload.Schedule.timezone
Interrupt on Failure
- Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: Flight_Upload.Schedule._sp_interrupt_on_failure
Priority
- Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The default value is Medium. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). This is a mandatory prompt.
- REST/SOAP Variable Value: 1, 2, 3, 4, or 5
- JSON Variable Name: Flight_Upload.Schedule.priority
Finish Before
- Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
- JSON Variable Name: Flight_Upload.Schedule.finishBefore
Flight Uploads JSON Example
The following is an example of the Flight Upload JSON.
{
"transferJob": {
"resourceID": "123456",
"notifyAt": {
"replyTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp",
"faultTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp"
},
"bmObjects": {
"bmObject": [
{
"bmContents": {
"bmContent": [
{
"bmContentFormats": {
"bmContentFormat": [
{
"packageSize": 123456,
"bmEssenceLocators": {
"bmEssenceLocator": [
{
"file": "file://agent1.example.com/C:/storage/source/",
"type": "SimpleFileLocatorType"
}
]
}
}
]
}
}
]
}
}
]
},
"profiles": [
{
"transferProfile": [
{
"name": "Transfer Profile",
"transferAtom": [
{ "destination": "file://agent2.example.com/D:/storage/target" }
],
"description": "Highspeed Transfer Delivery",
"location": [
"https://manager.example.com/template/Flight_Reference_Workflows/component/Flight_Upload"
],
"ExtensionGroup": [
{
"SigniantExtensionGroup": [
{
"jobContextParameters": [
{
"jobName": ["FIMS_Flight_Upload_123456"],
"jobGroup": ["Default"]
}
],
"jobVariables": [
{
"JobVariableName": [
"Flight_Upload.sourceOptions.sourceAgent"
],
"JobVariableValue": ["agent1.example.com"]
},
{
"JobVariableName": [
"Flight_Upload.sourceOptions.sourceData"
],
"JobVariableValue": [
"<siglist type=\"filedir\"> <el v=\"C:/storage/source\" t=\"d\"></el> <el v=\"e:/dist/source/test.txt\" t=\"f\"></el> </siglist>"
]
},
{
"JobVariableName": [
"Flight_Upload.sourceOptions.deleteSourceFilesAfterUpload"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"Flight_Upload.sourceOptions.deleteEmptySourceFoldersAfterUpload"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"Flight_Upload.sourceSelectionOptions.includeFilePatterns"
],
"JobVariableValue": ["*"]
},
{
"JobVariableName": [
"Flight_Upload.sourceSelectionOptions.excludeFilePatterns"
],
"JobVariableValue": [""]
},
{
"JobVariableName": [
"Flight_Upload.sourceSelectionOptions.excludeSubdirectories"
],
"JobVariableValue": ["Specified"]
},
{
"JobVariableName": [
"Flight_Upload.sourceSelectionOptions.subdirectoriestoExclude"
],
"JobVariableValue": ["dir1, dir2"]
},
{
"JobVariableName": [
"Flight_Upload.sourceSelectionOptions.fileDateFilter"
],
"JobVariableValue": ["-modified lt \"2d\""]
},
{
"JobVariableName": [
"Flight_Upload.sourceSelectionOptions.fileReadinessCheckType"
],
"JobVariableValue": ["None"]
},
{
"JobVariableName": [
"Flight_Upload.sourceSelectionOptions.readinessCheckDelay"
],
"JobVariableValue": ["10"]
},
{
"JobVariableName": [
"Flight_Upload.targetOptions.cloudVendor"
],
"JobVariableValue": ["s3"]
},
{
"JobVariableName": [
"Flight_Upload.targetOptions.storageSpecificationMechanism"
],
"JobVariableValue": ["configid"]
},
{
"JobVariableName": [
"Flight_Upload.targetOptions.flightStorageConfigID"
],
"JobVariableValue": [""]
},
{
"JobVariableName": [
"Flight_Upload.targetOptions.folderStructurePreservation"
],
"JobVariableValue": ["preserveall"]
},
{
"JobVariableName": [
"Flight_Upload.targetOptions.optionalTargetSubfolder"
],
"JobVariableValue": [""]
},
{
"JobVariableName": [
"Flight_Upload.flightServiceOptions.flightServicePrimaryEntryPoint"
],
"JobVariableValue": ["us-east-1-am.cloud.signiant.com"]
},
{
"JobVariableName": [
"Flight_Upload.flightServiceOptions.flightServiceBackupEntryPoint"
],
"JobVariableValue": ["none"]
},
{
"JobVariableName": [
"Flight_Upload.flightServiceOptions.flightAPIKey"
],
"JobVariableValue": ["asdf234edgg43reafd"]
},
{
"JobVariableName": [
"Flight_Upload.amazonS3.aWSAccessKey"
],
"JobVariableValue": [""]
},
{
"JobVariableName": [
"Flight_Upload.amazonS3.aWSSecretKey"
],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Upload.amazonS3.s3Bucket"],
"JobVariableValue": [""]
},
{
"JobVariableName": [
"Flight_Upload.microsoftAzure.azureStorageAccountName"
],
"JobVariableValue": [""]
},
{
"JobVariableName": [
"Flight_Upload.microsoftAzure.azureAccessKey"
],
"JobVariableValue": [""]
},
{
"JobVariableName": [
"Flight_Upload.microsoftAzure.azureContainer"
],
"JobVariableValue": [""]
},
{
"JobVariableName": [
"Flight_Upload.encryption.encryptUploadedFiles"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"Flight_Upload.encryption.encryptionKey"
],
"JobVariableValue": [""]
},
{
"JobVariableName": [
"Flight_Upload.encryption.initializationVector"
],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Upload.transport.protocol"],
"JobVariableValue": ["all"]
},
{
"JobVariableName": [
"Flight_Upload.transport.bandwidthThrottle"
],
"JobVariableValue": ["500000"]
},
{
"JobVariableName": [
"Flight_Upload.transport.transportRestartAttempts"
],
"JobVariableValue": ["3"]
},
{
"JobVariableName": [
"Flight_Upload.transport.transportPortUsage"
],
"JobVariableValue": ["range"]
},
{
"JobVariableName": [
"Flight_Upload.transport.relayAgents"
],
"JobVariableValue": [
"agent2.example.com agent1.example.com"
]
},
{
"JobVariableName": [
"Flight_Upload.transport.hTTPProxy"
],
"JobVariableValue": ["proxy"]
},
{
"JobVariableName": [
"Flight_Upload.notificationandLoggingOptions.successEmailCondition"
],
"JobVariableValue": ["Never"]
},
{
"JobVariableName": [
"Flight_Upload.notificationandLoggingOptions.emailTo"
],
"JobVariableValue": ["user@example.com"]
},
{
"JobVariableName": [
"Flight_Upload.notificationandLoggingOptions.emailCc"
],
"JobVariableValue": ["user2@example.com"]
},
{
"JobVariableName": [
"Flight_Upload.notificationandLoggingOptions.emailBcc"
],
"JobVariableValue": ["user3@example.com"]
},
{
"JobVariableName": [
"Flight_Upload.notificationandLoggingOptions.emailFailureReportTo"
],
"JobVariableValue": ["user4@example.com"]
},
{
"JobVariableName": [
"Flight_Upload.notificationandLoggingOptions._sp_log_severity"
],
"JobVariableValue": ["2"]
},
{
"JobVariableName": [
"Flight_Upload.notificationandLoggingOptions.createFileDeliveryLog"
],
"JobVariableValue": ["yes"]
},
{
"JobVariableName": [
"Flight_Upload.Schedule._sp_frequency"
],
"JobVariableValue": ["None"]
},
{
"JobVariableName": [
"Flight_Upload.Schedule._sp_start_at"
],
"JobVariableValue": ["%now%"]
},
{
"JobVariableName": ["Flight_Upload.Schedule.timezone"],
"JobVariableValue": ["America/New_York"]
},
{
"JobVariableName": [
"Flight_Upload.Schedule._sp_interrupt_on_failure"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": ["Flight_Upload.Schedule.priority"],
"JobVariableValue": ["2"]
},
{
"JobVariableName": [
"Flight_Upload.Schedule.finishBefore"
],
"JobVariableValue": ["2020/08/29 12:55:00"]
}
]
}
]
}
]
}
]
}
],
"priority": "low"
}
}
Flight Downloads Prompts
The following lists provide the prompt names, prompt details, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Flight Downloads workflow.
Source Content
The following list provides Source prompt details for the Flight Downloads workflow:
Cloud Vendor
- Description: Set to Amazon S3 or Microsoft Azure to define the cloud storage you're using. This is a mandatory prompt.
- REST/SOAP Variable Value: Amazon S3 or Microsoft Azure
- JSON Variable Name: Flight_Download.sourceOptions.cloudVendor
Storage Specification Mechanism
- Description: Set to Flight Storage Config ID or Cloud Vendor Credentials. When set to Flight Storage Config ID, the object storage and access credentials are managed using https://manage.signiant.com. When set to Cloud Vendor Credentials, the credentials are specified in the job. If set to Flight Storage Config ID, you must enter this value below in Flight Storage Config ID. If set to Cloud Vendor Credentials, you must specify either the Amazon S3 or Microsoft Azure properties.
- REST/SOAP Variable Value: Flight Storage Config ID or Cloud Vendor Credentials
- JSON Variable Name: Flight_Download.sourceOptions.storageSpecificationMechanism
Flight Storage Config ID
- Description: Enter your Flight Storage Config ID. You must enter this value if Storage Specification Mechanism is set to Flight Storage Config ID.
- REST/SOAP Variable Value: Enter the Flight Storage Config ID
- JSON Variable Name: Flight_Download.sourceOptions.flightStorageConfigID
Source Data
- Description: List of files/folders to be transferred. This is a list of absolute paths (or paths relative to the Base Folder) and may be in SigListXML format or comma-separated. If this list contains a path to a single file, and that path ends with ._manifest_, then it is considered a manifest file and is read by the component to determine the actual list of files/folders to be transferred. UNC paths are supported. If the Base Folder input is specified, then these paths are considered relative to the Base Folder. A combination of absolute and relative paths is not supported. UNC paths are supported on Windows. This is a mandatory prompt.
- REST/SOAP Variable Value:
<siglist type="filedir">
<el v="c:\Temp" t="d"></el>
<el v="e:\dist\source\test.txt" t="f"></el>
</siglist>
The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
- JSON Variable Name: Flight_Download.sourceOptions.sourceData
File List
-
Description: List of files and/or folders to be transferred. This is a list of absolute paths (or paths relative to the Base Folder) and may be in SigListXML format or comma separated. A combination of absolute and relative paths is not supported. If this list contains a path to a single file, and that path ends with ._manifest_, then it is considered to be a manifest file and is read by the component to determine the actual list of files/folders to be transferred. A UNC path to the manifest file is supported on Windows. The manifest path must be an absolute path. This is a mandatory prompt.
-
REST/SOAP Variable Value:
<siglist type="filedir">
<el v="c:\Temp" t="d"></el>
<el v="e:\dist\source\test.txt" t="f"></el>
</siglist>
The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory)
- JSON Variable Name: FlightDownloadReference.sourceOptions.fileList
Target Storage
The following list provides Target prompt details for the Flight Downloads workflow:
Target Agents
- Description: Agent where files are downloaded. This is a mandatory prompt.
- REST/SOAP Variable Value: The hostname of any agent or alias in the system.
- JSON Variable Name: Flight_Download.targetOptions.targetAgent
Target Folder
- Description: Destination folder for the downloaded files. This is a mandatory prompt.
- REST/SOAP Variable Value: Any valid path on the Signiant Manager, for example: c:\Temp (Windows) or /usr/tmp (UNIX).
- JSON Variable Name: Flight_Download.targetOptions.targetFolder
Flight Service
The following list details the Flight Service prompts for the Flight Downloads workflow:
Flight Service Primary Entry Point
- Description: Set your primary direct end point server. This specifies the specific locations or regions that the Flight CLI connects to when performing the upload. It is generally recommended that the Flight Service Primary Entry Point be at the location that is geographically closest to where the object storage container is located, not necessarily the point that is closest to the source Signiant Agent.
- REST/SOAP Variable Value: Enter the Flight Service Primary Entry Point.
- JSON Variable Name: Flight_Download.flightServiceOptions.flightServicePrimaryEntryPoint
Flight Service Backup Entry Point
- Description: Set the backup entry point server. This list includes the regional server aliases. This attribute can be specified as a geographic region spanning multiple Signiant Flight clusters, providing further high-availability and fault-tolerance. The Flight Service Backup Entry Point is provided for high-availability, in the unlikely event that the primary endpoint is not available, the backup is used.
- REST/SOAP Variable Value: Enter the Flight Service Backup Entry Point.
- JSON Variable Name: Flight_Download.flightServiceOptions.flightServiceBackupEntryPoint
Flight API Key
- Description: The Signiant Flight API Key. You must create the Signiant Flight API Key using the Signiant Console. Use https://manage.signiant.com to access the Signiant Console.
- REST/SOAP Variable Value: Enter the Signiant Flight API Key
- JSON Variable Name: Flight_Download.flightServiceOptions.flightAPIKey
Amazon S3 Credentials
The following list details the Amazon S3 Credentials prompts for the Flight Downloads workflow:
AWS Access Key
- Description: Your AWS Access Key.
- REST/SOAP Variable Value: Enter your AWS Access Key
- JSON Variable Name: Flight_Download.amazonS3.aWSAccessKey
AWS Secret Key
- Description: Your AWS Secret Key.
- REST/SOAP Variable Value: Enter your AWS Secret Key
- JSON Variable Name: Flight_Download.amazonS3.aWSSecretKey
S3 Bucket
- Description: Your S3 Bucket name. This is the folder into which the files are placed. This location must exist; it is not created automatically.
- REST/SOAP Variable Value: Enter your S3 Bucket name
- JSON Variable Name: Flight_Download.amazonS3.s3Bucket
Microsoft Azure Credentials
The following list details the Microsoft Azure Credentials prompts for the Flight Downloads workflow:
Azure Storage Account Name
- Description: Your Azure Storage Account Name.
- REST/SOAP Variable Value: Enter your Azure Storage Account Name
- JSON Variable Name: Flight_Download.microsoftAzure.azureStorageAccountName
Azure Access Key
- Description: Your Azure Access Key.
- REST/SOAP Variable Value: Enter your Azure Access Key
- JSON Variable Name: Flight_Download.microsoftAzure.azureAccessKey
Azure Container
- Description: Your Azure Container name. This is the folder into which the files are placed. This location must exist, it is not created automatically.
- REST/SOAP Variable Value: Enter your Azure Container name
- JSON Variable Name: Flight_Download.microsoftAzure.azureContainer
Decryption Options
The following list details the Decryption Options prompts for the Flight Downloads workflow:
Decrypt Download Files
- Description: Set to Yes or No to control file decryption. When set to Yes, content that has been encrypted by the FlightUpload component is decrypted.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: Flight_Download.decryption.decryptDownloadedFiles
Decryption Key
- Description: Enter the Decryption Key to use when decrypting the downloaded content. This must be a 64-character hex string (0...9, AF).
- REST/SOAP Variable Value: Enter your Decryption Key
- JSON Variable Name: Flight_Download.decryption.decryptionKey
Initialization Vector
- Description: Enter the Initialization Vector to use when decrypting the downloaded content. This must be a 32-character hex string (0...9, AF).
- REST/SOAP Variable Value: Enter your Initialization Vector.
- JSON Variable Name: Flight_Download.decryption.initializationVector
Transport Options
The following list provides Transport Options prompt details for the Flight Downloads workflow:
Protocol
- Description: Specifies either to use a specific protocol (UDP, TCP, HTTP) for the file transfer, or to use all protocols (All). All means to try UDP first, then TCP, and finally HTTP. The default value is All.
- REST/SOAP Variable Value: udp, tcp, httpor all.
- JSON Variable Name: Flight_Download.transport.protocol
Bandwidth Throttle
- Description: Allows you to specify the amount of bandwidth the job uses. Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: Any number, the value of which is in Bps.
- JSON Variable Name: Flight_Download.transport.bandwidthThrottle
Transport Restart Attempts
- Description: The number of restarts on a transfer failure before the component exits in error. If zero, then no restarts are attempted. The component will not retry on invalid storage credentials or other conditions under which a retry has no chance of succeeding. The default value is 3.
- REST/SOAP Variable Value: Any number.
- JSON Variable Name: Flight_Download.transport.transportRestartAttempts
Transport Port Usage
- Description: Set to single or range. By default the transfer uses a single port (49221) for firewall efficiency. For enhanced throughput, set to Range. If outbound firewall rules are set, then a port range of (49221-49420) must be added to the firewall. The default value is single.
- REST/SOAP Variable Value: single or range
- JSON Variable Name: Flight_Download.transport.transportPortUsage
Relay Agents
- Description: If the network connection to the Flight Server must be routed via a Signiant relay agent (typically for DMZ navigation), then select one or more relay agents through which the network connection is to be routed. If multiple relay agents are selected, all routes to the Flight Server will be tried, and the quickest to respond will be used.
- REST/SOAP Variable Value: The hostname of any agent or alias in the system. Space separated list.
- JSON Variable Name: Flight_Download.transport.relayAgents
HTTP Proxy
- Description: If you have an outbound HTTP proxy, specify the proxy server URL and port. This is required for the component key check. This proxy will not be used for HTTP fallback transfers. The specified value should be in the format:
http://<host>:<port>
- REST/SOAP Variable Value:
http://<host>:<port>
- JSON Variable Name: Flight_Download.transport.HTTPProxy
Notification and Logging
The following list details the Notification and Logging prompts for the Flight Uploads workflow:
Success Email Condition
- Description: The circumstances in which an email is sent. Choose from: Never - no email is sent, Always - an email is always sent when a job runs, or On Transfer - an email is sent only when the transfer occurs.
- REST/SOAP Variable Value: never, always, or on transfer
- JSON Variable Name: Flight_Download.notificationandLoggingOptions.successEmailCondition
Email To
- Description: The email address(es) who receive the logging report. Separate multiple email addresses with a comma.
- REST/SOAP Variable Value: Comma-separated list of email addresses
- JSON Variable Name: Flight_Download.notificationandLoggingOptions.emailTo
Email Cc
- Description: The email address(es) who receive who receive a carbon copy email notification message when the job runs. Separate multiple email addresses with a comma.
- REST/SOAP Variable Value: Comma-separated list of email addresses
- JSON Variable Name: Flight_Download.notificationandLoggingOptions.emailCc
Email Bcc
- Description: The email address(es) who receive who receive a blind carbon copy email notification message when the job runs. Separate multiple email addresses with a comma.
- REST/SOAP Variable Value: Comma-separated list of email addresses
- JSON Variable Name: Flight_Download.notificationandLoggingOptions.emailBcc
Email Failure Report To
- Description: The email address(es) who receive failure reports. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Comma-separated list of email addresses
- JSON Variable Name: Flight_Download.notificationandLoggingOptions.emailFailureReportTo
Log Detail Level
- Description: Select the amount of information based on severity, that is logged during the transfer. The options are: Error, Warn, Info, or Debug. The default is Info. Debug provides the greatest level of detail while Error provides the least.
- REST/SOAP Variable Value: error, warn, info, or debug
- JSON Variable Name: Flight_Download.notificationandLoggingOptions._sp_log_severity
Create File Delivery Log
- Description: Set to Yes or No to optionally create the Delivery Log.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: Flight_Download.notificationandLoggingOptions.createFileDeliveryLog
Job Schedule
The following list provides Schedule prompt details for the Flight Downloads workflow:
Frequency
- Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
- None: use for jobs that run only at irregular, user defined times.
- Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval. Any number, representing
Every X minutes
. - Monthend: run the job once every last day of the month. Any (number)(blankspace)(letter)
4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - Once: run the job only once, when first created. Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing
Every X Y of the month
- REST/SOAP Variable Value: Possible values are: None, Any number, representing
Every X minutes
, Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representingEvery X Y of the month
, Any (number)(blankspace)(letter)4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - JSON Variable Name: Flight_Download.Schedule._sp_frequency
Start Date/Time
- Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
- JSON Variable Name: Flight_Download.Schedule._sp_start_at
Time Zone
- Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
- REST/SOAP Variable Value: **Standard time zone values. For example: GMT-01:00. **
- JSON Variable Name: Flight_Download.Schedule.timezone
Interrupt on Failure
- Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: FlightDownloadReference.Schedule._sp_interrupt_on_failure
Priority
- Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The default value is Medium. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). This is a mandatory prompt.
- REST/SOAP Variable Value: 1, 2, 3, 4, or 5
- JSON Variable Name: Flight_Download.Schedule.priority
Finish Before
- Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
- JSON Variable Name: Flight_Download.Schedule.finishBefore
Flight Downloads JSON Example
The following is an example of the Flight Downloads JSON.
{"transferJob": {
"resourceID": "123456",
"notifyAt": {
"replyTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp",
"faultTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp"
},
"bmObjects": {"bmObject": [{"bmContents": {"bmContent": [{"bmContentFormats": {"bmContentFormat": [ {
"packageSize": 123456,
"bmEssenceLocators": {"bmEssenceLocator": [ {
"file": "file://agent1.example.com/C:/Flight/baseFolder/",
"type": "SimpleFileLocatorType"
}]}
}]}}]}}]},
"profiles": [{"transferProfile": [ {
"name": "Transfer Profile",
"transferAtom": [{"destination": "file://agent2.example.com/C:/storage/targetAcquired"}],
"description": "Highspeed Transfer Delivery",
"location": ["https://manager.example.com/template/Flight_Reference_Workflows/component/Flight_Download"],
"ExtensionGroup": [{"SigniantExtensionGroup": [ {
"jobContextParameters": [ {
"jobName": ["FIMS_Flight_Download_123456"],
"jobGroup": [""]
}],
"jobVariables": [
{
"JobVariableName": ["Flight_Download.sourceOptions.cloudVendor"],
"JobVariableValue": ["s3"]
},
{
"JobVariableName": ["Flight_Download.sourceOptions.storageSpecificationMechanism"],
"JobVariableValue": ["configid"]
},
{
"JobVariableName": ["Flight_Download.sourceOptions.flightStorageConfigID"],
"JobVariableValue": ["asdf234edgg43reafd"]
},
{
"JobVariableName": ["Flight_Download.sourceOptions.sourceData"],
"JobVariableValue": ["c:\\Flight\\baseFolder"]
},
{
"JobVariableName": ["Flight_Download.targetOptions.targetAgent"],
"JobVariableValue": ["agent2.example.com"]
},
{
"JobVariableName": ["Flight_Download.targetOptions.targetFolder"],
"JobVariableValue": ["c:\\tmp\\targetAquired"]
},
{
"JobVariableName": ["Flight_Download.flightServiceOptions.flightServicePrimaryEntryPoint"],
"JobVariableValue": ["us-east-1-am.cloud.signiant.com"]
},
{
"JobVariableName": ["Flight_Download.flightServiceOptions.flightServiceBackupEntryPoint"],
"JobVariableValue": ["none"]
},
{
"JobVariableName": ["Flight_Download.flightServiceOptions.flightAPIKey"],
"JobVariableValue": ["asdf234edgg43reafd"]
},
{
"JobVariableName": ["Flight_Download.amazonS3.aWSAccessKey"],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Download.amazonS3.aWSSecretKey"],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Download.amazonS3.s3Bucket"],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Download.microsoftAzure.azureStorageAccountName"],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Download.microsoftAzure.azureAccessKey"],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Download.microsoftAzure.azureContainer"],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Download.decryption.decryptDownloadedFiles"],
"JobVariableValue": ["no"]
},
{
"JobVariableName": ["Flight_Download.decryption.decryptionKey"],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Download.decryption.initializationVector"],
"JobVariableValue": [""]
},
{
"JobVariableName": ["Flight_Download.transport.protocol"],
"JobVariableValue": ["all"]
},
{
"JobVariableName": ["Flight_Download.transport.bandwidthThrottle"],
"JobVariableValue": ["500000"]
},
{
"JobVariableName": ["Flight_Download.transport.transportRestartAttempts"],
"JobVariableValue": ["3"]
},
{
"JobVariableName": ["Flight_Download.transport.transportPortUsage"],
"JobVariableValue": ["range"]
},
{
"JobVariableName": ["Flight_Download.transport.relayAgents"],
"JobVariableValue": ["agent2.example.com agent1.example.com"]
},
{
"JobVariableName": ["Flight_Download.transport.httpProxy"],
"JobVariableValue": ["proxy"]
},
{
"JobVariableName": ["Flight_Download.notificationandLoggingOptions.successEmailCondition"],
"JobVariableValue": ["Never"]
},
{
"JobVariableName": ["Flight_Download.notificationandLoggingOptions.emailTo"],
"JobVariableValue": ["user@example.com"]
},
{
"JobVariableName": ["Flight_Download.notificationandLoggingOptions.emailCc"],
"JobVariableValue": ["user2@example.com"]
},
{
"JobVariableName": ["Flight_Download.notificationandLoggingOptions.emailBcc"],
"JobVariableValue": ["user3@example.com"]
},
{
"JobVariableName": ["Flight_Download.notificationandLoggingOptions.emailFailureReportTo"],
"JobVariableValue": ["user4@example.com"]
},
{
"JobVariableName": ["Flight_Download.notificationandLoggingOptions._sp_log_severity"],
"JobVariableValue": ["2"]
},
{
"JobVariableName": ["Flight_Download.notificationandLoggingOptions.createFileDeliveryLog"],
"JobVariableValue": ["yes"]
},
{
"JobVariableName": ["Flight_Download.Schedule._sp_frequency"],
"JobVariableValue": ["None"]
},
{
"JobVariableName": ["Flight_Download.Schedule._sp_start_at"],
"JobVariableValue": ["%now%"]
},
{
"JobVariableName": ["Flight_Download.Schedule.timezone"],
"JobVariableValue": ["America/New_York"]
},
{
"JobVariableName": ["Flight_Download.Schedule._sp_interrupt_on_failure"],
"JobVariableValue": ["no"]
},
{
"JobVariableName": ["Flight_Download.Schedule.priority"],
"JobVariableValue": ["2"]
},
{
"JobVariableName": ["Flight_Download.Schedule.finishBefore"],
"JobVariableValue": [""2020/08/29 12:55:00""]
}
]
}]}]
}]}],
"priority": "low"
}}
Using Media Mover
For more information about Media Mover read the Media Mover documentation.
MediaDropBox Prompts
The following sections provide the prompt names, description, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaDropBox).
Drop Box Specification
The following are the Drop Box Specification prompts for the MediaDropBox:
Drop Box Agent
- Description: The agent(s) from which you are transferring the data. This is a mandatory prompt.
- REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
- JSON Variable Name: MediaDropBox.Source.DropBoxAgent
Drop Box Directory
-
Description: The source folder used for the files to be transferred. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. The source folder specified may be in the following format:
- Windows root drives, e.g., C:\ApplicationData
- UNIX root drives, e.g., /home
- Windows UNC path names, e.g., \machine1\applicationdata
Leaving the Source Data prompt empty will use the agent's default folder.
- REST/SOAP Variable Value:
<siglist type="filedir">
<el v="c:\Temp" t="d"></el>
<el v="e:\dist\source\test.txt" t="f"></el>
</siglist>
The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
- JSON Variable Name: MediaDropBox.Source.DropBoxDirectory
Include File Patterns
- Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names/types. For example, if you type _.doc, _.ppt, in the prompt, the transfer wills include files with these extensions.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: MediaDropBox.Source.IncludeFiles
Exclude File Patterns
- Description: Allows users to specify which files are excluded from the transfer. Use a comma to separate multiple filters. If the source directory for this jobs is also being used as the target directory for another job, you should add #workfile# and #chkptfile#.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: MediaDropBox.Source.ExcludeFiles
Exclude Subdirectories
- Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
- REST/SOAP Variable Value: None, All or Specified
- JSON Variable Name: MediaDropBox.Source.ExcludeSubdirectories
Subdirectories to Exclude
- Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior is now to anchor the exclude folder path.
For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)
If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.
To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:
*
(matches zero or more characters)
?
(matches any single character)
[...]
(matches any one of the enclosed characters - for example, [ch] would match the characters c
or h
)
A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.
- REST/SOAP Variable Value: Comma separated list
- JSON Variable Name: MediaDropBox.Source.ExcludeSubDirList
File Readiness Check Type
- Description: Specify the check type used by an agent to determine if a file is ready to be transferred. Depending on your configuration, you may or may not want to enable the File Readiness Check Type option:
For Windows agents and local Windows file systems, there is no need to use the file readiness check, because the core file in use behavior is sufficient.
For Windows agent and NAS Windows file system, as long as the NAS file system properly supports file locking for in-use files, the readiness check is unnecessary. However, it is still available in the event the NAS file system does not properly support file locking.
For non-Windows agents of any kind (Linux, UNIX, MacOS). If the local or network file system supports file locking, the readiness check is not required. Determine this on a case-by-case basis.
- REST/SOAP Variable Value: Choose one of the following:
- None: files that are in use are skipped by default.
- Consecutive Seek (recommended): reads the last few bytes at the end of the file, waits for the time specified in the Readiness Check Delay prompt and checks again. If the last few bytes match in both cases the file is sent. Very useful with large files where the MD5 option would simply take too long.
- MD5 Hash: use an MD5 hash to compute a hash on all files under the drop-box folder. After the wait time specified in the Readiness Check Delay prompt, the hashes are recomputed. Only files with identical hashes are transferred. Note that job initialization may take a great deal of time if large files are present.
Date/Time & Size: use a difference in date/time or size on the file to compare its readiness. Only files that have identical date/time and size are transferred.
- JSON Variable Name: MediaDropBox.Source.FileReadinessCheckType
Readiness Check Delay
- Description: The amount of time (in seconds) to pause between the two phases of the specified file readiness check type (
MD5 Hash
,Consecutive Seek
, orDate/Time & Size
) for an open file. The file is transferred only if the results of the two checks are identical. If a large number of files are being checked, a value of 0 seconds may be sufficient, since there will likely be sufficient time between the first and second checks of a given file to determine if its content has changed without inserting an additional delay. The default value is 10 seconds. - REST/SOAP Variable Value: Any number between 0 and 300 with a step of 5. For example: 5, 10, 15.
- JSON Variable Name: MediaDropBox.Source.FileReadinessCheckDelay
Source Deletions After Successful Transfer
-
Description: Specifies removal of files or folders from the Drop Box Folder after a successful transfer. The options are:
- None (none): do not delete any source files or empty folders.
- Transferred Files (xfrdfiles): remove the files.
- Empty Folders (emptydirs): remove folders that are left over after the source files have been removed.
- Transferred Files and Empty Directories (xfrdfiles_and_emptydirs): remove both transferred files and empty folders.
- Transferred Files and Directories (xfrdfiles_and_dirs): remove both transferred files and all folders immediately after transfer.
There are certain requirements with the empty folders options: the folders must contain no files (they may contain other empty folders that will be removed as well). The folder cannot have been modified within the previous 5 minutes; if it has, it will not be removed.
- REST/SOAP Variable Value: none, xfrdfiles, emptydirs, xfrdfiles_and_emptydirs or xfrdfiles_and_dirs
- JSON Variable Name: MediaDropBox.Source.sourceDeletionsAfterSuccessfulTransfer
Source Directories to Exclude from Deletion Scan
- Description: Allows you to specify a comma separated list of directories that you do not want to delete.
- REST/SOAP Variable Value: Comma separated list of directories.
- JSON Variable Name: MediaDropBox.Source.sourceDirectoriestoExcludefromDeletionScan
Skip Source File Not Found On Send
- Description: Allows you to skip files that are not found during a transfer. This is a mandatory prompt. The default value is Yes.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDropBox.Source.skipSourceFileNotFoundOnSend
Destination Specification
The following list details the Destination Specification prompts:
Target Agents
- Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
- REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
- JSON Variable Name: MediaDropBox.Target.TargetAgents
TargetDirectory
- Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example: Windows root drives, C:\ApplicationData, UNIX root drive, /home or Windows UNC path names, \machine1\applicationdata.
- REST/SOAP Variable Value: Any valid path, for example c:\Temp (Windows) or /usr/tmp (Unix).
- JSON Variable Name: MediaDropBox.Target.TargetDirectory
Directory Mapping Options
- Description: Only applicable if items are added to the TargetDirectory path during the transfer (for example, Source Host or Job Date/Time). If this attribute or TargetDirectory are not selected, all files are put into a single parent folder. Files can be separated in directories named by source agent or date/time or both by selecting the appropriate control.
- REST/SOAP Variable Value: Source Host or Job Date/Time
- JSON Variable Name: MediaDropBox.Target.PathMappingOptions
Maximum Job Date-Time Directories
- Description: If the Directory Mapping Option Job Date/Time has been selected, the Maximum Job Date-Time Directories setting determines the maximum number of job date/time folders to be maintained on the target system. For example, with the default value of 10, once more than 10 job date/time folders are created in the target directory, the oldest job date/time directory will be deleted so that a maximum of 10 exist at any given time. Selectable values range from 1 through 1000 plus a value of
Unlimited
, which instructs the job to never prune the job date/time directories. - REST/SOAP Variable Value: The following possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, -1
- JSON Variable Name: MediaDropBox.Target.maximumJobDateTimeDirectories
Remove Expired Files on Target
- Description: Specifies whether files on the destination are deleted when they reach the end of a user-specified expiration period (see Expiration Period (Days), below). Once the files are transferred to the target location, the directory is examined for files that have a modified time greater than the expiry time specified. Files that match the criteria are removed. The expiry time is specified in days. The removal of the expired files is done at Target Initialization.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDropBox.Target.RemoveTargetFiles
Remove Expired Directories on Target
- Description: Specifies whether directories on the destination are deleted when they reach the end of the user-specified expiration period (see Expiration Period below). Once the files are transferred to the target location, the directory is examined for a modified time greater than the expiry time specified. Directories that match the criteria are removed. The expiry time is specified in days. The removal of the expired folders is done at Target Initialization.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDropBox.Target.removeExpiredDirectoriesonTarget
Expiration Period
- Description: When Remove Expired Files on Target or Remove Expired Directories on Target is set to Yes, this prompt is used to specify the number of days files can exist on the destination before they are removed.
- REST/SOAP Variable Value: 1 to 365 (days)
- JSON Variable Name: MediaDropBox.Target.expirationPeriod
Transport Options
The following list provides Transport Options prompt details:
Use UDP Control Channel
- Description: Allows you to specify that job control information is communicated using UDP instead of TCP. This includes both the communication between the Signiant Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). The default is No.
This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the Signiant Manager is controlled separately as part of agent configuration.
When set to Yes, all file transfers are also forced to utilize UDP WAN acceleration (this overrides the Use WAN Accelerator setting). It is not possible to have job control using TCP and data transfer using UDP.
This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, we recommend that this prompt is set to No.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDropBox.Transport._sp_udp
Use WAN Accelerator
- Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and will attempt to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.
When running a job with Use WAN Accelerator set to Yes, with a low bandwidth ceiling, or flow, or low throughput, the transfer will be switched to TCP. (The cutoff value is 57200 bits/second.)
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaTrigger.Transport.UseWANAccelerator
WAN Accelerator Aggressiveness
-
Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
High: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic. Medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the Bandwidth Floor. Low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
-
REST/SOAP Variable Value: high, medium or low
-
JSON Variable Name: MediaDropBox.Transport.WANAcceleratorAggressiveness
Bandwidth Ceiling
- Description: The maximum rate at which the source sends data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.).
0
specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster, because when the ceiling is set, the transfer immediately starts at that rate, rather than ramping up. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaDropBox.Transport.BandwidthCeiling
Bandwidth Floor
- Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used.
0
specifies auto-detection for the best bandwidth rate. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaDropBox.Transport.BandwidthFloor
Bandwidth Throttle by Time of Day (in GMT time)
- Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.
For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon +
to add more bandwidth throttles, or the x
to delete a throttle.
Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps) Where: HH:MM: is a time value, first value is start, second is stop SMTWTFS: are the days in the week, the values for this part should be Y or N, depending on whether you want to use the control in a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN bps: any number
You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.
- JSON Variable Name: MediaDropBox.Transport.BandwidthThrottleByTimeOfDay
Advanced Options
The following list provides Advanced Options prompt details:
Encryption Level
- Description: The encryption level selected dictates how securely the information is transmitted over the network (note: the file/package is always stored in the original format). Encryption is isolated to the 'on the wire' portion of the transfer only and does not affect what is stored on the file system whatsoever.
Allows specification of the encryption level from the following values:
_ No Encryption- signed: This transfers unencrypted (plain text) data, but includes the SSL protocol's message digest calculation and signing to ensure data stream integrity.
_ No Encryption - unsigned: This allows the transfer of data, after the initial SSL authentication of the endpoints, to proceed with no encryption, no message digest computation and no signing of the message digests (normally included with the SSL protocol. This mode of operation is only for raw performance, since it makes no guarantee of the integrity of the data stream other than the default one has with a normal network channel. The underlying TCP protocol can guarantee the integrity of messages across each single network hop, but has no facilities for detecting a man-in-the-middle attack.
The Encryption On option uses the following maximum or high encryption level: Cipher=AES256-SHA, Keysize=256/256.
The default value is No Encryption - unsigned. Note that mutual authentication is always used, regardless of the encryption level specified. Encryption is done in-stream
and not on disk prior to sending.
- REST/SOAP Variable Value: high, med, low, none or off
- JSON Variable Name: MediaDropBox.Options._sp_encryption
Delivery Mode
-
Description: Specifies the file transfer mode. The options are:
- Fast: Do not create temporary work files. This mode is optimized for speed. (fast)
- Normal: Use temporary work files during transfer. Temporary files allow an interrupted transfer to resume from where the interruption occurred. The creation of temporary files adds time to the transfer, but provides resiliency. (nor)
- Log File Name: Log file names transferred. Logs are stored on the Signiant Manager. (unsigned)
- Certify File Delivery: Create agent certified delivery log of files transferred. (yes)
-
REST/SOAP Variable Value: fast, nor, unsigned or yes
-
JSON Variable Name: MediaDropBox.Options.deliveryMode
Compress Files
- Description: If set to Yes, the source agent compresses each file before sending it. The files are uncompressed automatically on the target agent(s). The degree of compression depends on the type of data you are transferring. The following are typical rates of compression for different types of data: Plain text: 70-95%, TIFF images: 20-40% or Binary files: 0-5%. The default value is No. Choose this option if you are running over a low speed WAN link (e.g., less than 3 Mbps). This option is NOT recommended for LAN or high speed links.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDropBox.Options.CompressFiles
Follow Symbolic Links
- Description: Specifies whether the end target of a symbolic link or the symbolic link itself is transferred to the target. If a symbolic link references a directory and Follow Symbolic Links is enabled, a directory is transferred; otherwise, if Follow Symbolic Links is disabled, the symbolic link itself is transferred. Select Yes to transfer the files or directory contents to which the symbolic links point. Select No to transfer only the symbolic links themselves. This field has a default value of No.
Windows versions prior to Windows 2008 do not support symbolic links, and these agent treat the arrival of a symbolic link at a Windows target as an error, causing the transfer to fail, unless you set the follow symbolic links
option to Yes. When set to Yes, the file to which the symbolic link points is transferred under the name of the symbolic link.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDropBox.Options.followSymbolicLinks
Incremental Transfer
- Description: If set to Yes, only changed bytes of files are transferred, not the entire file. Typically used in low bandwidth situations. Choose this if you are running over a low speed WAN link.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDropBox.Options.IncrementalTransfer
Verify for sufficient disk space before Job transfers start
- Description: Select Yes to check the remote disk space on the target agent before the job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDropBox.Options.verifyforsufficientdiskspacebeforeJobtransfersstart
Verify if target directory exists
- Description: Select Yes to verify that the target directory exists on the target agent before the job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDropBox.Options.verifytargetdirectoryexists
Notifications and Logging
The following list provides Notifications and Logging prompt details:
Email Condition
-
Description: The circumstances in which an e-mail is sent. Choose from the following:
- Always: An e-mail is always sent when a job runs.
- Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
- On Transfer: An e-mail is sent only when the transfer occurs.
- Never: No e-mail is sent.
-
REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
-
JSON Variable Name: MediaDropBox.NotificationAndLogging.EmailCondition
Email To
- Description: The email address of the person who receives the logging report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaDropBox.NotificationAndLogging.EmailTo
Email Cc
- Description: Specifies the email address(es) of the recipient(s) of a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaDropBox.NotificationAndLogging.EmailCc
Email Bcc
- Description: Specifies the email address(es) of the recipient(s) of a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaDropBox.NotificationAndLogging.EmailBcc
Email Job Failure Report To
- Description: The email address of the person who receives the failure report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaDropBox.NotificationAndLogging.emailJobFailureReportTo
Log Detail Level
- Description: The type of logging information for this job. Choose from 0 (Error), 1 (Warn) (warning), 2 (Info) (Information) or 3 (Debug). Debug provides the greatest level of detail while Error provides the least. The default value is Info.
- REST/SOAP Variable Value: 0, 1, 2, or 3
- JSON Variable Name: MediaTrigger.NotificationAndLogging._sp_log_severity
SNMP
The following list provides SNMP prompt details:
SNMP Trap Receivers
- Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
- REST/SOAP Variable Value: Any hostname or IP address.
- JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapReceivers
SNMP Trap Community String
- Description: The SNMP community string (i.e. password) to be sent in the trap.
- REST/SOAP Variable Value: Any string.
- JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapCommunityString
SNMP Trap Types
- Description: The job completion status on which to send SNMP traps. The options are: Job Success or Job Failure.
- REST/SOAP Variable Value: Success, Failure or both
- JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapTypes
Schedule
The following list provides Schedule prompt details:
Frequency
- Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
- None: use for jobs that run only at irregular, user defined times.
- Hourly, Daily, Weekly, Monthly, Yearly: - run the job once every selected interval.
- Monthend: run the job once every last day of the month.
- Once: run the job only once, when first created.
- REST/SOAP Variable Value: Possible values: None, Any number, representing
Every X minutes
, Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representingEvery X Y of the month
, Any (number)(blankspace)(letter)4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - JSON Variable Name: MediaTrigger.Schedule._sp_frequency
Start Date/Time
- Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
- JSON Variable Name: MediaTrigger.Schedule._sp_start_at
Time Zone
- Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
- REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see Time Zone Values.
- JSON Variable Name: MediaTrigger.Schedule.timezone
Interrupt on Failure
- Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaTrigger.Schedule._sp_interrupt_on_failure
Priority
- Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
- REST/SOAP Variable Value: 1, 2, 3, 4, or **5 **
- JSON Variable Name: MediaTrigger.Schedule.priority
Finish Before
- Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
- JSON Variable Name: MediaTrigger.Schedule.finishBefore
MediaTrigger Prompts
The following lists provide the prompt names, prompt details, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaTrigger).
Source Specification
The following list provides Source Specification prompt details:
Source Agent
- Description: The agent from which you are transferring the data. This is a mandatory prompt.
- REST/SOAP Variable Value: The hostname for any agent or alias in the system.
- JSON Variable Name: MediaTrigger.Source.SourceAgent
Source Directory
-
Description: The source folder used for the files to be transferred. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. This is a mandatory prompt. The source folder specified may be in the following format:
- Windows root drives, e.g., C:\ApplicationData
- UNIX root drives, e.g., /home
- Windows UNC path names, e.g., \machine1\applicationdata
Leaving the Source Data prompt empty will use the agent's default folder.
- REST/SOAP Variable Value:
<siglist type="filedir">
<el v="c:\Temp" t="d"></el>
<el v="e:\dist\source\test.txt" t="f"></el>
</siglist>
The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
- JSON Variable Name: MediaTrigger.Source.SourceData
Skip Source Files Not Found On Send
- Description: Allows you to skip files that are not found during a transfer. The default value is Yes. This is a mandatory prompt.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaTrigger.Source.skipSourceFileNotFoundOnSend
Destination Specification
The following list provides Destination Specification prompt details:
Target Agents
- Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
- REST/SOAP Variable Value: The hostname of any agent or alias in the system.
- JSON Variable Name: MediaTrigger.Target.TargetAgents
Target Directory
- Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example:
- Windows root drives, e.g., C:\ApplicationData
- UNIX root drives, e.g., /home
- Windows UNC path names, e.g., \machine1\applicationdata
- REST/SOAP Variable Value: Any valid path on the Signiant Manager, for example: c:\Temp (Windows) or /usr/tmp (UNIX).
- JSON Variable Name: MediaTrigger.Target.TargetDirectory
Directory Mapping Options
- Description: Only applicable if items are added to the Target Directory path during the transfer (for example, Source Host or Job Date/Time). If this attribute or Target Directory are not selected, all files are put into a single parent folder. Files can be separated in directories named by source agent or date/time or both by selecting the appropriate control.
- REST/SOAP Variable Value: Source Host or Job Date/Time
- JSON Variable Name: MediaTrigger.Target.PathMappingOptions
Maximum Job Date-Time Directories
- Description: If the Directory Mapping Option
Job Date/Time
has been selected, the Maximum Job Date-Time Directories setting determines the maximum number of job date/time folders to be maintained on the target system. For example, with the default value of 10, once more than 10 job date/time folders are created in the target directory, the oldest job date/time directory will be deleted so that a maximum of 10 will exist at any given time. Selectable values range from 1 through 1000 plus a value ofUnlimited
, which instructs the job to never prune the job date/time directories. - REST/SOAP Variable Value: The following possible values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, -1
- JSON Variable Name: MediaTrigger.Target.maximumJobDateTimeDirectories
Transport Options
The following list provides Transport Options prompt details:
Use UDP Control Channel
- Description: Allows you to specify that job control information is communicated using UDP instead of TCP. This includes both the communication between the Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). By default Use UDP Channel is set to No.
This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the GUI is controlled separately as part of agent configuration.
When Use UDP Control Channel is set to Yes
, all file transfers are also forced to utilize UDP WAN acceleration. That is, the Use WAN Accelerator setting is overridden. It is not possible to have job control using TCP and data transfer using UDP.
This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, then it is recommended that Use UDP Control Channel be set to No.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaTrigger.Transport._sp_udp
Use WAN Accelerator
- Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and attempts to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.
When running a job with Use WAN Accelerator set to Yes, with a low bandwidth ceiling, or flow, or low throughput, the transfer is switched to TCP. (The cutoff value is 57200 bits/second.)
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaTrigger.Transport.UseWANAccelerator
WAN Accelerator Aggressiveness
- Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
- High: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic.
- Medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the bandwidth floor.
- Low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
- REST/SOAP Variable Value: high, medium or low
- JSON Variable Name: MediaTrigger.Transport.wANAcceleratorAggressiveness
Bandwidth Ceiling
- Description: The maximum rate at which the source will send the data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.).
0
specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster though - as long as it is set correctly. This is because if the ceiling is set, the transfer immediately starts at that rate, rather than ramping up. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaTrigger.Transport.BandwidthCeiling
Bandwidth Floor
- Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used.
0
specifies auto-detection for the best bandwidth rate. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaTrigger.Transport.BandwidthFloor
Bandwidth Throttle by Time of Day (in GMT time)
- Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.
For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon (+
) to add more bandwidth throttles, or the x
to delete a throttle.
Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.
- REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps) Where: HH:MM: A time value, first value is start, second is stop SMTWTFS: The days of the week, the values for this part should be Y or N, depending on whether you want to use the control on a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN bps: any number
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.
- JSON Variable Name: MediaTrigger.Transport.BandwidthThrottleByTimeOfDay
Advanced Options
The following list provides Advanced Options prompt details:
Verify for sufficient disk space before Job transfers start
- Description: Select Yes to check the remote disk space on the target agent before the job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaTrigger.Options.verifyforsufficientdiskspacebeforeJobtransfersstart
Verify if Target Directory Exists
- Description: Select Yes to verify that the target directory exists on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaTrigger.Options.verifytargetdirectoryexists
Notifications and Logging
The following list provides Notifications and Logging prompt details:
Email Condition
- Description: The circumstances in which an e-mail is sent. Choose from the following:
- Always: An e-mail is always sent when a job runs.
- Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
- On Transfer: An e-mail is sent only when the transfer occurs.
- Never: No e-mail is sent.
- REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
- JSON Variable Name: MediaTrigger.NotificationAndLogging.EmailCondition
Email To
- Description: The email address of the person to receive the logging report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaTrigger.NotificationAndLogging.EmailTo
Email Cc
- Description: Specifies the email address(es) to receive a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaTrigger.NotificationAndLogging.EmailCc
Email Bcc
- Description: Specifies the email address(es) to receive a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaTrigger.NotificationAndLogging.EmailBcc
Email Job Failure Report To
- Description: The email address of the person to receive the failure report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaTrigger.NotificationAndLogging.emailJobFailureReportTo
Log Detail Level
- Description: The type of logging information for this job. Choose from Error, Warn (warning), Info (Information) or Debug. Debug provides the greatest level of detail while Error provides the least. The options are: 0 error, 1 warn, 2 info, or 3 debug. The default value is Info.
- REST/SOAP Variable Value: 0, 1, 2, or 3
- JSON Variable Name: MediaTrigger.NotificationAndLogging._sp_log_severity
SNMP
The following list provides SNMP prompt details:
SNMP Trap Receivers
- Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
- REST/SOAP Variable Value: Any hostname or IP address.
- JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapReceivers
SNMP Trap Community String
- Description: The SNMP community string (i.e. password) to be sent in the trap.
- REST/SOAP Variable Value: Any string.
- JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapCommunityString
SNMP Trap Types
- Description: The job completion statuses on which to send SNMP traps. The options are: Job Success or Job Failure.
- REST/SOAP Variable Value: Success, Failure or both
- JSON Variable Name: MediaTrigger.sNMPProperties.sNMPTrapTypes
Schedule
The following list provides Schedule prompt details:
Frequency
- Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
- None: use for jobs that run only at irregular, user defined times.
- Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval. Any number, representing
Every X minutes
. - Monthend: run the job once every last day of the month. Any (number)(blankspace)(letter)
4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - Once: run the job only once, when first created. Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing
Every X Y of the month
- REST/SOAP Variable Value:Possible values: None, Any number, representing
Every X minutes
, Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representingEvery X Y of the month
, Any (number)(blankspace)(letter)4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - JSON Variable Name: MediaTrigger.Schedule._sp_frequency
Start Date/Time
- Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
- JSON Variable Name: MediaTrigger.Schedule._sp_start_at
Time Zone
- Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
- REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see Time Zone Values.
- JSON Variable Name: MediaTrigger.Schedule.timezone
Interrupt on Failure
- Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaTrigger.Schedule._sp_interrupt_on_failure
Priority
- Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
- REST/SOAP Variable Value: 1, 2, 3, 4, or 5
- JSON Variable Name: MediaTrigger.Schedule.priority
Finish Before
- Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
- JSON Variable Name: MediaTrigger.Schedule.finishBefore
MediaAggregator Prompts
The following lists provide the prompt names, prompt details, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaAggregator). See (#MediaAgg">MediaAggregator JSON Example).
Source Specification
The following list provides Source Specification prompt details:
Source Agents
- Description: The agent(s) from which you are transferring data. This is a mandatory prompt.
- REST/SOAP Variable Value: Hostname of any agent or alias in the system.
- JSON Variable Name: MediaAggregator.Source.SourceAgents
Source Data
- Description: The source folder used for the files to be transferred. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. The source folder specified may be in the following format: _ Windows root drives, e.g., C:\ApplicationData _ UNIX root drives, e.g., /home * Windows UNC path names, e.g., \machine1\applicationdata Leaving the Source Data prompt empty will use the agent's default folder.
- REST/SOAP Variable Value:
<siglist type="filedir">
<el v="c:\Temp" t="d"></el>
<el v="e:\dist\source\test.txt" t="f"></el>
</siglist>
The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
- JSON Variable Name: MediaAggregator.Source.SourceData
Include File Patterns
- Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names/types. For example, if you type _.doc, _.ppt, in the prompt, the transfer wills include files with these extensions.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: MediaAggregator.Source.IncludeFiles
Exclude File Patterns
- Description: Allows users to specify which files are excluded from the transfer. Use a comma to separate multiple filters. If the source directory for this jobs is also being used as the target directory for another job, you should add #workfile# and #chkptfile#.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: MediaAggregator.Source.ExcludeFiles
Exclude Subdirectories
- Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
- REST/SOAP Variable Value: None, All or Specified
- JSON Variable Name: MediaAggregator.Source.ExcludeSubdirectories
Subdirectories to Exclude
- Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior is now to anchor the exclude folder path.
For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)
If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.
To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:
*
(matches zero or more characters)
?
(matches any single character)
[...]
(matches any one of the enclosed characters - for example, [ch] would match the characters c
or h
)
A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.
- REST/SOAP Variable Value: Comma separated list
- JSON Variable Name: MediaAggregator.Source.ExcludeSubDirList
Readiness Check Type
- Description:
Specify the check type used by an agent to determine if a file is ready to be transferred. Depending on your configuration, you may or may not want to enable the file readiness check option.
For Windows agents and local Windows file systems, there is no need to use the File Readiness Check, because the core file in use behavior is sufficient.
For Windows agent and NAS Windows file system, as long as the NAS file system properly supports file locking for in-use files, the readiness check is unnecessary. However, it is still available in the event the NAS file system does not properly support file locking.
For non-Windows agents of any kind (Linux, UNIX, MacOS). If the local or network file system supports file locking, the readiness check is not required. Determine this on a case-by-case basis.
-
REST/SOAP Variable Value: Choose one of the following:
- None: files that are in use are skipped by default.
- Consecutive Seek (recommended): reads the last few bytes at the end of the file, waits for the time specified in the Readiness Check Delay prompt and checks again. If the last few bytes match in both cases the file is sent. Very useful with large files where the MD5 option would simply take too long.
- MD5 Hash: use an MD5 hash to compute a hash on all files under the drop-box folder. After the wait time specified in the Readiness Check Delay prompt, the hashes are recomputed. Only files with identical hashes are transferred. Note that job initialization may take a great deal of time if large files are present.
- Date/Time & Size: use a difference in date/time or size on the file to compare its readiness. Only files that have identical date/time and size are transferred.
-
JSON Variable Name: MediaAggregator.Source.FileReadinessCheckType
Readiness Check Delay
- Description:The amount of time (in seconds) to pause between the two phases of the specified file readiness check type (
MD5 Hash
,Consecutive Seek
, orDate/Time & Size
) for an open file. The file is transferred only if the results of the two checks are identical. If a large number of files are being checked, a value of 0 seconds may be sufficient, since there will likely be sufficient time between the first and second checks of a given file to determine if its content has changed without inserting an additional delay. The default value is 10 seconds. - REST/SOAP Variable Value: Any number between 0 and 300 with a step of 5. For example: 5, 10, 15.
- JSON Variable Name: MediaAggregator.Source.FileReadinessCheckDelay
Source Deletions After Successful Transfer
- Description: Specifies removal of files or folders from the Drop Box Folder after a successful transfer. The options are:
- None: do not delete any source files or empty folders. (none)
- Transferred Files: remove the files. (xfrdfiles)
- Empty Folders: remove folders that are left over after the source files have been removed. (emptydirs)
- Transferred Files and Empty Directories: remove both transferred files and empty folders. (xfrdfiles_and_emptydirs)
- Transferred Files and Directories: remove both transferred files and all folders immediately after transfer. (xfrdfiles_and_dirs)
There are certain requirements with the empty folders options: the folders must contain no files (they may contain other empty folders that will be removed as well). The folder cannot have been modified within the previous 5 minutes; if it has, it will not be removed.
- REST/SOAP Variable Value: none, xfrdfiles, emptydirs, xfrdfiles_and_emptydirs or xfrdfiles_and_dirs
- JSON Variable Name: MediaAggregator.Source.sourceDeletionsAfterSuccessfulTransfer
Source Directories to Exclude from Deletion Scan
- Description: Allows you to specify a comma-separated list of directories that you do not want to delete.
- REST/SOAP Variable Value: Comma-separated list of directories.
- JSON Variable Name: MediaAggregator.Source.sourceDirectoriestoExcludefromDeletionScan
Skip Source File Not Found On Send
- Description: Allows you to skip files that are not found during a transfer. This is a mandatory prompt. The default value is Yes.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Source.skipSourceFileNotFoundOnSend
Destination Specification
The following list details the Destination Specification prompts:
Target Agents
- Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
- REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
- JSON Variable Name: MediaAggregator.Target.TargetAgents
TargetDirectory
- Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example: Windows root drives, C:\ApplicationData, UNIX root drive, /home or Windows UNC path names, \machine1\applicationdata.
- REST/SOAP Variable Value: Any valid path, for example c:\Temp (Windows) or /usr/tmp (Unix).
- JSON Variable Name: MediaAggregator.Target.TargetDirectory
Directory Mapping Options
- Description: Only applicable if items are added to the TargetDirectory path during the transfer (for example, Source Host or Job Date/Time). If this attribute or TargetDirectory are not selected, all files are put into a single parent folder. Files can be separated in directories named by source agent or date/time or both by selecting the appropriate control.
- REST/SOAP Variable Value: Source Host or Job Date/Time
- JSON Variable Name: MediaAggregator.Target.PathMappingOptions
Maximum Job Date-Time Directories
- Description: If the Directory Mapping Option
Job Date/Time
has been selected, the Maximum Job Date-Time Directories setting determines the maximum number of job date/time folders to be maintained on the target system. For example, with the default value of 10, once more than 10 job date/time folders are created in the target directory, the oldest job date/time directory will be deleted so that a maximum of 10 will exist at any given time. Selectable values range from 1 through 1000 plus a value ofUnlimited
, which instructs the job to never prune the job date/time directories. - REST/SOAP Variable Value: Any number
- JSON Variable Name: MediaAggregator.Target.maximumJobDateTimeDirectories
Remove Expired Files on Target
- Description: Specifies whether files on the destination are deleted when they reach the end of a user-specified expiration period (see Expiration Period (Days), below). Once the files are transferred to the target location, the directory is examined for files that have a modified time greater than the expiry time specified. Files that match the criteria are removed. The expiry time is specified in days. The removal of the expired files is done at Target Initialization.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Target.RemoveTargetFiles
Remove Expired Directories on Target
- Description: Specifies whether directories on the destination are deleted when they reach the end of the user-specified expiration period (see Expiration Period below). Once the files are transferred to the target location, the directory is examined for a modified time greater than the expiry time specified. Directories that match the criteria are removed. The expiry time is specified in days. The removal of the expired folders is done at Target Initialization.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Target.removeExpiredDirectoriesonTarget
Expiration Period
- Description: Specifies the number of days files can exist on the destination before they are removed, if Remove Expired Files on Target is set to Yes.
- REST/SOAP Variable Value: 1 to 365 (days)
- JSON Variable Name: MediaAggregator.Target.expirationPeriod
Transport Options
The following list provides Transport Options prompt details:
Use UDP Control Channel
- Description: Allows you to specify that job control information will be communicated using UDP instead of TCP. This includes both the communication between the Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). By default
Use UDP Channel
is set to No.
This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the GUI is controlled separately as part of agent configuration.
When Use UDP Control Channel is set to Yes
, all file transfers are also forced to utilize UDP WAN acceleration. That is, the Use WAN Accelerator setting is overridden. Thus it is not possible to have job control using TCP and data transfer using UDP.
This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, then it is recommended that Use UDP Control Channel be set to No
.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Transport._sp_udp
Use WAN Accelerator
- Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and will attempt to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.
When running a job with Use WAN Accelerator set to Yes
, with a low bandwidth ceiling, or flow, or low throughput, the transfer will be switched to TCP. (The cutoff value is 57200 bits/second.)
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: Yes or No
- JSON Variable Name: MediaAggregator.Transport.UseWANAccelerator
WAN Accelerator Aggressiveness
- Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
- High: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic.
- Medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the bandwidth floor.
- Low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
- REST/SOAP Variable Value: high, medium or low
- JSON Variable Name: MediaAggregator.Transport.wANAcceleratorAggressiveness
Bandwidth Ceiling
- Description: The maximum rate at which the source will send the data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.).
0
specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster though - as long as it is set correctly. This is because if the ceiling is set, the transfer immediately starts at that rate, rather than ramping up. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaAggregator.Transport.BandwidthCeiling
Bandwidth Floor
- Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used.
0
specifies auto-detection for the best bandwidth rate. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaAggregator.Transport.BandwidthFloor
Bandwidth Throttle by Time of Day (in GMT time)
- Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.
For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon (+
) to add more bandwidth throttles, or the x
to delete a throttle.
Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps) Where:
You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.
-
HH:MM is a time value, first value is start, second is stop
-
SMTWTFS are the days in the week, the values for this part should be Y or N, depending on whether you want to use the control in a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN
-
bps - any number
-
JSON Variable Name: MediaAggregator.Transport.BandwidthThrottleByTimeOfDay
Advanced Options
The following list provides Advanced Options prompt details:
Encryption Level
- Description: The encryption level selected will dictate how securely the information is transmitted over the network (note: the file/package is always stored in the original format). Encryption is isolated to the 'on the wire' portion of the transfer only and does not affect what is stored on the file system whatsoever.
Allows specification of the encryption level from the following values:
_ No Encryption - signed: This transfers unencrypted (plain text) data, but includes the SSL protocol's message digest calculation and signing to ensure data stream integrity.
_ No Encryption - unsigned -: This allows the transfer of data, after the initial SSL authentication of the endpoints, to proceed with no encryption, no message digest computation and no signing of the message digests (normally included with the SSL protocol. This mode of operation is only for raw performance, since it makes no guarantee of the integrity of the data stream other than the default one has with a normal network channel. The underlying TCP protocol can guarantee the integrity of messages across each single network hop, but has no facilities for detecting a man-in-the-middle attack.
The Encryption On option uses the following maximum or high encryption level: Cipher=AES256-SHA, Keysize=256/256.
The default value is No Encryption - unsigned. Note that mutual authentication is always used, regardless of the encryption level specified. Encryption is done in-stream
and not on disk prior to sending.
REST/SOAP Variable Value: high, med, low, none or off
- JSON Variable Name: MediaAggregator.Options._sp_encryption
Delivery Mode
- Description: Specifies the file transfer mode. The options are: Fast: Do not create temporary work files. This mode is optimized for speed. Normal: Use temporary work files during the transfer. Temporary files allow an interrupted transfer to resume from where the interruption occurred. The creation of temporary files adds time to the transfer, but provides resiliency. Log File Name: Log file names transferred. Logs are stored on the Manager. Certify File Delivery: Create an agent certified delivery log of files transferred.
- REST/SOAP Variable Value: fast, no, unsigned or yes
- JSON Variable Name: MediaAggregator.Options.deliveryMode
Compress Files
- Description: If set to Yes, the source agent compresses each file before sending it. The files are uncompressed automatically on the target agent(s). The degree of compression depends on the type of data you are transferring. The following are typical rates of compression for different types of data: Plain text: 70-95%, TIFF images: 20-40% or Binary files: 0-5%. The default value is No. Choose this option if you are running over a low speed WAN link (e.g., less than 3 Mbps). This option is NOT recommended for LAN or high speed links.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Options.CompressFiles
Follow Symbolic Links
- Description: Specifies whether the end target of a symbolic link or the symbolic link itself is transferred to the target. If a symbolic link references a directory and Follow Symbolic Links is enabled, a directory is transferred; otherwise, if Follow Symbolic Links is disabled, the symbolic link itself is transferred. Select Yes to transfer the files or directory contents to which the symbolic links point. Select No to transfer only the symbolic links themselves. This field has a default value of No.
Windows versions prior to Windows 2008 do not support symbolic links, and these agent treat the arrival of a symbolic link at a Windows target as an error, causing the transfer to fail, unless you set the follow symbolic links
option to Yes. When set to Yes, the file to which the symbolic link points is transferred under the name of the symbolic link.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Options.followSymbolicLinks
Incremental Transfer
- Description: If set to Yes, only changed bytes of files are transferred, not the entire file. Typically used in low bandwidth situations. Choose this if you are running over a low speed WAN link.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Options.IncrementalTransfer
Verify for sufficient disk space before Job transfers start
- Description: Select Yes to check the remote disk space on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Options.verifyforsufficientdiskspacebeforeJobtransfersstart
Verify if target directory exists
- Description: Select Yes to verify that the target directory exists on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Options.verifytargetdirectoryexists
Notifications and Logging
The following list provides Notifications and Logging prompt details:
Email Condition
- Description: The circumstances in which an e-mail is sent. Choose from the following:
- Always: An e-mail is always sent when a job runs.
- Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
- On Transfer: An e-mail is sent only when the transfer occurs.
- Never: No e-mail is sent.
- REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
- JSON Variable Name: MediaAggregator.NotificationAndLogging.EmailCondition
Email To
- Description: The email address of the person who receives the logging report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaAggregator.NotificationAndLogging.EmailTo
Email Cc
- Description: Specifies the email address(es) of the recipient(s) of a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaAggregator.NotificationAndLogging.EmailCc
Email Bcc
- Description: Specifies the email address(es) of the recipient(s) of a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaAggregator.NotificationAndLogging.EmailBcc
Email Job Failure Report To
- Description: The email address of the person who receives the failure report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaAggregator.NotificationAndLogging.emailJobFailureReportTo
Log Detail Level
- Description: The type of logging information for this job. Choose from Error, Warn (warning), Info (Information) or Debug. Debug provides the greatest level of detail while Error provides the least. The options are: 0 error, 1 warn, 2 info, or 3 debug. The default value is Info.
- REST/SOAP Variable Value: 0, 1, 2, or 3
- JSON Variable Name: MediaAggregator.NotificationAndLogging._sp_log_severity
SNMP
The following list provides SNMP prompt details:
SNMP Trap Receivers
- Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
- REST/SOAP Variable Value: Any hostname or IP address.
- JSON Variable Name: MediaAggregator.sNMPProperties.sNMPTrapReceivers
SNMP Trap Community String
- Description: The SNMP community string (i.e. password) to be sent in the trap.
- REST/SOAP Variable Value: Any string.
- JSON Variable Name: MediaAggregator.sNMPProperties.sNMPTrapCommunityString
SNMP Trap Types
- Description: The job completion statuses on which to send SNMP traps. The options are: Job Success or Job Failure.
- REST/SOAP Variable Value: Success, Failure or both
- JSON Variable Name: MediaAggregator.sNMPProperties.sNMPTrapTypes
Schedule
The following list provides Schedule prompt details:
Frequency
- Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
- None: use for jobs that run only at irregular, user defined times.
- Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval. Any number, representing
Every X minutes
. - Monthend: run the job once every last day of the month. Any (number)(blankspace)(letter)
4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - Once: run the job only once, when first created. Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing
Every X Y of the month
- REST/SOAP Variable Value: Possible values: None, Any number, representing
Every X minutes
, Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representingEvery X Y of the month
, Any (number)(blankspace)(letter)4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - JSON Variable Name: MediaAggregator.Schedule._sp_frequency
Start Date/Time
- Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
- JSON Variable Name: MediaAggregator.Schedule._sp_start_at
Time Zone
- Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
- REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see Time Zone Values.
- JSON Variable Name: MediaAggregator.Schedule.timezone
Interrupt on Failure
- Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaAggregator.Schedule._sp_interrupt_on_failure
Priority
- Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
- REST/SOAP Variable Value: 1, 2, 3, 4, 5
- JSON Variable Name: MediaAggregator.Schedule.priority
Finish Before
- Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
- JSON Variable Name: MediaAggregator.Schedule.finishBefore
MediaAggregator JSON Example
The following is an example of the MediaAggregator JSON.
{
"transferJob": {
"resourceID": "61",
"notifyAt": {
"replyTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp",
"faultTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp"
},
"bmObjects": {
"bmObject": [
{
"bmContents": {
"bmContent": [
{
"bmContentFormats": {
"bmContentFormat": [
{
"bmEssenceLocators": {
"bmEssenceLocator": [
{
"type": "SimpleFileLocatorType",
"file": "file://agent1.example.com/C:/storage/test.zip"
}
]
},
"packageSize": 44947460
}
]
}
}
]
}
}
]
},
"priority": "low",
"profiles": [
{
"transferProfile": [
{
"name": "Transfer Profile",
"description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"destination": "file://agent2.example.com/C:/storage/target"
}
],
"location": [
"https://manager.example.com/template/Media_Mover_Workflows/component/MediaAggregator"
],
"ExtensionGroup": [
{
"SigniantExtensionGroup": [
{
"jobContextParameters": [
{
"jobName": ["FIMS_jobName_061"],
"jobGroup": ["Default"]
}
],
"jobVariables": [
{
"JobVariableName": [
"MediaAggregator.Source.SourceAgents"
],
"JobVariableValue": ["agent1.example.com"]
},
{
"JobVariableName": [
"MediaAggregator.Source.SourceData"
],
"JobVariableValue": ["D:\\Backgrounds"]
},
{
"JobVariableName": [
"MediaAggregator.Source.IncludeFiles"
],
"JobVariableValue": ["*"]
},
{
"JobVariableName": [
"MediaAggregator.Source.ExcludeFiles"
],
"JobVariableValue": ["zimg*"]
},
{
"JobVariableName": [
"MediaAggregator.Source.ExcludeSubdirectories"
],
"JobVariableValue": ["None"]
},
{
"JobVariableName": [
"MediaAggregator.Source.ExcludeSubDirList"
],
"JobVariableValue": ["excludeMe"]
},
{
"JobVariableName": [
"MediaAggregator.Source.FileReadinessCheckType"
],
"JobVariableValue": ["Date/Time & Size"]
},
{
"JobVariableName": [
"MediaAggregator.Source.FileReadinessCheckDelay"
],
"JobVariableValue": ["10"]
},
{
"JobVariableName": [
"MediaAggregator.Source.sourceDeletionsAfterSuccessfulTransfer"
],
"JobVariableValue": ["emptydirs"]
},
{
"JobVariableName": [
"MediaAggregator.Source.sourceDirectoriestoExcludefromDeletionScan"
],
"JobVariableValue": ["notToBeDeleted"]
},
{
"JobVariableName": [
"MediaAggregator.Source.skipSourceFileNotFoundOnSend"
],
"JobVariableValue": ["yes"]
},
{
"JobVariableName": [
"MediaAggregator.Target.TargetAgent"
],
"JobVariableValue": ["agent2.example.com"]
},
{
"JobVariableName": [
"MediaAggregator.Target.TargetDirectory"
],
"JobVariableValue": ["c:\\tmp\\Here"]
},
{
"JobVariableName": [
"MediaAggregator.Target.PathMappingOptions"
],
"JobVariableValue": ["Job Date/Time"]
},
{
"JobVariableName": [
"MediaAggregator.Target.maximumJobDateTimeDirectories"
],
"JobVariableValue": ["10"]
},
{
"JobVariableName": [
"MediaAggregator.Target.RemoveTargetFiles"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaAggregator.Target.removeExpiredDirectoriesonTarget"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaAggregator.Target.expirationPeriod"
],
"JobVariableValue": ["30"]
},
{
"JobVariableName": [
"MediaAggregator.Transport._sp_udp"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaAggregator.Transport.UseWANAccelerator"
],
"JobVariableValue": ["yes"]
},
{
"JobVariableName": [
"MediaAggregator.Transport.wANAcceleratorAggressiveness"
],
"JobVariableValue": ["medium"]
},
{
"JobVariableName": [
"MediaAggregator.Transport.BandwidthCeiling"
],
"JobVariableValue": ["1250000"]
},
{
"JobVariableName": [
"MediaAggregator.Transport.BandwidthFloor"
],
"JobVariableValue": ["250000"]
},
{
"JobVariableName": [
"MediaAggregator.Transport.BandwidthThrottleByTimeOfDay"
],
"JobVariableValue": ["09:00;23:00;YYYYYYY;625000;"]
},
{
"JobVariableName": [
"MediaAggregator.Options._sp_encryption"
],
"JobVariableValue": ["off"]
},
{
"JobVariableName": [
"MediaAggregator.Options.deliveryMode"
],
"JobVariableValue": ["unsigned"]
},
{
"JobVariableName": [
"MediaAggregator.Options.CompressFiles"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaAggregator.Options.followSymbolicLinks"
],
"JobVariableValue": ["yes"]
},
{
"JobVariableName": [
"MediaAggregator.Options.IncrementalTransfer"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaAggregator.Options.verifyforsufficientdiskspacebeforeJobtransfersstart"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaAggregator.Options.verifytargetdirectoryexists"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaAggregator.NotificationAndLogging.EmailCondition"
],
"JobVariableValue": ["Always"]
},
{
"JobVariableName": [
"MediaAggregator.NotificationAndLogging.EmailTo"
],
"JobVariableValue": ["user@example.com"]
},
{
"JobVariableName": [
"MediaAggregator.NotificationAndLogging.EmailCc"
],
"JobVariableValue": ["user2@example.com"]
},
{
"JobVariableName": [
"MediaAggregator.NotificationAndLogging.EmailBcc"
],
"JobVariableValue": ["user3@example.com"]
},
{
"JobVariableName": [
"MediaAggregator.NotificationAndLogging.emailJobFailureReportTo"
],
"JobVariableValue": ["user@example.com"]
},
{
"JobVariableName": [
"MediaAggregator.NotificationAndLogging._sp_log_severity"
],
"JobVariableValue": ["2"]
},
{
"JobVariableName": [
"MediaAggregator.sNMPProperties.sNMPTrapReceivers"
],
"JobVariableValue": ["192.168.1.205"]
},
{
"JobVariableName": [
"MediaAggregator.sNMPProperties.sNMPTrapCommunityString"
],
"JobVariableValue": ["cString"]
},
{
"JobVariableName": [
"MediaAggregator.sNMPProperties.sNMPTrapTypes"
],
"JobVariableValue": ["Success,Failure"]
},
{
"JobVariableName": [
"MediaAggregator.Schedule._sp_frequency"
],
"JobVariableValue": ["Once"]
},
{
"JobVariableName": [
"MediaAggregator.Schedule._sp_start_at"
],
"JobVariableValue": ["2020/08/18 10:00:00"]
},
{
"JobVariableName": [
"MediaAggregator.Schedule.timezone"
],
"JobVariableValue": ["America/New_York"]
},
{
"JobVariableName": [
"MediaAggregator.Schedule._sp_interrupt_on_failure"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaAggregator.Schedule.priority"
],
"JobVariableValue": ["2"]
},
{
"JobVariableName": [
"MediaAggregator.Schedule.finishBefore"
],
"JobVariableValue": ["2020/08/27 10:00:00"]
}
]
}
]
}
]
}
]
}
]
}
}
MediaDistributor Prompts
The following sections provide the prompt names, description, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaDistributor).
Source Specification
The following list provides Source Specification prompt details:
Source Agents
- Description: The agent(s) from which you are transferring data. This is a mandatory prompt.
- REST/SOAP Variable Value: Hostname of any agent or alias in the system.
- JSON Variable Name: MediaDistributor.Source.SourceAgent
Source Data
-
Description: The source folder used for the files to be transferred. This is a mandatory prompt. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. The source folder specified may be in the following format:
-
Windows root drives, e.g., C:\ApplicationData
-
UNIX root drives, e.g., /home
-
Windows UNC path names, e.g., \machine1\applicationdata
Leaving the Source Data prompt empty will use the agent's default folder.
- REST/SOAP Variable Value:
<siglist type="filedir">
<el v="c:\Temp" t="d"></el>
<el v="e:\dist\source\test.txt" t="f"></el>
</siglist>
The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
- JSON Variable Name: MediaDistributor.Source.SourceData
Include File Patterns
- Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names/types. For example, if you type _.doc, _.ppt, in the prompt, the transfer includes files with these extensions.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: MediaDistributor.Source.IncludeFiles
Exclude File Patterns
- Description: Allows users to specify which files are excluded from transfer. Use a comma to separate multiple filters. If the source directory for this jobs is also being used as the target directory for another job, you should add #workfile# and #chkptfile#.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: MediaDistributor.Source.ExcludeFiles
Exclude Subdirectories
- Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
- REST/SOAP Variable Value: None, All or Specified
- JSON Variable Name: MediaDistributor.Source.ExcludeSubdirectories
Subdirectories to Exclude
- Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior is now to anchor the exclude folder path.
For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)
If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.
To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:
*
(matches zero or more characters)
?
(matches any single character)
[...]
(matches any one of the enclosed characters - for example, [ch] would match the characters c
or h
)
A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.
- REST/SOAP Variable Value: Comma separated list
- JSON Variable Name: MediaDistributor.Source.ExcludeSubDirList
File Readiness Check Type
-
Description: Specify the kind of check type an agent uses to determine if a file is ready to be transferred (i.e., the file is not in use). For some configurations, you may or may not wish to select the file readiness check option:
-
For Windows agents and local Windows file systems, there is no need to use the file readiness check, because the core file in use· behavior is sufficient.
-
For Windows agent and NAS Windows file system, as long as the NAS file system properly supports file locking for in-use files, the readiness check is unnecessary. However, it is still available in case the NAS file system does not properly support file locking.
-
For non-Windows agents of any kind (Linux, UNIX, MacOS). If the local or network file system supports file locking, the readiness check is not required. Determine this on a case-by-case basis.
-
REST/SOAP Variable Value: Choose one of the following:
- None: files that are in use are skipped by default.
- Consecutive Seek (recommended): reads the last few bytes at the end of the file, waits for delay period number of seconds and checks again. If the last few bytes match in both cases the file is sent. Very useful on large files where the MD5 option would simply take too long.
- MD5 Hash: use an MD5 hash to compute a hash on all files under the drop-box folder. After the wait time specified in the Readiness Check Delay prompt, the hashes are recomputed. Only files with identical hashes are transferred. Note that job initialization may take a great deal of time if large files are present.
- Date/Time & Size: use a difference in date/time or size on the file to compare its readiness. Only files that have identical date/time & size are transferred.
-
JSON Variable Name: MediaDistributor.Source.FileReadinessCheckType
Readiness Check Delay
- Description: The amount of time (in seconds) to pause between the two phases of the specified file readiness check type (
MD5 Hash
,Consecutive Seek
, orDate/Time & Size
) for an open file. The file is transferred only if the results of the two checks are identical. If a large number of files are being checked, a value of 0 seconds may be sufficient, since there will likely be sufficient time between the first and second checks of a given file to determine if its content has changed without inserting an additional delay. The default value is 10 seconds. - REST/SOAP Variable Value: Any number between 0 and 300 with a step of 5. For example: 5, 10, 15.
- JSON Variable Name: MediaDistributor.Source.FileReadinessCheckDelay
Source Deletions After Successful Transfer
-
Description: Specifies removal of files or folders from the Drop Box Folder after a successful transfer. The options are:
- None: do not delete any source files or empty folders. (none)
- Transferred Files: remove the files. (xfrdfiles)
- Empty Folders: remove folders that are left over after the source files have been removed. (emptydirs)
- Transferred Files and Empty Directories: remove both transferred files and empty folders. (xfrdfiles_and_emptydirs)
- Transferred Files and Directories: remove both transferred files and all folders immediately after transfer. (xfrdfiles_and_dirs)
There are certain requirements with the empty folders options: the folders must contain no files (they may contain other empty folders that will be removed as well). The folder cannot have been modified within the previous 5 minutes; if it has, it will not be removed.
- REST/SOAP Variable Value: none, xfrdfiles, emptydirs, xfrdfiles_and_emptydirs or xfrdfiles_and_dirs
- JSON Variable Name: MediaDistributor.Source.sourceDeletionsAfterSuccessfulTransfer
Source Directories to Exclude from Deletion Scan
- Description: Allows you to specify a comma-separated list of directories that you do not want to delete.
- REST/SOAP Variable Value: Comma-separated list of directories.
- JSON Variable Name: MediaDistributor.Source.sourceDirectoriestoExcludefromDeletionScan
Skip Source File Not Found On Send
- Description: Allows you to skip files that are not found during a transfer. This is a mandatory prompt. The default value is Yes.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Source.skipSourceFileNotFoundOnSend
Destination Specification
The following list details the Destination Specification prompts:
Target Agents
- Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
- REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
- JSON Variable Name: MediaDistributor.Target.TargetAgents
TargetDirectory
- Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example: Windows root drives, C:\ApplicationData, UNIX root drive, /home or Windows UNC path names, \machine1\applicationdata.
- REST/SOAP Variable Value: Any valid path, for example c:\Temp (Windows) or /usr/tmp (Unix).
- JSON Variable Name: MediaDistributor.Target.TargetDirectory
Directory Mapping Options
- Description: Only applicable if items are added to the TargetDirectory path during the transfer (for example, Source Host or Job Date/Time). If this attribute or TargetDirectory are not selected, all files are put into a single parent folder. Files can be separated in directories named by source agent or date/time or both by selecting the appropriate control.
- REST/SOAP Variable Value: Source Host or Job Date/Time
- JSON Variable Name: MediaDistributor.Target.PathMappingOptions
Maximum Job Date-Time Directories
- Description: If the Directory Mapping Option
Job Date/Time
has been selected, the Maximum Job Date-Time Directories setting determines the maximum number of job date/time folders to be maintained on the target system. For example, with the default value of 10, once more than 10 job date/time folders are created in the target directory, the oldest job date/time directory will be deleted so that a maximum of 10 will exist at any given time. Selectable values range from 1 through 1000 plus a value ofUnlimited
, which instructs the job to never prune the job date/time directories. - REST/SOAP Variable Value: Any number
- JSON Variable Name: MediaDistributor.Target.maximumJobDateTimeDirectories
Remove Expired Files on Target
- Description: Specifies whether files on the destination are deleted when they reach the end of a user-specified expiration period (see Expiration Period (Days), below). Once the files are transferred to the target location, the directory is examined for files that have a modified time greater than the expiry time specified. Files that match the criteria are removed. The expiry time is specified in days. The removal of the expired files is done at Target Initialization.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Target.RemoveTargetFiles
Remove Expired Directories on Target
- Description: Specifies whether directories on the destination are deleted when they reach the end of the user-specified expiration period (see Expiration Period below). Once the files are transferred to the target location, the directory is examined for a modified time greater than the expiry time specified. Directories that match the criteria are removed. The expiry time is specified in days. The removal of the expired folders is done at Target Initialization.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Target.removeExpiredDirectoriesonTarget
Expiration Period
- Description: Specifies the number of days files can exist on the destination before they are removed, if Remove Expired Files on Destination is set to Yes.
- REST/SOAP Variable Value: 1 to 365 (days)
- JSON Variable Name: MediaDistributor.Target.expirationPeriod
Transport Options
The following list provides Transport Options prompt details:
Use UDP Control Channel
- Description: Allows you to specify that job control information will be communicated using UDP instead of TCP. This includes both the communication between the Signiant Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). By default Use UDP Channel is set to No.
This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the GUI is controlled separately as part of agent configuration.
When Use UDP Control Channel is set to Yes
, all file transfers are also forced to utilize UDP WAN acceleration. That is, the Use WAN Accelerator setting is overridden. Thus it is not possible to have job control using TCP and data transfer using UDP.
This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, then it is recommended that Use UDP Control Channel be set to No
.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Transport._sp_udp
Use WAN Accelerator
- Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and will attempt to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.
When running a job with Use WAN Accelerator
set to Yes
, with a low bandwidth ceiling, or flow, or low throughput, the transfer will be switched to TCP. (The cutoff value is 57200 bits/second.)
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Transport.UseWANAccelerator
WAN Accelerator Aggressiveness
- Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
- high: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic.
- medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the bandwidth floor.
- low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
- REST/SOAP Variable Value: high, medium or low
- JSON Variable Name: MediaDistributor.Transport.WANAcceleratorAggressiveness
Bandwidth Ceiling
- Description: The maximum rate at which the source will send the data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.).
0
specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster though - as long as it is set correctly. This is because if the ceiling is set, the transfer immediately starts at that rate, rather than ramping up. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaDistributor.Transport.BandwidthCeiling
Bandwidth Floor
- Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used.
0
specifies auto-detection for the best bandwidth rate. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaDistributor.Transport.BandwidthFloor
Bandwidth Throttle by Time of Day (in GMT time)
- Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.
For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon (+
) to add more bandwidth throttles, or the x
to delete a throttle.
Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps) Where:
You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.
-
HH:MM is a time value, first value is start, second is stop
-
SMTWTFS are the days in the week, the values for this part should be Y or N, depending on whether you want to use the control in a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN
-
bps any number
-
JSON Variable Name: MediaDistributor.Transport.BandwidthThrottleByTimeOfDay
Advanced Options
The following list provides Advanced Options prompt details:
Encryption Level
- Description: The encryption level selected will dictate how securely the information is transmitted over the network (note: the file/package is always stored in the original format). Encryption is isolated to the 'on the wire' portion of the transfer only and does not affect what is stored on the file system whatsoever.
Allows specification of the encryption level from the following values:
_ No Encryption - signed: This transfers unencrypted (plain text) data, but includes the SSL protocol's message digest calculation and signing to ensure data stream integrity.
_ No Encryption - unsigned -: This allows the transfer of data, after the initial SSL authentication of the endpoints, to proceed with no encryption, no message digest computation and no signing of the message digests (normally included with the SSL protocol. This mode of operation is only for raw performance, since it makes no guarantee of the integrity of the data stream other than the default one has with a normal network channel. The underlying TCP protocol can guarantee the integrity of messages across each single network hop, but has no facilities for detecting a man-in-the-middle attack.
The Encryption On option uses the following maximum or high encryption level: Cipher=AES256-SHA, Keysize=256/256.
The default value is No Encryption - unsigned. Note that mutual authentication is always used, regardless of the encryption level specified. Encryption is done in-stream
and not on disk prior to sending.
- REST/SOAP Variable Value: high, med, low, none or off
- JSON Variable Name: MediaDistributor.Options._sp_encryption
Delivery Mode
- Description: Specifies the file transfer mode. The options are:
- Fast: Do not create temporary work files. This mode is optimized for speed.
- Normal: Use temporary work files during transfer. Temporary files allow an interrupted transfer to resume from where the interruption occurred. The creation of temporary files adds time to the transfer, but provides resiliency.
- Log File Name: Log file names transferred. Logs are stored on the Manager.
- Certify File Delivery: Create agent certified delivery log of files transferred.
- REST/SOAP Variable Value: Fast, No, Unsigned or Yes
- JSON Variable Name: MediaDistributor.Options.deliveryMode
Compress Files
- Description: If set to Yes, the source agent compresses each file before sending it. The files are uncompressed automatically on the target agent(s). The degree of compression depends on the type of data you are transferring. The following are typical rates of compression for different types of data: Plain text: 70-95%, TIFF images: 20-40% or Binary files: 0-5%. The default value is No. Choose this option if you are running over a low speed WAN link (e.g., less than 3 Mbps). This option is NOT recommended for LAN or high speed links.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Options.CompressFiles
Follow Symbolic Links
- Description: Specifies whether the end target of a symbolic link or the symbolic link itself is transferred to the target. If a symbolic link references a directory and Follow Symbolic Links is enabled, a directory is transferred; otherwise, if Follow Symbolic Links is disabled, the symbolic link itself is transferred. Select Yes to transfer the files or directory contents to which the symbolic links point. Select No to transfer only the symbolic links themselves. This field has a default value of No.
Windows versions prior to Windows 2008 do not support symbolic links, and these agent treat the arrival of a symbolic link at a Windows target as an error, causing the transfer to fail, unless you set the follow symbolic links
option to Yes. When set to Yes, the file to which the symbolic link points is transferred under the name of the symbolic link.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Options.followSymbolicLinks
Incremental Transfer
- Description: If set to Yes, only changed bytes of files will be transferred, not the entire file. Typically used in low bandwidth situations. Choose this if you are running over a low speed WAN link.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Options.IncrementalTransfer
Verify for sufficient disk space before Job transfers start
- Description: Select Yes to check the remote disk space on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Options.verifyforsufficientdiskspacebeforeJobtransfersstart
Verify if target directory exists
- Description: Select Yes to verify that the target directory exists on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Options.verifytargetdirectoryexists
Notifications and Logging
The following list provides Notifications and Logging prompt details:
Email Condition
- Description: The circumstances in which an e-mail is sent. Choose from the following:
- Always: An e-mail is always sent when a job runs.
- Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
- On Transfer: An e-mail is sent only when the transfer occurs.
- Never: No e-mail is sent.
- REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
- JSON Variable Name: MediaDistributor.NotificationAndLogging.EmailCondition
Email To
- Description: The email address of the person who receives the logging report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaDistributor.NotificationAndLogging.EmailTo
Email Cc
- Description: Specifies the email address(es) of recipient(s) of a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaDistributor.NotificationAndLogging.EmailCc
Email Bcc
- Description: Specifies the email address(es) of recipient(s) of a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaDistributor.NotificationAndLogging.EmailCc
Email Job Failure Report To
- Description: The email address of the person of recipient(s) of the failure report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaDistributor.NotificationAndLogging.emailJobFailureReportTo
Log Detail Level
- Description: The type of logging information for this job. Choose from Error, Warn (warning), Info (Information) or Debug. Debug provides the greatest level of detail while Error provides the least. The options are: 0 error, 1 warn, 2 info, or 3 debug. The default value is Info.
- REST/SOAP Variable Value: 0, 1, 2, or 3
- JSON Variable Name: MediaDistributor.NotificationAndLogging._sp_log_severity
SNMP
The following list provides SNMP prompt details:
SNMP Trap Receivers
- Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
- REST/SOAP Variable Value: Any hostname or IP address.
- JSON Variable Name: MediaDistributor.sNMPProperties.sNMPTrapReceivers
SNMP Trap Community String
- Description: The SNMP community string (i.e. password) to be sent in the trap.
- REST/SOAP Variable Value: Any string.
- JSON Variable Name: MediaDistributor.sNMPProperties.sNMPTrapCommunityString
SNMP Trap Types
- Description: The job completion statuses on which to send SNMP traps. The options are: Job Success or Job Failure.
- REST/SOAP Variable Value: Success, Failure or both
- JSON Variable Name: MediaDistributor.sNMPProperties.sNMPTrapTypes
Schedule
The following list provides Schedule prompt details:
Frequency
- Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
- None: use for jobs that run only at irregular, user defined times.
- Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval. Any number, representing
Every X minutes
. - Monthend: run the job once every last day of the month. Any (number)(blankspace)(letter)
4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - Once: run the job only once, when first created. Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing
Every X Y of the month
- REST/SOAP Variable Value: Possible values: None, Any number, representing
Every X minutes
, Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representingEvery X Y of the month
, Any (number)(blankspace)(letter)4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - JSON Variable Name: MediaDistributor.Schedule._sp_frequency
Start Date/Time
- Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
- JSON Variable Name: MediaDistributor.Schedule._sp_start_at
Time Zone
- Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
- REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see Time Zone Values.
- JSON Variable Name: MediaDistributor.Schedule.timezone
Interrupt on Failure
- Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaDistributor.Schedule._sp_interrupt_on_failure
Priority
- Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority.The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
- REST/SOAP Variable Value: 1, 2, 3, 4, 5
- JSON Variable Name: MediaDistributor.Schedule.priority
Finish Before
- Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
- JSON Variable Name: MediaDistributor.Schedule.finishBefore
MediaDistributor JSON Example
The following is an example of the MediaDistributor JSON.
{
"transferJob": {
"resourceID": "61",
"notifyAt": {
"replyTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp",
"faultTo": "http://client-pc.example.com:6545/FIMSResponse/response.jsp"
},
"bmObjects": {
"bmObject": [
{
"bmContents": {
"bmContent": [
{
"bmContentFormats": {
"bmContentFormat": [
{
"bmEssenceLocators": {
"bmEssenceLocator": [
{
"type": "SimpleFileLocatorType",
"file": "file://agent1.example.com/C:/storage/test.zip"
}
]
},
"packageSize": 44947460
}
]
}
}
]
}
}
]
},
"priority": "low",
"profiles": [
{
"transferProfile": [
{
"name": "Transfer Profile",
"description": "Highspeed Transfer Delivery",
"transferAtom": [
{
"destination": "file://agent2.example.com/C:/storage/target"
}
],
"location": [
"https://manager.example.com/template/Media_Mover_Workflows/component/MediaDistributor"
],
"ExtensionGroup": [
{
"SigniantExtensionGroup": [
{
"jobContextParameters": [
{
"jobName": ["FIMS_jobName_061"],
"jobGroup": ["Default"]
}
],
"jobVariables": [
{
"JobVariableName": [
"MediaDistributor.Source.SourceAgent"
],
"JobVariableValue": ["agent1.example.com"]
},
{
"JobVariableName": [
"MediaDistributor.Source.SourceData"
],
"JobVariableValue": ["D:\\Backgrounds"]
},
{
"JobVariableName": [
"MediaDistributor.Source.IncludeFiles"
],
"JobVariableValue": ["*"]
},
{
"JobVariableName": [
"MediaDistributor.Source.ExcludeFiles"
],
"JobVariableValue": ["zimg*"]
},
{
"JobVariableName": [
"MediaDistributor.Source.ExcludeSubdirectories"
],
"JobVariableValue": ["None"]
},
{
"JobVariableName": [
"MediaDistributor.Source.ExcludeSubDirList"
],
"JobVariableValue": ["excludeMe"]
},
{
"JobVariableName": [
"MediaDistributor.Source.FileReadinessCheckType"
],
"JobVariableValue": ["Date/Time & Size"]
},
{
"JobVariableName": [
"MediaDistributor.Source.FileReadinessCheckDelay"
],
"JobVariableValue": ["10"]
},
{
"JobVariableName": [
"MediaDistributor.Source.sourceDeletionsAfterSuccessfulTransfer"
],
"JobVariableValue": ["emptydirs"]
},
{
"JobVariableName": [
"MediaDistributor.Source.sourceDirectoriestoExcludefromDeletionScan"
],
"JobVariableValue": ["notToBeDeleted"]
},
{
"JobVariableName": [
"MediaDistributor.Source.skipSourceFileNotFoundOnSend"
],
"JobVariableValue": ["yes"]
},
{
"JobVariableName": [
"MediaDistributor.Target.TargetAgents"
],
"JobVariableValue": ["agent2.example.com"]
},
{
"JobVariableName": [
"MediaDistributor.Target.TargetDirectory"
],
"JobVariableValue": ["c:\\tmp\\Here"]
},
{
"JobVariableName": [
"MediaDistributor.Target.PathMappingOptions"
],
"JobVariableValue": ["Job Date/Time"]
},
{
"JobVariableName": [
"MediaDistributor.Target.maximumJobDateTimeDirectories"
],
"JobVariableValue": ["10"]
},
{
"JobVariableName": [
"MediaDistributor.Target.RemoveTargetFiles"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaDistributor.Target.removeExpiredDirectoriesonTarget"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaDistributor.Target.expirationPeriod"
],
"JobVariableValue": ["30"]
},
{
"JobVariableName": [
"MediaDistributor.Transport._sp_udp"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaDistributor.Transport.UseWANAccelerator"
],
"JobVariableValue": ["yes"]
},
{
"JobVariableName": [
"MediaDistributor.Transport.wANAcceleratorAggressiveness"
],
"JobVariableValue": ["medium"]
},
{
"JobVariableName": [
"MediaDistributor.Transport.BandwidthCeiling"
],
"JobVariableValue": ["1250000"]
},
{
"JobVariableName": [
"MediaDistributor.Transport.BandwidthFloor"
],
"JobVariableValue": ["250000"]
},
{
"JobVariableName": [
"MediaDistributor.Transport.BandwidthThrottleByTimeOfDay"
],
"JobVariableValue": ["09:00;23:00;YYYYYYY;625000;"]
},
{
"JobVariableName": [
"MediaDistributor.Options._sp_encryption"
],
"JobVariableValue": ["off"]
},
{
"JobVariableName": [
"MediaDistributor.Options.deliveryMode"
],
"JobVariableValue": ["unsigned"]
},
{
"JobVariableName": [
"MediaDistributor.Options.CompressFiles"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaDistributor.Options.followSymbolicLinks"
],
"JobVariableValue": ["yes"]
},
{
"JobVariableName": [
"MediaDistributor.Options.IncrementalTransfer"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaDistributor.Options.verifyforsufficientdiskspacebeforeJobtransfersstart"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaDistributor.Options.verifytargetdirectoryexists"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaDistributor.NotificationAndLogging.EmailCondition"
],
"JobVariableValue": ["Always"]
},
{
"JobVariableName": [
"MediaDistributor.NotificationAndLogging.EmailTo"
],
"JobVariableValue": ["user@example.com"]
},
{
"JobVariableName": [
"MediaDistributor.NotificationAndLogging.EmailCc"
],
"JobVariableValue": ["user1@example.com"]
},
{
"JobVariableName": [
"MediaDistributor.NotificationAndLogging.EmailBcc"
],
"JobVariableValue": ["user2@example.com"]
},
{
"JobVariableName": [
"MediaDistributor.NotificationAndLogging.emailJobFailureReportTo"
],
"JobVariableValue": ["user@example.com"]
},
{
"JobVariableName": [
"MediaDistributor.NotificationAndLogging._sp_log_severity"
],
"JobVariableValue": ["2"]
},
{
"JobVariableName": [
"MediaDistributor.sNMPProperties.sNMPTrapReceivers"
],
"JobVariableValue": ["192.168.1.205"]
},
{
"JobVariableName": [
"MediaDistributor.sNMPProperties.sNMPTrapCommunityString"
],
"JobVariableValue": ["cString"]
},
{
"JobVariableName": [
"MediaDistributor.sNMPProperties.sNMPTrapTypes"
],
"JobVariableValue": ["Success,Failure"]
},
{
"JobVariableName": [
"MediaDistributor.Schedule._sp_frequency"
],
"JobVariableValue": ["Once"]
},
{
"JobVariableName": [
"MediaDistributor.Schedule._sp_start_at"
],
"JobVariableValue": ["2020/08/18 10:00:00"]
},
{
"JobVariableName": [
"MediaDistributor.Schedule.timezone"
],
"JobVariableValue": ["America/New_York"]
},
{
"JobVariableName": [
"MediaDistributor.Schedule._sp_interrupt_on_failure"
],
"JobVariableValue": ["no"]
},
{
"JobVariableName": [
"MediaDistributor.Schedule.priority"
],
"JobVariableValue": ["2"]
},
{
"JobVariableName": [
"MediaDistributor.Schedule.finishBefore"
],
"JobVariableValue": ["2020/08/27 10:00:00"]
}
]
}
]
}
]
}
]
}
]
}
}
MediaReplicator Prompts
The following sections provide the prompt names, description, REST/SOAP variable values and JSON variable names that you need to understand and use when developing your FIMS client to work with Media Mover (MediaReplicator).
Source Specification
The following list provides Source Specification prompt details:
Source Agents
- Description: The agent(s) from which you are transferring data. This is a mandatory prompt.
- REST/SOAP Variable Value: Hostname of any agent or alias in the system.
- JSON Variable Name: MediaReplicator.Source.SourceAgent
Source Data
-
Description: The source folder used for the files to be transferred. This is a mandatory prompt. Type the folder name in the prompt, or click the computer icon to browse and select an agent folder. The source folder specified may be in the following format:
-
Windows root drives, e.g., C:\ApplicationData
-
UNIX root drives, e.g., /home
-
Windows UNC path names, e.g., \machine1\applicationdata
Leaving the Source Data prompt empty will use the agent's default folder.
- REST/SOAP Variable Value:
<siglist type="filedir">
<el v="c:\Temp` t="d`></el>
<el v="e:\dist\source\test.txt" t="f"></el>
</siglist>
The XML should have this format, the el v attribute should contain the full path to the file or folder, and the el t attribute should contain the type of the entry (f for file, d for directory).
- JSON Variable Name: MediaReplicator.Source.SourceData
Include File Patterns
- Description: Allows users to specify which files are transferred by filtering on the names to include. Use a comma to separate multiple filters. By default, an asterisk appears in the prompt, to include all file names/types. For example, if you type _.doc, _.ppt, in the prompt, the transfer wills include files with these extensions.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: MediaReplicator.Source.IncludeFiles
Exclude File Patterns
- Description: Allows users to specify which files are excluded from transfer. Use a comma to separate multiple filters. If the source directory for this jobs is also being used as the target directory for another job, you should add #workfile# and #chkptfile#.
- REST/SOAP Variable Value: Any string that represents filtering. For example,
*.doc
,*.png
,file*.*
,*file*.txt
. - JSON Variable Name: MediaReplicator.Source.ExcludeFiles
Exclude Subdirectories
- Description: Allows you to control how subfolders are excluded. The options are: None (all subfolders will be transferred), All (no subfolders will be transferred), Specified (a list of subfolders to exclude - type the subfolder names in the Subdirectories to Exclude prompt).
- REST/SOAP Variable Value: None, All or Specified
- JSON Variable Name: MediaReplicator.Source.ExcludeSubdirectories
Subdirectories to Exclude
- Description: Subfolders can be excluded by specifying them in this prompt. Multiple entries must be separated with a comma. When the job runs, all folders that match those specified in the Subdirectories to Exclude prompt are excluded. Typical behavior is to exclude subfolders that match this prompt regardless of where they appear in the folder path. When you use the anchoring expression (@) the behavior is now to anchor the exclude folder path.
For example, if you specify a source folder of C:\data\docs, and an exclude folder of temp, any subfolders called temp are excluded, including those nested within another subfolder. (For example the subfolder C:\data\docs\publish\release\temp is excluded as well.)
If you who want to exclude a folder only at a certain level, use the @ symbol to anchor the exclude folder path at the starting source folder level. For example, specifying @temp in the above example means that the C:\data\docs\temp folder is excluded, but the C:\data\docs\publish\release\temp folder is included.
To exclude C:\data\docs\publish\release\ but have a source folder path of C:\data\docs, the user needs to type C:\data\docs in the Base Folder prompt and @publish\release\temp in the Subdirectories to Exclude prompt. Special characters allow you to make use of pattern matching on the folder path. To match special characters literally, you must escape special characters. Characters include the following:
*
(matches zero or more characters)
?
(matches any single character)
[...]
(matches any one of the enclosed characters - for example, [ch] would match the characters c
or h
)
A pair of digit, lowercase or uppercase characters separated by a hyphen '-' denotes a range set and matches any character sorted in the range. If the first character following the '[' is '^' or '!', then any character not enclosed is matched. Use commas to specify multiple distinct patterns.
- REST/SOAP Variable Value: Comma separated list
- JSON Variable Name: MediaReplicator.Source.ExcludeSubDirList
Skip Source File Not Found On Send
- Description: Allows you to skip files that are not found during a transfer. The default value is Yes. This is a mandatory prompt.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaReplicator.Source.skipSourceFileNotFoundOnSend
Destination Specification
The following list details the Destination Specification prompts:
Target Agents
- Description: The agent(s) to which you are transferring the files. This is a mandatory prompt.
- REST/SOAP Variable Value: Any agent or alias in the system, represented by its hostname.
- JSON Variable Name: MediaReplicator.Target.TargetAgents
TargetDirectory
- Description: Specifies the folder in which to store the data from the source agents. This prompt defaults to the 'default folder' as configured on the agent. If the folder does not exist it is created. For example: Windows root drives, C:\ApplicationData, UNIX root drive, /home or Windows UNC path names, \machine1\applicationdata.
- REST/SOAP Variable Value: Any valid path, for example c:\Temp (Windows) or /usr/tmp (Unix).
- JSON Variable Name: MediaReplicator.Target.TargetDirectory
Transport Options
The following list provides Transport Options prompt details:
Use UDP Control Channel
- Description: Allows you to specify that job control information will be communicated using UDP instead of TCP. This includes both the communication between the Signiant Manager and the controlling agent, and the communication between the controlling agent and the slave agent(s). By default Use UDP Channel is set to No.
This setting applies to all Manager/agent job control communication across the entire job. UDP versus TCP communication for agent administration via the GUI is controlled separately as part of agent configuration.
When Use UDP Control Channel is set to Yes
, all file transfers are also forced to utilize UDP WAN acceleration. That is, the Use WAN Accelerator setting is overridden. Thus it is not possible to have job control using TCP and data transfer using UDP.
This functionality is intended to be used for firewall traversal when the TCP port cannot be opened. If this is not a requirement, then it is recommended that Use UDP Control Channel
be set to No
.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaReplicator.Transport._sp_udp
Use WAN Accelerator
- Description: Selecting Yes means that when the job runs, it will use UDP as the underlying transport, and will attempt to use all available bandwidth up to the user-specified bandwidth maximum. This configuration can result in a faster transfer rate than if it is not selected. The Use WAN Accelerator option should be used on high latency high bandwidth networks where throughput is a top priority.
When running a job with Use WAN Accelerator set to Yes, with a low bandwidth ceiling, or flow, or low throughput, the transfer will be switched to TCP. (The cutoff value is 57200 bits/second.)
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaReplicator.Transport.UseWANAccelerator
WAN Accelerator Aggressiveness
-
Description: Indicates how sensitive the job is to other network traffic when it is running. Choose one of the following:
- High: The agent always attempts to send data at the Bandwidth Ceiling rate and not share with other network traffic.
- Medium: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent shares the network resources but never falls below the bandwidth floor.
- Low: The agent always attempts to send data at the Bandwidth Ceiling rate, however, if other traffic is detected, the agent drops its transfer rate to the bandwidth floor right away, and slowly attempts to creep back up to the target throughput rate.
-
REST/SOAP Variable Value: high, medium or low
-
JSON Variable Name: MediaReplicator.Transport.WANAcceleratorAggressiveness
Bandwidth Ceiling
- Description: The maximum rate at which the source will send the data on the network. Typically this is the maximum speed of the network (i.e., 100Mbps, 10Mbps, etc.).
0
specifies auto-detection for the best bandwidth rate. Testing has shown that specifying a ceiling is faster though - as long as it is set correctly. This is because if the ceiling is set, the transfer immediately starts at that rate, rather than ramping up. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaReplicator.Transport.BandwidthCeiling
Bandwidth Floor
- Description: The minimum rate at which the data should be sent. If WAN Accelerator Aggressiveness is set to Medium or Low, the Bandwidth Floor value specified here will be used.
0
specifies auto-detection for the best bandwidth rate. - REST/SOAP Variable Value: Any number. This number represents Bps.
- JSON Variable Name: MediaReplicator.Transport.BandwidthFloor
Bandwidth Throttle by Time of Day (in GMT time)
- Description: Allows you to further specify the amount of bandwidth the job uses based on the time of day, with a start and end time, days of the week and the limit (specified in bytes per second to a maximum of whatever the CPU can handle, or a percentage of a selected network connection). Values are set using GMT time.
For example, users could specify that the job uses 50% of a 56 Kbps link between 9:00 and 5:00 Monday through Friday, 75% between 5:00 pm and 6:00 am, and 100% on the weekend. Click the plus icon (+
) to add more bandwidth throttles, or the x
to delete a throttle.
Note that once a job has started, all bandwidth throttles are applied at the times based on the Daylight Savings Time (DST) in effect when the job started. If DST changes while the job is running, bandwidth time of day changes may be off by the time change value (plus or minus an hour) after the time change.
Note: Bandwidth throttles may also be employed by other network devices and policies (e.g., QoS), therefore, a bandwidth throttle (or target maximum) defined here may not be achievable. If you are having difficulty achieving a particular bandwidth target ensure that other policies are not impacting your ability to reach the desired throughput.
- REST/SOAP Variable Value: (HH:MM);(HH:MM);(SMTWTFS);(bps) Where:
You can also specify multiple controls by adding the same value after the first one, for example: 12:00;13:00;YYNNNYY;12500;13:00;14:00;YYNYNNY;1398900;.
-
HH:MM is a time value, first value is start, second is stop
-
SMTWTFS are the days in the week, the values for this part should be Y or N, depending on whether you want to use the control in a given day, eg. if you want to use the controls only on Sunday and Wednesday, the value will be YNNYNNN
-
bps any number
-
JSON Variable Name: MediaReplicator.Transport.BandwidthThrottleByTimeOfDay
Advanced Options
The following list provides Advanced Options prompt details:
Encryption Level
- Description: The encryption level selected dictates how securely the information is transmitted over the network (note: the file/package is always stored in the original format). Encryption is isolated to the 'on the wire' portion of the transfer only and does not affect what is stored on the file system whatsoever.
Allows specification of the encryption level from the following values:
_ No Encryption - signed: This transfers unencrypted (plain text) data, but includes the SSL protocol's message digest calculation and signing to ensure data stream integrity.
_ No Encryption - unsigned: This allows the transfer of data, after the initial SSL authentication of the endpoints, to proceed with no encryption, no message digest computation and no signing of the message digests (normally included with the SSL protocol). This mode of operation is only for raw performance, since it makes no guarantee of the integrity of the data stream other than the default one has with a normal network channel. The underlying TCP protocol can guarantee the integrity of messages across each single network hop, but has no facilities for detecting a man-in-the-middle attack.
The Encryption On option uses the following maximum or high encryption level: Cipher=AES256-SHA, Keysize=256/256
The default value is No Encryption - unsigned. Note that mutual authentication is always used, regardless of the encryption level specified. Encryption is done in-stream
and not on disk prior to sending.
- REST/SOAP Variable Value: high, medium, low, none or off
- JSON Variable Name: MediaReplicator.Options._sp_encryption
Delivery Mode
- Description: Specifies the file transfer mode. The options are:
- Fast: Do not create temporary work files. This mode is optimized for speed.
- Normal: Use temporary work files during transfer. Temporary files allow an interrupted transfer to resume from where the interruption occurred. The creation of temporary files adds time to the transfer, but provides resiliency.
- Log File Name: Log file names transferred. Logs are stored on the Manager.
- Certify File Delivery: Create agent certified delivery log of files transferred.
- REST/SOAP Variable Value: Fast, No, Unsigned or Yes
- JSON Variable Name: MediaReplicator.Options.deliveryMode
Compress Files
- Description: If set to Yes, the source agent compresses each file before sending it. The files are uncompressed automatically on the target agent(s). The degree of compression depends on the type of data you are transferring. The following are typical rates of compression for different types of data: Plain text: 70-95%, TIFF images: 20-40% or Binary files: 0-5%. The default value is No. Choose this option if you are running over a low speed WAN link (e.g., less than 3 Mbps). This option is NOT recommended for LAN or high speed links.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaReplicator.Options.CompressFiles
Follow Symbolic Links
- Description: Specifies whether the end target of a symbolic link or the symbolic link itself is transferred to the target. If a symbolic link references a directory and Follow Symbolic Links is enabled, a directory is transferred; otherwise, if Follow Symbolic Links is disabled, the symbolic link itself is transferred. Select Yes to transfer the files or directory contents to which the symbolic links point. Select No to transfer only the symbolic links themselves. This field has a default value of No.
Windows versions prior to Windows 2008 do not support symbolic links, and these agent treat the arrival of a symbolic link at a Windows target as an error, causing the transfer to fail, unless you set the follow symbolic links option to Yes. When set to Yes, the file to which the symbolic link points is transferred under the name of the symbolic link.
- REST/SOAP Variable Value: Yes or No
- JSON Variable Name: MediaReplicator.Options.followSymbolicLinks
Incremental Transfer
- Description: If set to Yes, only changed bytes of files are transferred, not the entire file. Typically used in low bandwidth situations. Choose this if you are running over a low speed WAN link.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaReplicator.Options.IncrementalTransfer
Synchronize Target with Source
- Description: The Synchronize option enables the agent synchronizing transfer mode which involves a deletion phase on the target agent. If enabled, all content in the target folder matching the source file/folder inclusion criteria, but that did not exist in the source folder, is deleted. For example, if source inclusions is simply * (or blank, which equates to *Â) then all content in the target folder that did not exist in the source will be deleted following the transfer phase. However, if source inclusions is *.txt then only the .txt files in the target folder that did not exist in the source folder will be deleted following the transfer.
Be very careful when enabling the synchronize option due to the fact that it deletes content at the target end. This deleted data is not recoverable via Signiant.
Enabling this option is incompatible with the Follow Symbolic Links option.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaReplicator.Options.synchronizeTargetwithSource
Verify for sufficient disk space before Job transfers start
- Description: Select Yes to check the remote disk space on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to insufficient disk space.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaReplicator.Options.verifyforsufficientdiskspacebeforeJobtransfersstart
Verify if target directory exists
- Description: Select Yes to verify that the target directory exists on the target agent before the Job transfer starts. This ensures that the transfer is not aborted due to a nonexistent directory.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaReplicator.Options.verifytargetdirectoryexists
Notifications and Logging
The following list provides Notifications and Logging prompt details:
Email Condition
- Description: The circumstances in which an e-mail is sent. Choose from the following:
- Always: An e-mail is always sent when a job runs.
- Always Exclude Empty Transfers: An e-mail is sent only for complete transfers.
- On Transfer: An e-mail is sent only when the transfer occurs.
- Never: No e-mail is sent.
- REST/SOAP Variable Value: Always, Always Exclude Empty Transfers, On Transfer or Never
- JSON Variable Name: MediaReplicator.NotificationAndLogging.EmailCondition
Email To
- Description: The email address of the person who receives the logging report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaReplicator.NotificationAndLogging.EmailTo
Email Cc
- Description: Specifies the email address(es) of recipient(s) of a carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaReplicator.NotificationAndLogging.EmailCc
Email Bcc
- Description: Specifies the email address(es) of recipient(s) of a blind carbon copy email notification message when the job runs. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaReplicator.NotificationAndLogging.EmailBcc
Email Job Failure Report To
- Description: The email address of the person who receives the failure report. Separate multiple addresses with a comma.
- REST/SOAP Variable Value: Any email address or addresses separated with commas.
- JSON Variable Name: MediaReplicator.NotificationAndLogging.emailJobFailureReportTo
Log Detail Level
- Description: The type of logging information for this job. Choose from 0 error, 1 warn, 2 info, or 3 debug. Debug provides the greatest level of detail while Error provides the least. The default value is Info.
- REST/SOAP Variable Value: 0, 1, 2, or 3
- JSON Variable Name: MediaReplicator.NotificationAndLogging._sp_log_severity
SNMP
The following list provides SNMP prompt details:
SNMP Trap Receivers
- Description: The list of hostnames and/or IP addresses of systems which are listening for SNMP traps (normally central network management consoles).
- REST/SOAP Variable Value: Any hostname or IP address.
- JSON Variable Name: MediaReplicator.sNMPProperties.sNMPTrapReceivers
SNMP Trap Community String
- Description: The SNMP community string (i.e. password) to be sent in the trap.
- REST/SOAP Variable Value: Any string.
- JSON Variable Name: MediaReplicator.sNMPProperties.sNMPTrapCommunityString
SNMP Trap Types
- Description: The job completion statuses on which to send SNMP traps. The options are: Job Success or Job Failure.
- REST/SOAP Variable Value: Success, Failure or both
- JSON Variable Name: MediaReplicator.sNMPProperties.sNMPTrapTypes
Schedule
The following list provides Schedule prompt details:
Frequency
- Description: Specifies how often the job runs. Note that editing the frequency of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run. The options are:
- None: use for jobs that run only at irregular, user defined times.
- Hourly, Daily, Weekly, Monthly, Yearly: run the job once every selected interval. Any number, representing
Every X minutes
. - Monthend: run the job once every last day of the month. Any (number)(blankspace)(letter)
4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - Once: run the job only once, when first created. Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representing
Every X Y of the month
- REST/SOAP Variable Value: Possible values: None, Any number, representing
Every X minutes
, Any (First,Second,Third,Fourth)(blankspace)(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday) representingEvery X Y of the month
, Any (number)(blankspace)(letter)4 D
, representing: H > Hour(s), D > Day(s), W > Week(s), M > Month(s), Y > Year(s). - JSON Variable Name: MediaReplicator.Schedule._sp_frequency
Start Date/Time
- Description: The date and time at which you want the job to run. Note that editing the start date/time of a job that is currently in a queued state within a queued job group has no effect on the job until the next time the job is run.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss
- JSON Variable Name: MediaReplicator.Schedule._sp_start_at
Time Zone
- Description: Specifies the time zone in which the displayed times are set. For example, if an Eastern Time Zone specifies a 9:00 a.m start time and a time zone of Pacific Standard Time, the job runs at 9:00 a.m Pacific Standard Time. This is a mandatory prompt.
- REST/SOAP Variable Value: Standard time zone values. For example: GMT-01:00. For a complete list of time zones see Time Zone Values.
- JSON Variable Name: MediaReplicator.Schedule.timezone
Interrupt on Failure
- Description: When a component in the workflow fails, the workflow stops and waits for administrator intervention. If the workflow is interrupted and an alarm condition of any kind is defined that applies to that particular job, an alarm is displayed on the Alarms page indicating that the workflow is in an interrupted state.
- REST/SOAP Variable Value: yes or no
- JSON Variable Name: MediaReplicator.Schedule._sp_interrupt_on_failure
Priority
- Description: Specifies the priority of the job. When used in conjunction with a Resource Control, the priority determines the placement of the job within the resource queue. A job with a higher priority is placed before a job with a lower priority. The options are: 1 (low), 2 (medium), 3 (high), 4 (urgent), 5 (immediate). The default value is Medium. This is a mandatory prompt.
- REST/SOAP Variable Value: 1, 2, 3, 4, 5
- JSON Variable Name: MediaReplicator.Schedule.priority
Finish Before
- Description: The date and time at which you want the job to be completed. When used in conjunction with a Resource Control, this attribute determines the placement of the job within the resource queue. A job with an earlier Finish Before time is placed before a job with a later Finish Before time.
- REST/SOAP Variable Value: Date and time in the form of YYYY/MM/DD hh:mm:ss.
- JSON Variable Name: MediaReplicator.Schedule.finishBefore
Time Zone Values
The possible REST/SOAP Variable Values for the Time Zone prompt are listed in the following table.
REST/SOAP Value | Time Zone |
---|---|
Etc/GMT+12 | (GMT-12:00) International Date Line West |
Pacific/Apia | (GMT-11:00) Midway Island, Samoa |
Pacific/Honolulu | (GMT-10:00) Hawaii |
America/Anchorage | (GMT-09:00) Alaska |
America/Los_Angeles | (GMT-08:00) Pacific Time (US & Canada); Tijuana |
America/Phoenix | (GMT-07:00) Arizona |
America/Denver | (GMT-07:00) Mountain Time (US & Canada) |
America/Chihuahua | (GMT-07:00) Chihuahua, La Paz, Mazatlan |
America/Managua | (GMT-06:00) Central America |
America/Regina | (GMT-06:00) Saskatchewan |
America/Mexico_City | (GMT-06:00) Guadalajara, Mexico City, Monterrey |
America/Chicago | (GMT-06:00) Central Time (US & Canada) |
America/Indianapolis | (GMT-05:00) Indiana (East) |
America/Bogota | (GMT-05:00) Bogota, Lima, Quito |
America/New_York | (GMT-05:00) Eastern Time (US & Canada) |
America/Caracas | (GMT-04:00) Caracas, La Paz |
America/Santiago | (GMT-04:00) Santiago |
America/Halifax | (GMT-04:00) Atlantic Time (Canada) |
America/St_Johns | (GMT-03:30) Newfoundland |
America/Buenos_Aires | (GMT-03:00) Buenos Aires, Georgetown |
America/Godthab | (GMT-03:00) Greenland |
America/Sao_Paulo | (GMT-03:00) Brasilia |
America/Noronha | (GMT-02:00) Mid-Atlantic |
Atlantic/Cape_Verde | (GMT-01:00) Cape Verde Is |
Atlantic/Azores | (GMT-01:00) Azores |
Africa/Casablanca | (GMT) Casablanca, Monrovia |
Europe/London | (GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London |
Africa/Lagos | (GMT+01:00) West Central Africa |
Europe/Berlin | (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna |
Europe/Paris | (GMT+01:00) Brussels, Copenhagen, Madrid, Paris |
Europe/Sarajevo | (GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb |
Africa/Nairobi | (GMT+03:00) Nairobi |
Asia/Riyadh | (GMT+03:00) Kuwait, Riyadh |
Europe/Moscow | (GMT+03:00) Moscow, St. Petersburg, Volgograd |
Asia/Baghdad | (GMT+03:00) Baghdad |
Asia/Tehran | (GMT+03:30) Tehran |
Asia/Muscat | (GMT+04:00) Abu Dhabi, Muscat |
Asia/Tbilisi | (GMT+04:00) Baku, Tbilisi, Yerevan |
Asia/Kabul | (GMT+04:30) Kabul |
Asia/Karachi | (GMT+05:00) Islamabad, Karachi, Tashkent |
Asia/Yekaterinburg | (GMT+05:00) Ekaterinburg |
Asia/Calcutta | (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi |
Asia/Katmandu | (GMT+05:45) Kathmandu |
Asia/Colombo | (GMT+06:00) Sri Jayawardenepura |
Asia/Dhaka | (GMT+06:00) Astana, Dhaka |
Asia/Novosibirsk | (GMT+06:00) Almaty, Novosibirsk |
Asia/Rangoon | (GMT+06:30) Rangoon |
Asia/Bangkok | (GMT+07:00) Bangkok, Hanoi, Jakarta |
Asia/Krasnoyarsk | (GMT+07:00) Krasnoyarsk |
Australia/Perth | (GMT+08:00) Perth |
Asia/Taipei | (GMT+08:00) Taipei |
Asia/Singapore | (GMT+08:00) Kuala Lumpur, Singapore |
Asia/Hong_Kong | (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi |
Asia/Irkutsk | (GMT+08:00) Irkutsk, Ulaan Bataar |
Asia/Tokyo | (GMT+09:00) Osaka, Sapporo, Tokyo |
Asia/Seoul | (GMT+09:00) Seoul |
Asia/Yakutsk | (GMT+09:00) Yakutsk |
Australia/Darwin | (GMT+09:30) Darwin |
Australia/Adelaide | (GMT+09:30) Adelaide |
Pacific/Guam | (GMT+10:00) Guam, Port Moresby |
Australia/Brisbane | (GMT+10:00) Brisbane |
Asia/Vladivostok | (GMT+10:00) Vladivostok |
Australia/Hobart | (GMT+10:00) Hobart |
Australia/Sydney | (GMT+10:00) Canberra, Melbourne, Sydney |
Asia/Magadan | (GMT+11:00) Magadan, Solomon Is., New Caledonia |
Pacific/Fiji | (GMT+12:00) Fiji, Kamchatka, Marshall Is |
Pacific/Auckland | (GMT+12:00) Auckland, Wellington |
Pacific/Tongatapu | (GMT+13:00) Nuku'alofa |