Files
flint/AGENT.md
T
Puechberty Arthur 3063796eb0 feat: introduce web dashboard with multi-bot management
- add Discord OAuth2 authentication
- allow users to register their bots via token
- implement dynamic bot start/stop system
- store bots in database (multi-tenant)
- replace single-bot env setup with scalable architecture
2026-04-18 01:39:12 +02:00

2.1 KiB

AGENT.md - Guide SaaS Multi-Tenant

Version: 3.0

But

Decrire l'architecture cible du monorepo SaaS pour bot Discord multi-tenant.

Vue d'ensemble

  • Stack backend: Node.js + TypeScript + Express + PostgreSQL + Redis + BullMQ.
  • Bot runtime: Discord.js avec gestion dynamique multi-instance.
  • Frontend: Next.js App Router.
  • Structure: monorepo apps/* + packages/*.

Organisation des dossiers

  • apps/api/
    • OAuth2 Discord, JWT cookie, routes multi-tenant, validation token bot, publication jobs BullMQ.
  • apps/bot/
    • BotManager dynamique (Map<botId, Client>), worker de controle (start/stop/restart).
  • apps/web/
    • Dashboard utilisateur (login, liste bots, ajout bot, actions runtime).
  • packages/shared/
    • Types partages, constantes queue, helpers Redis namespacing, chiffrement token AES-GCM.
  • database/migrations/
    • SQL versionne (schema_migrations) avec schema multi-tenant.

Principes d'architecture

  • Multi-tenant strict:
    • toutes les requetes de lecture/ecriture passent par tenant_id.
    • tables critiques liees a tenant_id et/ou owner_user_id.
  • Pas de secret en clair:
    • token bot chiffre en DB (token_ciphertext, token_iv, token_tag).
  • Controle runtime decouple:
    • API publie des jobs, bot manager consomme et execute.
  • Separation responsabilites:
    • API: auth + orchestration.
    • Bot: runtime Discord.
    • Web: UX dashboard.

Conventions de code

  • TypeScript strict.
  • Exports nommes.
  • Erreurs API explicites et codes HTTP coherents.
  • Logs sans fuite de secrets.

Workflow recommande

  1. Ajouter/adapter migration SQL dans database/migrations.
  2. Adapter repositories API/Bot avec filtre tenant.
  3. Ajouter endpoint API + validation zod.
  4. Brancher action queue si runtime impacte.
  5. Mettre a jour le dashboard web.
  6. Valider npm run typecheck puis docker compose up -d --build.

Securite

  • Ne jamais committer .env.
  • Garder TOKEN_ENCRYPTION_KEY hors depot.
  • Appliquer httpOnly + sameSite sur cookie session.
  • Eviter les logs de payloads sensibles (token, secrets).