Skip to content
This repository was archived by the owner on May 12, 2026. It is now read-only.

catalyst/moodle-tool_etl

Repository files navigation

The tool_etl plugin has been deprecated.

It has been replaced by tool_dataflows which is an even more powerful generic engine for visually creating flows and can be used for triggering processes based on events, or cron schedules and is extremely flexible.

https://www.catalyst-au.net/solutions/dataflows-plugin-for-moodle-by-catalyst

It is available as part of the Catalyst Educators Pack:

https://www.catalyst-eu.net/products/moodle-educators-pack

If you are interested please contact us via:

https://www.catalyst-au.net/contact-us





Extract, transform, load (ETL)

ETL is a Moodle admin tool that allows to extract, transform and then load any data from a source system to a target system.

For example it is often used to slightly massage data before using it with Totara HR sync.

Branches

Moodle version Branch PHP
Moodle 3.3 to 3.8 master 7.1 - 7.2+
Moodle 3.9 to 3.10 master 7.2 - 7.4+
Totara 12+ master 5.6 - 7.0+

NOTE: Moodle 3.11 is not supported. This is going to be the end of life version of the plugin.

NOTE: There is a fork of this under the MOODLE_35 branch which moves to a sub plugin architecture, and has various improvements:

https://github.com/catalyst/moodle-tool_etl/tree/MOODLE_35

At some point that branch needs to be untangled and parts of that merged into master with a proper upgrade script. Until then please consider than branch as experimental.

Installation

To install this plugin in your Moodle.

  1. Get the code and copy/install it to: <moodledir>/admin/tool/etl
  2. Run the upgrade using Moodle admin interface or command line, like sudo -u www-data php admin/cli/upgrade.php

Note: the user may be different to www-data on your system.

Configuration

  1. Log into your Moodle site as an administrator.
  2. Navigate to Site administration ► Plugins ► Admin tools ► Extract, transform, load (ETL).
  3. Create a new task: set Source, Target and Processor and configure each element as required. Also set a schedule for the task.
  4. The tasks will be executed on Moodle cron.
  5. You can see a history of any task execution.

Existing elements

Sources

  • FTP - remote FTP server, login using username and password.
  • SFTP - remote SFTP server, login using username and password.
  • SFTP with key authentication - remote SFTP server, login using SSH key.
  • Server folder - server local folder.
  • Database - SQL query to export.
  • URL - remote URL.

Targets

  • Moodle sitedata - a folder inside Moodle sitedata directory.
  • Server folder - server local folder.
  • SFTP with key authentication - remote SFTP server, login using SSH key.

Processors

  • Default processor - doesn't do any transformation, simply pass extracted data from a source to a target.
  • Lowercase processor - transforms csv fields to lowercase

Developer notes

To create a new source, target or processor you'd just need to create a new class and extend a relevant base class and implement related interface. See existing elements as an example.

Crafted by Catalyst IT

This plugin was developed by Catalyst IT Australia:

https://www.catalyst-au.net/

Contributing and Support

Issues, and pull requests using github are welcome and encouraged!

https://github.com/catalyst/moodle-tool_etl/issues

If you would like commercial support or would like to sponsor additional improvements to this plugin please contact us:

https://www.catalyst-au.net/contact-us

About

A general purpose ETL tool

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors