Body
GoAnywhere is the preferred file transfer application for Oakland University.
File transfers can be done via HTTPS, SFTP, and AS3.
The data being transferred must be approved by the appropriate data steward(s) before a transfer can be set up.
Authentication is done by username/password, SSH cert, or both.
Who is Eligible?
Active Faculty or Staff
End User Requirements
- The source server sending the file to GoAnywhere.
- IP Address
- Protocol by which to send to GoAnywhere (currently must be SFTP only)
- File name.
- For Banner, it must be JobName_OneUpNumber.extension. For other services, like Argos, it must have a distinct title with a timestamp of yyyyMMdd_HH:mm:ss.SSS to ensure uniqueness.
- The destination server GoAnywhere will forward the file to.
- IP Address
- Port
- Protocol
- File naming standards for the receiving service
Banner to GoAnywhere Process Flow
As an example, consider the Curriculog job which runs on the Banner Job server.
Banner Jobs generates a file called szrcurr_123.csv, where szrcurr is the job name on the Banner Jobs server and 123 is the unique job identification number known as the ONE_UP_NUMBER.
Banner Jobs uploads the szrcurr_123.csv to the webdocs directory of the GaRemoteUser_A, using curl. For an example of how this is done, look at the $BANNER_HOME/oakdev/general/misc/gzpgatr.shl script.
A successful upload triggers the RunTriggeredJob project. (This is located at Workflows->Projects->GaJobTrigger)
The trigger runs and passes the name of the uploaded file to the Curriculog project (located at Workflows->Projects->Curriculog->Projects).
The Curriculog project moves the uploaded file to a local workspace and uploads the file to the Curriculog third-party vendor server.
To see how this is used in practice, view the $BANNER_HOME/oakdev/student/misc/szrcurr.shl file, which calls the triggerGoAnywhereJobIfFileExists function to send the file.
All source servers should have their own Web User and Triggered Job controller project on GoAnywhere.
Project Structure
GoAnywhere projects are configured with the recipient party as the directory name. Within that directory is a Projects and Templates directory. There are times when there is only transfer that occurs. But often there are multiple transfers, with the same thing done in each case. An example of this is the eBuilder project. There are six files that are transferred. The Project directory contains the specifics for each extract that is transferred. The Templates directory contains the functionality common to all of the jobs, such as running the query and transferring the file to the eBuilder SFTP server. The projects are broken up this way so that when repetitive functionality occurs, it can be abstracted to one location (the Templates project) instead of being located in multiple locations. This makes it easier to update the common functionality.
The aforementioned project structure is a newer project structure. The older style projects are in the TEST and PROD directories.
Queries from GoAnywhere
Generally, files are created on other servers and transmitted via GoAnywhere to other locations. In some cases, such as eBuilder and EAB, the files are generated on the GoAnywhere server.
The within the projects for the above vendors in the Projects directory, the queries go through a somewhat strange process. The query is in a Print function, that is printed to a file in the workspace. The file is read into a variable, and that is used as the query.
The reason for this is that if the query is put directly into a Variable, returns are removed. This makes it more difficult to read, but it also causes errors if the comment '--' is used within the SQL; the rest of the query is commented out because there are no new lines.
The Print functionality and a variable that reads from a file, retain the new lines.
Process and Structure Rational
Projects are generally uploaded to the GoAnywhere server, and not downloaded from external servers.
The reason for this is that if GoAnywhere downloads a file from another server, that server will need to have an SFTP, HTTPS, etc. server running. For internal Oakland servers in particular, this means additional overhead and security risk. To mitigate that, files are uploaded to the GoAnywhere server as a general rule.
Servers such as Banner Jobs already has an SSH server enabled, but this is still not used in order to be as consistent as possible across all jobs.
Projects must remove the uploaded file from the GaRemoteUser_A webdocs directory
Although there are some exceptions, GoAnywhere is used for file transfer. Leaving files on the server adds additional burdens with regard to security and maintenance. With file transfer, the name of the game is to receive the file and move the file off as quickly as possible.
Additional Support
- OU Technology Center
- 44 Oakland Center
- Rochester, MI 48309-4479
- (248) 370-4357
- Office Hours: M-F 8:00am - 5:00pm