mirror of
https://github.com/arthur-pbty/flint.git
synced 2026-08-01 20:29:03 +02:00
- 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
65 lines
2.1 KiB
Markdown
65 lines
2.1 KiB
Markdown
# 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).
|