docs: ADR 0003 — accès base par tunnel SSH, jamais par le réseau (#65) #97

Merged
gabriel merged 2 commits from lenaic/65-adr-acces-base-tunnel-ssh into develop 2026-09-03 13:20:16 +00:00
Owner

Ce que ça change

La décision « accès base par tunnel SSH uniquement » (journal du 01/09) est maintenant tracée en ADR, avec ses trois clôtures et le geste d'accès documenté. Aucun code ne change.

Closes #65

Preuve

$ ss -lnt | grep 5433                      # sur le serveur
LISTEN 0  200  127.0.0.1:5433  0.0.0.0:*
$ bash -c "</dev/tcp/10.105.200.41/5433"   # depuis l'extérieur (VPN)
→ fermé (timeout)
$ grep -E "^(listen_addresses|port)" infra/compose/postgres/conf/postgresql.conf
listen_addresses = '127.0.0.1'
port = 5433

Relecture

  • Un pair a relu et laissé un commentaire, même court
  • Ses remarques sont traitées, ou une réponse explique pourquoi elles ne le sont pas

Ce qui suit le code

  • docs/adr/ complété, une décision structurante a été prise

Où regarder en priorité

La section Conséquences : elle engage les futurs services (connexion en 127.0.0.1:5433, réseau hôte).

## Ce que ça change La décision « accès base par tunnel SSH uniquement » (journal du 01/09) est maintenant tracée en ADR, avec ses trois clôtures et le geste d'accès documenté. Aucun code ne change. Closes #65 ## Preuve ``` $ ss -lnt | grep 5433 # sur le serveur LISTEN 0 200 127.0.0.1:5433 0.0.0.0:* $ bash -c "</dev/tcp/10.105.200.41/5433" # depuis l'extérieur (VPN) → fermé (timeout) $ grep -E "^(listen_addresses|port)" infra/compose/postgres/conf/postgresql.conf listen_addresses = '127.0.0.1' port = 5433 ``` ## Relecture - [ ] Un pair a relu et laissé un commentaire, même court - [ ] Ses remarques sont traitées, ou une réponse explique pourquoi elles ne le sont pas ## Ce qui suit le code - [x] `docs/adr/` complété, une décision structurante a été prise ## Où regarder en priorité La section Conséquences : elle engage les futurs services (connexion en `127.0.0.1:5433`, réseau hôte).
docs: ADR 0003 — accès base par tunnel SSH, jamais par le réseau (#65)
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 12s
Intégration / Tests unitaires et couverture (pull_request) Successful in 12s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 10s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Aucun secret commité (pull_request) Successful in 3s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 46s
0191acd34a
florian approved these changes 2026-09-03 07:35:22 +00:00
Dismissed
lenaic dismissed florian's review 2026-09-03 09:45:39 +00:00
gabriel requested changes 2026-09-03 10:24:49 +00:00
Dismissed
gabriel left a comment

Sur le fond, rien à redire : les trois clôtures (listen_addresses / pg_hba / UFW en réseau hôte) sont cohérentes avec l'infra réelle, la remarque sur DOCKER-USER passant avant UFW est juste, et le geste ssh -L est correct.

Deux points de forme bloquants :

  1. Collision de numéro. docs/adr/0003-* existe déjà sur develop (0003-duckdb-plutot-que-spark-pour-l-etl.md). Cette PR a été ouverte avant le merge de renumérotation. Il faut rebaser sur develop et renuméroter. Attention : 0008 est aussi visé par #110 et #109 pose une ADR — je coordonne l'attribution des numéros, on se cale sur l'ordre de merge.

  2. Définition de terminé incomplète. Le docs/adr/README.md dit qu'une décision « n'existe que si elle est ici ou dans le tableau §1 de EXIGENCES-collectives.md ». Ajouter la ligne dans le tableau d'index de l'ADR README (a minima).

Sur le fond, rien à redire : les trois clôtures (listen_addresses / pg_hba / UFW en réseau hôte) sont cohérentes avec l'infra réelle, la remarque sur DOCKER-USER passant avant UFW est juste, et le geste `ssh -L` est correct. Deux points de forme bloquants : 1. **Collision de numéro.** `docs/adr/0003-*` existe déjà sur `develop` (`0003-duckdb-plutot-que-spark-pour-l-etl.md`). Cette PR a été ouverte avant le merge de renumérotation. Il faut rebaser sur `develop` et renuméroter. Attention : 0008 est aussi visé par #110 et #109 pose une ADR — je coordonne l'attribution des numéros, on se cale sur l'ordre de merge. 2. **Définition de terminé incomplète.** Le `docs/adr/README.md` dit qu'une décision « n'existe que si elle est ici ou dans le tableau §1 de EXIGENCES-collectives.md ». Ajouter la ligne dans le tableau d'index de l'ADR README (a minima).
Merge branch 'develop' into lenaic/65-adr-acces-base-tunnel-ssh
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 1m6s
Intégration / Tests unitaires et couverture (pull_request) Successful in 1m2s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 22s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Tableau de bord (pull_request) Successful in 28s
Intégration / Aucun secret commité (pull_request) Successful in 3s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 1m43s
9973c8a11b
Merge branch 'develop' into lenaic/65-adr-acces-base-tunnel-ssh
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 48s
Intégration / Tests unitaires et couverture (pull_request) Successful in 51s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 14s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 1m23s
Intégration / Tableau de bord (pull_request) Successful in 17s
Intégration / Aucun secret commité (pull_request) Successful in 3s
f756f0b63c
lenaic force-pushed lenaic/65-adr-acces-base-tunnel-ssh from f756f0b63c
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 48s
Intégration / Tests unitaires et couverture (pull_request) Successful in 51s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 14s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 1m23s
Intégration / Tableau de bord (pull_request) Successful in 17s
Intégration / Aucun secret commité (pull_request) Successful in 3s
to 06f086755f
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 50s
Intégration / Tests unitaires et couverture (pull_request) Successful in 53s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 14s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Tableau de bord (pull_request) Successful in 19s
Intégration / Aucun secret commité (pull_request) Successful in 2s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 1m25s
2026-09-03 13:14:13 +00:00
Compare
Author
Owner

Les deux points sont traités.

Le numéro. Tu as raison, et la collision était pire que 0003 : la série est allée
jusqu'à 0009 depuis l'ouverture de cette demande, avec le collecteur en cron (#109) et
le schéma de la zone or (#110). La fiche devient 0010, premier libre. J'ai rebasé sur
develop et vérifié qu'aucun document ne renvoie à l'ancien nom.

L'index. Ligne ajoutée au tableau du README des fiches. Tu as raison de le compter
comme bloquant plutôt que comme un détail : le README dit lui-même qu'une décision qui n'y
figure pas n'existe pas, et une fiche orpheline est exactement ce qu'on ne retrouve plus
au jour 9.

Sur ta coordination des numéros : elle a déjà servi deux fois aujourd'hui, la fiche de
Justine et celle d'Olivier se disputaient le 0008. Si tu veux, je peux ajouter un contrôle
à la chaîne qui refuse deux fiches au même numéro — ça éviterait de compter à la main à
chaque fusion.

Les deux points sont traités. **Le numéro.** Tu as raison, et la collision était pire que 0003 : la série est allée jusqu'à **0009** depuis l'ouverture de cette demande, avec le collecteur en cron (#109) et le schéma de la zone or (#110). La fiche devient **0010**, premier libre. J'ai rebasé sur `develop` et vérifié qu'aucun document ne renvoie à l'ancien nom. **L'index.** Ligne ajoutée au tableau du `README` des fiches. Tu as raison de le compter comme bloquant plutôt que comme un détail : le README dit lui-même qu'une décision qui n'y figure pas n'existe pas, et une fiche orpheline est exactement ce qu'on ne retrouve plus au jour 9. Sur ta coordination des numéros : elle a déjà servi deux fois aujourd'hui, la fiche de Justine et celle d'Olivier se disputaient le 0008. Si tu veux, je peux ajouter un contrôle à la chaîne qui refuse deux fiches au même numéro — ça éviterait de compter à la main à chaque fusion.
lenaic requested review from gabriel 2026-09-03 13:14:59 +00:00
gabriel approved these changes 2026-09-03 13:19:19 +00:00
gabriel merged commit 9a9c89bed3 into develop 2026-09-03 13:20:16 +00:00
gabriel deleted branch lenaic/65-adr-acces-base-tunnel-ssh 2026-09-03 13:20:16 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
g2/enervision!97
No description provided.