Profiles form the starting points for specifying file transfers, with a Profile being specified each time a command is sent to YADE to start a file transfer operation.
Among the parameters specified within a Profile are the ProtocolFragment(s) to be used - i.e. one or more references specifying predefined connection configurations.
The subject of this page is the basic principles lying behind this two-stage configuration procedure.
Configuration Elements in the YADE Schema
In the XSD Schema used to structure the YADE configuration parameters, the parent of all individual Profile elements, the Profiles element, lies at the top of one of the three main branches in the configuration, alongside the Fragments and General branches. This hierarchy is shown schematically below:
- Profile (profile_id='p1')
- *FragmentRef (attribute = 'f1')
- Profile (profile_id='p2')
- *FragmentRef (attribute = 'f2')
- Profile (profile_id='p3')
- Profile (profile_id='p1')
- FTPFragment (name= 'f1')
- FTPFragment (name= 'f2')
- FTPSFragment (name= 'f3')
The Fragments branch is a further main configuration branch in the schema, containing the ProfileFragments elements that specify in detail how the transfer is to be carried out.
The General branch is used to specify overall aspects of YADE's operation that are not directly related it individual file transfers, such as logging. It is not directly relevant for the purpose of this article and is only mentioned here for completeness.
This two-stage configuration procedure - calling a Profile which contains a reference to a Fragment - allows a flexibility not possible with a single XML hierarchy and, in particular, allows profile fragment elements to be reused.
What is a Profile Element?
A Profile can be seen as a specification of what is to be done and contains hierarchical information about:
- the Operation to be carried out - e.g. Copy or Move,
- the protocols to be used for the source and, if relevant, target, parts of the transfer and
- references that specify ProtocolFragment elements. These in turn define in detail how the file transfer connections are to be made.
Any number of profiles can be specified within a file transfer configuration.
What are ProtocolFragments Elements?
ProtocolFragment elements can be seen as a specification of how the file transfer is to be carried out. Each file transfer Profile contains a reference calling at least one ProtocolFragment.
The ProtocolFragments elements contains hierarchical information about:
- the connection - e.g. the Hostname and Port
- the authentication method - e.g. Account and Password
- whether a proxy is to be used and the connection and authentication
ProtocolFragments are protocol-specific - that is, they apply for a specific protocol. The XSD schema defines which configuration elements can be used for the protocol in question.
For example, the Schema does not allow SSH authentication to be specified for an FTPFragment.
ProtocolFragments can be thought of as a library of pre-configured connections that can be called up as required.
ProtocolFragment elements can be reused - i.e. a ProtocolFragment can be referenced from any number of profiles.
Whilst Profiles form the starting points when running a file transfer command, with the ProtocolFragments then being called from within a Profile Element, the configuration procedure is usually carried out in the reverse order: The necessary ProtocolFragments are configured first, before the Profile elements which call these fragments are specified.
Referencing Profiles and ProtocolFragments
Both Profiles and ProtocolFragments can be seen as predefined file transfer specifications that are called up as required:
All Profile elements require a profile_id attribute which is used to call the profile from the YADE Client.
All ProfileFragments require a name attribute which is used to reference the fragment from an element in the Profile element.
Configuring File Transfers with the XML Editor
We recommend that you use the XML Editor to generate all the parts of your configuration file. The editor effectively functions like a wizard: due to the use of the YADE XSD schema in the editor, you will be effectively guided through the configuration process and end up with a validated configuration that you can implement as required.
The advantage of this approach - which may at first seen somewhat complex - is that:
- fragments can flexibly reused within the otherwise strict XML hierarchy and
- configurations can be validated against an XSD schema. Validation means that the possibility of configuration errors is greatly reduced.
A fragment can be used as both a source or as a target within the one configuration.
Related Sections of this User Manual:
- YADE User Manual - Configuration Formats & Tools
- YADE User Manual - Configuring and Running File Transfers