Frictionless Repository can work without any additional configuration. It will just validate all the CSV and EXCEL files it can find in your repository (respecting
You can add a
.github/frictionless.yaml file to your Github repository to provide an additional configuration. This file is a mapping in a form of
inquiry name: inquiry descriptor. It's easier to understand using an example:
The inquiry descriptor is a Frictionless Framework's Inquiry so you can use whatever is possible to use for the Frictionless Framework validation. Here is a more complex example:
Note, that we used the
main inquiry name because it's a default inquiry. You can have multiple inquiries in your repository setting the
inquiry parameter in your workflow.
Frictionless Repository step as a part of Github Workflow accepts only one parameter called
inquiry. Here is an example:
By default, the
inquiry parameter is set to
main. So the examples in the previous section will work for any step without the
inquiry parameter or when it's set to
main. When we have, as in our example,
inquiry: extra we need to provide a corresponding configuration:
You can use Frictionless in many ways and this limit is only our imagination. Thanks to composability of Github Actions, it's possible to integrate Frictionless with many other steps and implement complex validation strategies. On the other hand, if you are new to Github Actions we recommend to start from these setups:
The simplest way to use Frictionless Repository is to create a single workflow called
frictionless. This workflow will be responsible of all your data validation and you can have one status badge for the whole project:
Using this setup you will have a single "Frictionless" badge that you can add to your README.md file.
You have a few groups of independent data or interested in more sophisticated logic you might use multiple workflows. For example, consider we have some data related to humans and some to animals:
The only missing part in this case is the Configuration File that will tell Frictionless what are these inquiries:
Don't forget that we use Frictionless Framework's Inquiry that gives us even more flexibility. For example, you can write quite complex tasks logic and combine it with your single or multiple workflows.
On top of dedicated validation workflows, you can integrate Frictionless Repository inside existent workflows. For example, here is a Frictionless-Flat Data integration:
Github Actions provides a great deal of flexibility regarding on when your workflow will be run. Here is a quick example:
This knowledge is related not only to Frictionless Repository but to all Github Actions so we really recommend to read Github Documentaion on this topic.