The PIA software is a free tool published by the CNIL which aims to help data controllers build and demonstrate compliance to the GDPR.
The latest version of the tool can be downloaded in the Release section of this repository.
To translate the software, we invite you to make your changes here where the translation steps are described.
CI runs the application unit tests and Cypress tests on pushes and pull requests.
This project was generated with Angular CLI.
See the package.json file
Angular 22 requires Node.js ^22.22.3, ^24.15.0, or ^26.0.0.
Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.
Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.
Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.
Run yarn test to execute the application unit tests via Karma. For a single headless run, use yarn test --watch=false --browsers=ChromeHeadless.
Running ng test without a project also targets the optional pia-i18n library, whose sources are not included in this repository. If available locally, test it separately with yarn ng test pia-i18n.
Start the application with yarn start, then run yarn cypress run --headless --browser chrome to execute the Cypress end-to-end tests. Use yarn e2e to open the interactive runner.
The server-configuration tests use mocked responses by default. To additionally test a real PIA backend, set CYPRESS_URL, CYPRESS_ID, and CYPRESS_SECRET in the environment before running Cypress.
To get more help on the Angular CLI use ng help or go check out the Angular CLI README.
You must set the ENV variables APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD and APPLE_TEAM_ID inside a .env file at the root of the project.
yarn electron:mac
CSC_LINK=../path_to_your/file.pfx CSC_KEY_PASSWORD="Your PFX file password" yarn electron:win
yarn electron:linux
See: https://www.electron.build/configuration/publish
GH_TOKEN=YOUR_GITHUB_TOKEN yarn electron:publish-to-github
If you need any guidance about the PIA .json file and its structure, check the dedicated documentation here