Configuration
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 .gitignore
file).
#
Configuration FileYou 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:
.github/frictionless.yaml
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:
https://github.com/roll/flat-demo-bitcoin-price/blob/main/.github/frictionless.yaml
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.
#
Inquiry ParameterFrictionless Repository step as a part of Github Workflow accepts only one parameter called inquiry
. Here is an example:
.github/workflows/(name).yaml
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:
.github/frictionless.yaml
#
Validation StrategyYou 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:
#
Single WorkflowThe 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:
.github/workflows/frictionless.yaml
Using this setup you will have a single "Frictionless" badge that you can add to your README.md file.
#
Multiple WorkflowYou 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:
.github/workflows/people.yaml
.github/workflows/animals.yaml
The only missing part in this case is the Configuration File that will tell Frictionless what are these inquiries:
.github/frictionless.yaml
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.
#
Complex WorkflowOn top of dedicated validation workflows, you can integrate Frictionless Repository inside existent workflows. For example, here is a Frictionless-Flat Data integration:
https://github.com/roll/flat-demo-bitcoin-price/blob/main/.github/workflows/flat.yaml
#
Validation TriggersGithub Actions provides a great deal of flexibility regarding on when your workflow will be run. Here is a quick example:
.github/workflows/(name).yaml
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.