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
## 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
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Résumé
Ajoute l'ADR
20260509-telegram-gateway-auth.mdqui documente la couche d'authentification dutelegram-gateway(Phase 1.5).Décisions clés
@arcodange_factory_bot(handler=auth) —/start,/auth <code>,/whoami,/logoutfrom.idTelegram (pas par IP — Telegram n'expose pas l'IP côté bot), TTL 24 h configurableALLOWED_USERS— silent drop avant la gate authrequireAuthsecure-by-default (true) — opt-out explicite par bothandler: authforcerequireAuth: false(chicken-and-egg)/auth <code>supprimé du chat après loginAUTH_SECRETest unset alors qu'un bot arequireAuth: trueouhandler=authCross-links
L'ADR référence en tête :
arcodange/telegram-gateway(auth.go, handler_auth.go, allowlist.go, server.go, chart/values.yaml)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
20260407-network-architecture.mdrésoud