Skip to content

etalab/data_pass

Repository files navigation

Continuous Deployment Continuous Integration

DataPass

L'outil de gestion des habilitations juridiques pour les données à accès restreint.

Version en ligne: https://sandbox.v2.datapass.api.gouv.fr/

Les comptes disponibles en simili-production (couple email/password sur ProConnect) :

Le lien pour l'instruction: https://sandbox.v2.datapass.api.gouv.fr/instruction

A noter qu'à chaque déploiement la base de données est vidée et re-remplie avec les seeds disponible ici

Requirements

Install

Ask for the sandbox/staging/production master key to a colleague (config/credentials/*.key)

With docker:

make build

Without docker:

./bin/setup
# Optional, for standardjs
npm install standard --global

Development

With docker:

make up

Check Makefile for all commands

Without docker:

./bin/local_run.sh

Then go to http://localhost:3000

For mailer preview: http://localhost:3000/rails/mailers

Avec un sous-domaine référencé

Il est possible de restreindre l'application à un sous-ensemble de type d'habilitation à travers un sous nom de domaine. Cela permet de restreindre les demandeurs à ce sous-ensemble.

Par exemple pour API Entreprise: http://api-entreprise.localtest.me:3000/

Il est possible de bypass le login via ProConnect de cette manière en local : http://api-entreprise.localtest.me:3000/[email protected]

Tests

With docker:

Préparation de la base de données: docker-compose run --rm web bundle exec rails db:create RAILS_ENV=test

Run les tests:

# Unit
make tests
# E2E
make e2e

Without docker:

# Unit
bundle exec rspec
# Unit with coverage
COVERAGE=true bundle exec rspec
# E2E
bundle exec cucumber
# E2Ewith coverage
COVERAGE=true bundle exec cucumber
# E2E in debugging mode
INSPECTOR=true bundle exec cucumber

Static security

Through Brakeman

With docker:

make security

Without docker:

./bin/brakeman

Deploy

./bin/deploy

# For sandbox, branch is optional
./bin/deploy-sandbox branch

Tools for remote server

You have to be added on servers to use these binaries.

Usage: bin/script [ENV]

# `less` on logs
bin/explore-remote-logs
# remote rails console
bin/remote-console
# `tail -f` on logs
bin/stream-remote-logs

Credentials

4 kind:

  1. production, for main app ;
  2. sandbox, for the sandbox ;
  3. staging, for the staging (E2E tests with others apps) ;
  4. development, for development/test.

Documentations

Check this link

Ressources externes