Interfaces

Contents

Interfaces#

The communication between the Yaku service and the custom workflow components (i.e. autopilots) is defined by several interfaces.

The following graphic illustrates the different interfaces:

        flowchart LR
    subgraph c["Yaku Core"]
      direction LR
      appContext[ ]
      subgraph a["Autopilot Context"]
        a1["App"]
      end
      appOutput[ ]
    end
    subgraph ui["Web UI"]
    end
    envVars[ ] -- "<span class='text-turquoise'>Environment<br>Variables" --> c
    qgConfig[ ] -- "<span class='text-blue'>Configuration<br>File" --> c
    runVars[ ] -- "<span class='text-turquoise'>Run<br>Variables" --> c
    appContext -- "<span class='text-turquoise'>Files &<br>Environment<br>Variables" --> a
    a -- "<span class='text-turquoise'>JSON<br>Lines" --> appOutput
    c -- "<span class='text-purple'>QG Result File" --> ui[ ]

    class ui,a,c,a1 mermaid-no-fill
    class envVars,runVars,qgConfig,appContext,appOutput mermaid-hidden
    

The three most important interfaces are:

The Configuration File

This file defines the whole workflow with all checks and autopilots. As new features are added to Yaku, the file format might change. The latest format of the main config file, the qg-config.yaml file, is explained in the chapter The QG config file.

The JSON Lines interface

This interface is used for outputs of an autopilot. The console output of an autopilot is parsed by Yaku Core. Yaku Core will then evaluate the status and the results of the autopilot. See the page on Autopilot Output as JSON Lines for more details.

The QG Result File

This is a YAML file that contains all results from all checks in one single file. This file is used internally for displaying the run results in the user interface, or for converting the results into an HTML report. If you want to evaluate a workflow’s result in some other context, e.g. in a CI/CD pipeline, you can access all necessary information from this file. You can find more information on the format of the result file in the chapter Result File Schema.

Furthermore, there are environment variables or configuration files which provide the inputs for the autopilots. You can read more about environment variables in the chapter on Environment Variables.

Subsections#