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.