RWA Assistant — Documentation
Guide de référence
Widget d'assistance IA conversationnel, déployable sur n'importe quelle plateforme via un snippet JS. Alimenté par Claude Haiku (Anthropic).
Aperçu
RWA Assistant est un widget universel en Shadow DOM fermé (~25 kB minifié) couplé à un dashboard de gestion complet. Il s'installe en une ligne de code sur n'importe quel site et communique avec une API Next.js hébergée sur le VPS RELIANCE. Les réponses arrivent en streaming SSE token par token.
Chat IA
Claude Haiku, streaming SSE, BM25 RAG sur vos documents
Lead capture
Formulaire intégré, détection contextuelle par mots-clés
Shadow DOM
Isolation totale, aucun conflit CSS avec le site hôte
Banques de données
Upload PDF/Excel/JSON, extraction automatique, indexation BM25
Contrôle d'accès
Domaines autorisés, types PUBLIC / INTERNAL / MIXED
Règles de gestion
Règles globales ou par assistant, injectées en priorité absolue
Installation
Assistant PUBLIC — collez ce snippet juste avant </body> :
Assistant INTERNAL — ajoutez data-internal-token :
Note : Le token est transmis à chaque requête via le header X-RWA-Internal-Token. Ne déployez jamais ce snippet sur une page publique — il n'est destiné qu'à des pages internes protégées. L'ID de l'assistant se récupère dans le dashboard (Assistants → copier l'identifiant).
Types d'assistants
Chaque assistant a un type d'audience qui détermine qui peut l'utiliser et comment il est protégé.
Grand public
Accessible depuis n'importe quel navigateur. Rejette automatiquement les requêtes avec un token interne.
Interne
Requiert le header X-RWA-Internal-Token. Bloque toute requête sans token valide. Jamais exposé au public.
Mixte
Accepte les deux. Utile pour des outils accessibles en interne ET en externe sans restriction.
En plus du type d'audience, chaque assistant ne peut être utilisé que depuis les domaines déclarés à sa création (deployedOn). Des domaines supplémentaires peuvent être accordés depuis la page Accès & Autorisations du dashboard.
Assistants disponibles
| ID | Nom | Usage |
|---|---|---|
| demo | Reliance Assistant | Assistant généraliste — tous projets RWA, expert immobilier premium |
| east-lake-park | East Lake Park | Assistant dédié au projet résidentiel East Lake Park |
API Reference
Toutes les routes /api/widget/* ont des headers CORS ouverts (Access-Control-Allow-Origin: *).
Attributs du snippet
| Attribut | Type | Requis | Description |
|---|---|---|---|
| data-assistant-id | string | requis | Identifiant de l'assistant tel qu'affiché dans le dashboard |
| data-api-base | string | optionnel | URL de base de l'API si différente de l'origine du fichier JS |
| data-internal-token | string | optionnel | Token d'accès interne — obligatoire pour les assistants de type INTERNAL. Doit correspondre à INTERNAL_ACCESS_TOKEN côté serveur. |
Si data-api-base est absent, le widget détecte l'API depuis l'origine du script puis depuis window.location.origin. Le data-internal-token est transmis via le header HTTP X-RWA-Internal-Token — il n'est jamais exposé dans l'URL.
Variables d'environnement
| Variable | Obligatoire | Description |
|---|---|---|
| ANTHROPIC_API_KEY | oui | Clé secrète Anthropic — injectée au runtime (jamais dans le build) |
| DATABASE_URL | oui | Chemin SQLite : file:./prisma/dev.db (dev) ou chemin absolu (prod) |
| AUTH_SECRET | oui | Clé de chiffrement des sessions NextAuth (openssl rand -base64 32) |
| AUTH_KEYCLOAK_ISSUER | oui | Realm SSO RWA Core : https://auth.rwa-core.com/realms/rwa |
| AUTH_KEYCLOAK_ID | oui | Client OIDC de cette app dans le realm : rwa-assistant |
| AUTH_KEYCLOAK_SECRET | oui | Secret du client OIDC (onglet Credentials du client Keycloak) |
| INTERNAL_ACCESS_TOKEN | oui | Token transmis par les widgets INTERNAL via X-RWA-Internal-Token |
| NEXT_PUBLIC_WIDGET_URL | non | URL publique de rwa-widget.js — injectée au build Docker |
| NEXT_PUBLIC_APP_URL | non | URL publique du dashboard — injectée au build Docker |
Copier .env.example → .env à la racine du projet pour le développement local.
En production, créer apps/dashboard/.env.local avec la vraie clé Anthropic.
Déploiement VPS
L'application s'exécute dans un conteneur Docker (image multi-stage, ~180 MB). Voir DEPLOY.md pour le guide complet.
Note importante
ANTHROPIC_API_KEY est injectée au runtime via le fichier .env sur le VPS — elle ne doit jamais être passée en --build-arg pour ne pas être exposée dans les layers Docker.