• Stars
    star
    156
  • Rank 239,589 (Top 5 %)
  • Language
    Ruby
  • License
    GNU General Publi...
  • Created about 7 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Programme développé avec le framework RubyOnRails mettant à disposition une API RESTful à destination des outils PIA et PIA-APP. | Program developped with RubyOnRails providing a RESTful API for the PIA and PIA-APP applications.

Le logiciel PIA / The PIA Software

Le logiciel PIA est un outil distribué librement par la CNIL afin de faciliter la réalisation d’analyses d’impact sur la protection des données prévues par le RGPD. PIA-BACK est développé avec le framework RubyOnRails mettant à disposition une API RESTful à destination des outils PIA et PIA-APP.

The PIA software is a free tool published by the CNIL which aims to help data controllers build and demonstrate compliance to the GDPR. PIA-BACK is developped with RubyOnRails providing a RESTful API for the PIA and PIA-APP applications.

Rails tests CodeQL CodeFactor Rails Style Guide Rails Style Guide

Installation

You can follow the wiki for a full installation of PIA (back-end) and PIA (front-end) applications on a ubuntu 20.04 server.

Requirements

System requirements

  • CPU : i5
  • Ram: 4Go
  • Disk Space : 20Go
  • OS : preferably Linux but other OS works as well

PostgreSQL installation

Basic installation on Debian you can use the following documentation: wiki.debian.org/PostgreSql on Ubuntu you can use: help.ubuntu.com/community/PostgreSQL

Also, you need to create a new user with password.

Clone the repository

git clone https://github.com/LINCnil/pia-back.git

Go to the folder pia-back

cd pia-back

Create and fill the file database.yml

cp config/database.example.yml config/database.yml

Fill the fields username and password for each environment with the PostgreSQL username and password created in the step "PostgreSQL installation".

Install all dependencies

bundle install

Create and fill the file .env file

cp .env-example .env

Generate the SECRET_KEY_BASE with bin/rake secret and paste the secret key in the file.

Generate the DEVISE_SECRET_KEY with bin/rake secret and paste the secret key in the file.

Generate the DEVISE_PEPPER with bin/rake secret and paste the secret key in the file.

Fill MAILER_SENDER with the default address email sender

Fill DEFAULT_URL with the URL of your server

If needed, fill DEFAULT_PORT to the PORT you use

Create database

bin/rake db:create

Create tables

bin/rake db:migrate

Enable the authentication mode

configure App

Set ENABLE_AUTHENTICATION=true inside your .env file

Enter the rails console with bin/rails c

Launch the command Doorkeeper::Application.create(name: "PIA", redirect_uri: "urn:ietf:wg:oauth:2.0:oob", scopes: ["read", "write"])

Find your Client ID and Client SECRET by using Doorkeeper::Application.select(:uid, :secret).last.uid and Doorkeeper::Application.select(:uid, :secret).last.secret

See:

image

Use these credentials into your PIA application

Create admin account

Enter the rails console with bin/rails c

Launch the command User.create(email: 'YOUR_EMAIL', password: 'Azeazeaze123-', password_confirmation: 'Azeazeaze123-') (your password should be at least 12 characters long, with numbers and special characters).

Unlock your user with the unlock_access! method

    a = User.last
    a.is_technical_admin = true
    a.is_functional_admin = true
    a.is_user = true
    a.unlock_access!

SMTP configuration

Set up the environment credentials variables using EDITOR='nano' rails credentials:edit :

email_from: [email protected]
smtp_address: xxxx
smtp_port: xxxx
smtp_domain: xxxx
smtp_user_name: xxxx
smtp_password: xxxx
smtp_authentication: :cram_md5
smtp_enable_starttls_auto: true

Enable LDAP MODE (optional)

If you want to use the ldap authentification mode, set DEVISE_LDAP_LOGGER=true inside your .env file.

Set up the environment credentials variables using EDITOR='nano' rails credentials:edit :

ldap_host: [Fill it with the LDAP host]
ldap_port: [Fill it with the LDAP port]
ldap_attribute: [Fill it with the LDAP attribute]
ldap_base: [Fill it with the LDAP base]
ldap_admin_user: [Fill it with the LDAP admin user]
ldap_admin_user_password: [Fill it with admin user password]
ldap_ssl: [true or false]

Configure the default locale for the authentication emails

The PIA tool can send different emails when the authentication module is enabled (new user, new evaluation ready, ...).

The default locale for the content of the authentication emails is English (en).

Define DEFAULT_LOCALE="[locale key]" inside your .env file to change the locale.

For example, if you want to have French translations for the authenication emails, configure DEFAULT_LOCALE="fr" in your .env file.

Supported locales: bg, cs, da, de, el, en, es, et, fi, fr, hr, hu, it, lt, lv, nl, no, pl, pt, ro, sl, sv.

Run the application

  • bin/rails s your server will be accessible with the URL localhost:3000

  • You can specify the option -b to bind to a public IP address or domain name and -p to use a different port.

    For example: bin/rails s -b 123.456.789.101 -p 8080 your server will be accessible with the URL 123.456.789.101:8080

  • Then, in the pia (front-end) application, use this URL to enable the server mode.

  • Fill the field in "Tools" > "Settings"

  • For the authentication mode: every user will have to fill the server URL, the client ID and the client SECRET fields to access the authentication interface.

PIA Settings

Run the application in production mode

  1. Fill the production section in the database.ymlfile.
  2. Create the database: RAILS_ENV=production bin/rake db:create
  3. Create the tables: RAILS_ENV=production bin/rake db:migrate
  4. Run the server: RAILS_ENV=production bin/rails s

How to update to the latest version

Go to the folder pia-back : cd pia-back

Update the repository : git pull

Update the dependencies : bundle install

Update the database : RAILS_ENV=production bin/rake db:migrate

Run the test

bin/rake

Change default locale

Pia back mailer work with rails-i18n. For update default locale, go to change this line in rails configuration:

In config/application.rb

config.i18n.default_locale = :en

Contributions

More Repositories

1

Guide-RGPD-du-developpeur

La CNIL publie un guide RGPD pour les développeurs
HTML
1,065
star
2

GDPR-Developer-Guide

The CNIL publishes a GDPR guide for developers
HTML
323
star
3

pia

Version web front office de l’application PIA à déployer sur un serveur afin d’en donner l’accès via un navigateur web | Front office of the PIA application to be deployed on a server in order to access it through a web browser.
TypeScript
263
star
4

CookieViz

CookieViz est un outil de visualisation qui permet de mesurer l'impact des cookies lors de votre propre navigation.
CSS
184
star
5

pia-app

Exécutable permettant de lancer l’application (front office) PIA sur son ordinateur. C’est une version portable de l’outil PIA. | Executable to launch the PIA application on your computer. It is a stand-alone version of the PIA application.
JavaScript
53
star
6

Cookie-consent_Google-Analytics

Code pour mettre Google Analytics en conformité avec la législation française sur les cookies. Attention toutefois, cette version du code ne fonctionne qu'avec les anciennes versions de Google Analytics.
JavaScript
42
star
7

SigGroup

Démonstrateur de signature de groupes
HTML
18
star
8

dereferencement

Cette extension permet de déterminer si un lien apparaît ou non parmi l’ensemble des résultats d’un moteur de recherche, à la saisie de votre nom.
JavaScript
15
star
9

RGPD

Dataviz Règlement général pour la protection des données
Python
15
star
10

loutre

LOgiciel Unique de TRaitement des Empreintes
Rust
12
star
11

Recommandations-pour-le-teletravail

Recommandations de la CNIL pour le télétravail
HTML
11
star
12

Phrase2passe

Implémentation d'un algorithme permettant de générer un mot de passe fort à partir d'une phrase de passe.
JavaScript
11
star
13

Hally-L-oracle-du-net

Cette extension vous permet de démystifier la magie des algorithmes et de comprendre comment fonctionnent les réseaux sociaux et les moteurs de recherche sur lesquels vous allez tous les jours. Installez-la et laissez l’Oracle vous montrer ce que fait Facebook de vos likes, Twitter de vos retweets et Google de vos requêtes.
JavaScript
10
star
14

mon_assistant_cnil

Le LINC a développé un assistant vocal fonctionnant exclusivement en local, et sans connexion internet.
Java
9
star
15

CNIL-Cookies-List

Cookies List est une extension Firefox permettant de lister les cookies enregistrés dans le navigateur.
JavaScript
5
star
16

Cabanon

CabAnon vise à évaluer les performances de différentes techniques d’anonymisation sous la forme de dataviz interactives. Elles évaluent le « coût » de ces techniques en terme de potentiel d’utilisation de jeux de données anonymisées.
JavaScript
5
star
17

Ads.txt-et-Sellers.json

Code source des deux études sur Ads.txt et Sellers.json, ainsi que des outils utilisés.
JavaScript
3
star
18

scripts-vm-cel

Scripts de génération de la machine virtuelle de référence pour les contrôles en ligne
Shell
3
star
19

cookieviz-extension

Mesure l'impact des cookies sur votre navigateur
JavaScript
2
star
20

encryption_infographics

You can traduce this infographic about "encyption" in your language
2
star
21

pia-i18n

Repository permettant de regrouper et gérer spécifiquement les traductions faites pour l'outil pia
TypeScript
1
star
22

obs-cookies

Code source et méthodologie de l'article https://linc.cnil.fr/obs-cookies
JavaScript
1
star