docs(adr): telegram-gateway auth (Phase 1.5) #7

Merged
arcodange merged 1 commits from docs/telegram-gateway-auth-adr into main 2026-05-09 14:22:13 +02:00
Owner

Résumé

Ajoute l'ADR 20260509-telegram-gateway-auth.md qui documente la couche d'authentification du telegram-gateway (Phase 1.5).

Décisions clés

  • Bot principal @arcodange_factory_bot (handler=auth) — /start, /auth <code>, /whoami, /logout
  • Session Redis keyée par from.id Telegram (pas par IP — Telegram n'expose pas l'IP côté bot), TTL 24 h configurable
  • Allowlist optionnelle ALLOWED_USERS — silent drop avant la gate auth
  • requireAuth secure-by-default (true) — opt-out explicite par bot
  • handler: auth force requireAuth: false (chicken-and-egg)
  • Replay defense : message /auth <code> supprimé du chat après login
  • Fail-at-startup si AUTH_SECRET est unset alors qu'un bot a requireAuth: true ou handler=auth

L'ADR référence en tête :

  • le code dans arcodange/telegram-gateway (auth.go, handler_auth.go, allowlist.go, server.go, chart/values.yaml)
  • les user docs (AUTH.md, HOWTO_ADD_BOT.md)
  • l'ADR réseau préexistante (20260407-network-architecture)
  • le plan d'implémentation (~/.claude/plans/...)

3 diagrammes mermaid (sequence /auth, sequence bot gated, graph TD décision globale) avec classDef à contraste explicite.

Rollout

Code et docs (arcodange/telegram-gateway commit 07115e3) déjà mergés sur main. Cette PR ne fait qu'ajouter l'ADR documentaire — pas de changement runtime côté factory.

Test plan

  • Diagrammes mermaid se rendent correctement dans la viewer Gitea
  • Cross-links code (Gitea URLs) résolvent
  • Cross-link 20260407-network-architecture.md résoud
## Résumé Ajoute l'ADR `20260509-telegram-gateway-auth.md` qui documente la couche d'authentification du `telegram-gateway` (Phase 1.5). ## Décisions clés - Bot principal `@arcodange_factory_bot` (handler=auth) — `/start`, `/auth <code>`, `/whoami`, `/logout` - Session **Redis** keyée par `from.id` Telegram (pas par IP — Telegram n'expose pas l'IP côté bot), TTL 24 h configurable - Allowlist optionnelle `ALLOWED_USERS` — silent drop avant la gate auth - `requireAuth` **secure-by-default** (`true`) — opt-out explicite par bot - `handler: auth` force `requireAuth: false` (chicken-and-egg) - Replay defense : message `/auth <code>` supprimé du chat après login - Fail-at-startup si `AUTH_SECRET` est unset alors qu'un bot a `requireAuth: true` ou `handler=auth` ## Cross-links L'ADR référence en tête : - le code dans `arcodange/telegram-gateway` (auth.go, handler_auth.go, allowlist.go, server.go, chart/values.yaml) - les user docs (AUTH.md, HOWTO_ADD_BOT.md) - l'ADR réseau préexistante (20260407-network-architecture) - le plan d'implémentation (~/.claude/plans/...) 3 diagrammes mermaid (sequence /auth, sequence bot gated, graph TD décision globale) avec `classDef` à contraste explicite. ## Rollout Code et docs ([arcodange/telegram-gateway commit 07115e3](https://gitea.arcodange.lab/arcodange/telegram-gateway/commit/07115e3)) déjà mergés sur `main`. Cette PR ne fait qu'ajouter l'ADR documentaire — pas de changement runtime côté factory. ## Test plan - [ ] Diagrammes mermaid se rendent correctement dans la viewer Gitea - [ ] Cross-links code (Gitea URLs) résolvent - [ ] Cross-link `20260407-network-architecture.md` résoud
arcodange added 1 commit 2026-05-09 13:58:52 +02:00
Documents the authentication layer added to telegram-gateway in
Phase 1.5 :

- principal bot @arcodange_factory_bot (handler=auth) gère /auth, /whoami, /logout
- session Redis 24h keyed by Telegram from.id (TTL via AUTH_SESSION_TTL)
- allowlist optionnelle (ALLOWED_USERS) — silent drop avant la gate
- requireAuth secure-by-default (true), opt-out explicite par bot
- handler=auth force requireAuth=false (chicken-and-egg)

Cross-links bidirectionnels avec le code (Gitea URLs vers
arcodange/telegram-gateway), AUTH.md (user-facing) et HOWTO_ADD_BOT.md
(Cas 2 mis à jour). Diagrammes mermaid avec contrastes explicites.
arcodange merged commit ea500abe62 into main 2026-05-09 14:22:13 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: arcodange-org/factory#7