GDPR Compliance Pipeline

GDPR compliance automation pipeline from business analysis perspective

In January, I mentioned that the European Union offers a free GDPR compliance checker. As an business analyst , I analyze how business process automation can streamline compliance requirements analysis.

Small and medium-sized businesses can benefit greatly from using their websites as digital business cards. For example, I enjoy receiving feedback and knowing that people appreciate my posts. Actively tracking website visitors is too time-consuming for me. There are other marketing activities that are more target-oriented.

When the EU introduced laws about cookie banners, I found it daunting to comply. However, I realized it was a chance to rethink my marketing strategies and ensure user privacy. This shift empowered me to understand that I do not have to track every visitor to be successful. This realization has inspired me, and I can do the same for you.

Hugo does not create cookies by default. I will ensure that future updates only create cookies with my permission. Web design is not my main focus. As a hands-on architect, I need to stay updated on the latest techniques. Even open-source software can change key quality features over time, so I will verify cookie compliance after each deployment.

GitHub Actions Job

Since I only write a limited number of posts or articles per quarter, I do not have to consider the execution times.

The GitHub action includes:

  • Installing the latest version of the Website Evidence Collector.
  • Running the tool.
  • Storing the result on GitHub for ten days.
  • Terminate the job if one or more cookies are discovered. The GitHub platform automatically triggers error notifications.

GitHub Job collect-evidence

 1  collect-evidence:
 2    runs-on: ubuntu-latest
 3    needs: deploy.....
 4
 5    steps:
 6      - name: Install jq
 7        run: |
 8          sudo apt-get install jq
 9          sudo wget https://github.com/mikefarah/yq/releases/download/v4.6.1/yq_linux_amd64 -O /usr/bin/yq && sudo chmod +x /usr/bin/yq
10
11      - name: Setup Node.js
12        uses: actions/setup-node@v4
13        with:
14            node-version: '18'
15
16      - name: Install Cypress
17        run: npm install cypress
18
19      - name: Install Website Evidence Collector
20        run: npm install --global https://github.com/EU-EDPS/website-evidence-collector/tarball/latest
21
22      - name: Collect evidence from websites
23        id: collect-eifel42
24        run: |
25          website-evidence-collector -y -q --no-output https://www.eifel42.dev/ > eifel42.yaml
26          yq e -j eifel42.yaml > eifel42.json
27  
28      - name: Upload evidence
29        uses: actions/upload-artifact@v4.3.3
30        with:
31          name: evidence
32          path:  |
33            eifel42.yaml 
34        
35      - name: Check cookies eifel42
36        run: |
37            isEmpty=$(jq '.cookies | length == 0' eifel42.json)
38            if [ "$isEmpty" = "true" ]; then
39              echo "Cookies array is empty"
40            else
41              echo "Cookies array is not empty"
42              exit -1
43            fi

See also