Files
Johan LEROY a646635b4c test: partage un jeu de démonstration et des comptes de test
db/seeds/ était vide, et chaque outil de test semait ses données à la main : un site et deux
relevés dans dast.yml, rien pour le reste.

- db/seeds/demo.sql : trois sites, 72 heures de relevés relatives à now(), une prévision par
  site, quatorze alertes de tous types et sévérités, un rapport de dérive par site. Rejouable.
- scripts/comptes-test.sh : administrateur par la CLI, lecteur et opérateur activés, et un
  compte laissé sur son mot de passe temporaire ; identifiants écrits en JSON (mode 600).
  Fonctionne en natif ou contre la stack Compose (BASE_URL, APP_CLI).
- scripts/dast-token.sh s'appuie désormais dessus ; dast.yml sème demo.sql.
2026-09-23 09:19:29 +02:00

25 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Contrainte : prépare le scan DAST sur une base JETABLE - dast-token.sh. Crée les comptes de
# test (scripts/comptes-test.sh, mêmes variables) et écrit sur la sortie standard le seul jeton
# d'accès du `lecteur`.
# Contrainte : le compte du scan est `lecteur`, jamais `admin`. Un scan actif avec un jeton admin
# frapperait POST /users ou la réinitialisation de mots de passe pour de bon.
set -euo pipefail
shopt -s inherit_errexit
ICI="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BASE_URL="${BASE_URL:-http://localhost:8000}"
COMPTES="$(mktemp)"
trap 'rm -f "$COMPTES"' EXIT
COMPTES_FICHIER="$COMPTES" BASE_URL="$BASE_URL" "$ICI/comptes-test.sh"
JETON="$(curl -fsS -X POST "$BASE_URL/api/v1/auth/login" -H 'Content-Type: application/json' \
-d "$(jq '.lecteur | {email, password}' "$COMPTES")" | jq -r '.access_token')"
CODE="$(curl -sS -o /dev/null -w '%{http_code}' "$BASE_URL/api/v1/sites" -H "Authorization: Bearer $JETON")"
[[ "$CODE" == "200" ]] || { echo "dast-token: GET /sites répond $CODE avec le jeton du lecteur, attendu 200" >&2; exit 1; }
echo "$JETON"