Job Inheritance

Job inheritance is a core concept in Tasxs which you should utilize to create a well structured and easy to maintain setup.

The idea is very simple and is similar to the concept of inheritance found in programming languages: in a job you can add one or more jobs as configuration. You can think of these jobs as the parent-jobs. You job will inherit all parameters of all parent jobs combined. Tasxs uses a depth-first search to determine the value of a parameter.


Uses for Inheritance


The most obvious way to use inheritance is as a template for a number of jobs that are the same except for the values of some parameters. For example when you need to backup 5 database you can create a database backup template and 5 jobs that inherit from that template. In each job, you only need to enter the name of the database to backup. the rest will be pre-configured.

Configuration Variables

Another common use is to define variables for use in many jobs. For example, let's say you have many jobs that need to copy files from/to a fileserver. You can put the path to this fileserver in a configuration-job that is inherited by all your jobs. If at some point in the future you move the files to another location, you just have to modify the central configuration job.

Environment Variables

A more specific use-case for configuration concerns environment-dependent variables. This is especially relevant when you deploy your jobs to more than one environment. For example a Test, QA and a production system. You create a central configuration job that does get copied between environments, usually by putting it in a separate repository, which houses your environment-specific configuration. In each environment, you create this job with different values for the variables. Then, you can freely copy jobs between environments. They will find the correct configuration in each environment.