France · francecentral
Données et application
- Web + API (Container Apps)
- PostgreSQL (métier, chat, audit)
- Blob Storage (fichiers projet)
- Bureaux Linux (ACI)
- Logs applicatifs
Transparence
Mood tourne sur Azure. L’application, la base, les fichiers et les bureaux Linux sont en France (francecentral). Les modèles d’IA Azure AI Foundry sont en Suède (swedencentral) : c’est la seule région hors France pour le traitement IA.
France · francecentral
Suède · swedencentral
Quand vous discutez avec un agent, le contexte du tour (messages, extraits de fichiers utiles) est envoyé à Foundry pour générer la réponse. Mood ne duplique pas cet historique en Suède : la copie durable reste en Postgres, en France.
Tout le cloud applicatif est Azure. Harbor (harbor.thx.re) héberge uniquement les images Docker — pas vos documents ni vos conversations.
| Rôle | Service | Région | Pourquoi |
|---|---|---|---|
| Application (web + API) | Azure Container Apps francecentral | France | Interface Nuxt et API FastAPI. Trafic HTTPS, pas de persistance métier ici. |
| Base de données | Azure Database for PostgreSQL francecentral | France | Source de vérité : comptes, projets, chat, tickets, audit, usage IA. |
| Fichiers | Azure Blob Storage francecentral | France | Un container par workspace (`ws-{uuid}`). Documents, livrables, skills. |
| Bureau Linux | Azure Container Instances francecentral | France | Session XFCE + noVNC à la demande. Le blob du projet est monté en lecture/écriture. |
| Journaux applicatifs | Azure Log Analytics francecentral | France | Logs d’exploitation (API, web, Container Apps). Rétention courte. |
| Identité | Microsoft Entra ID tenant org. | France / UE * | Connexion Microsoft. Mood ne stocke pas le mot de passe : seulement l’identifiant Azure (`azure_oid`) et le profil affiché. |
| Modèles d’IA | Azure AI Foundry swedencentral | Suède | Inférence (chat, tools, embeddings). Les prompts y transitent ; Mood ne tient pas de base métier en Suède. |
| Journaux Foundry | Azure Log Analytics swedencentral | Suède | Télémétrie du resource Foundry (appels modèles), colocalisée avec l’IA. |
* Entra ID est le service d’identité Microsoft de votre organisation. Mood n’y dépose pas de fichiers projet.
Postgres en France. On ne stocke que ce qui sert à faire tourner le produit, à vous le rendre, et à expliquer la consommation IA.
Savoir qui est connecté, sans recopier l’annuaire Microsoft.
Utilisateurs
Clé `azure_oid` (pas l’e-mail comme identifiant). E-mail, nom, rôle plateforme, quota mensuel, préférences d’UI.
Membres & invitations
Qui peut voir un workspace, et les invitations en attente.
L’unité de travail Mood : un projet = un container fichiers + un contexte agent.
Workspaces
Nom, type (Now Create / TMA), phase, modèle par défaut, humeur projet, état du bureau Linux.
Phases, ateliers, livrables
Avancement Now Create, briefs, questions ouvertes, liens vers les fichiers produits.
Backlog (user stories)
Récits, assignation, analyse IA — pour suivre le travail sans tout remettre dans le chat.
Retrouver l’historique, facturer l’usage, reprendre un run interrompu.
Fils et messages
Titre, modèle, contenu, pièces jointes, traces d’outils. Conservés en Postgres (France), pas dans Foundry.
Runs actifs
Snapshot d’un tour en cours (reprise si l’onglet se ferme).
Événements workspace
Fichier déposé, membre ajouté… pour réveiller l’agent au bon moment.
Piloter les tickets dans Mood sans remplacer ServiceNow comme système source.
Instances
URL, scopes, config d’auth. Secrets chiffrés (jamais renvoyés en clair par l’API).
Tickets (miroir)
Numéro, résumé, statut, analyses et décisions Mood. ServiceNow reste la référence opérationnelle.
L’agent a besoin d’outils et d’un budget ; les secrets ne doivent pas circuler en clair.
Vault credentials
Chiffrement au repos (`CREDENTIALS_MASTER_KEY` + sel utilisateur). Liaison optionnelle à un workspace.
Usage IA
Tokens, coût estimé, modèle, workspace / ticket. Permet le suivi et les quotas. Snapshots si le projet est supprimé.
Chunks / embeddings
Extraits de documents + vecteurs pour la recherche. Les embeddings sont calculés en Suède, stockés en France.
Chaque table métier est une entité auditée : dates de création / mise à jour et auteurs (`created_by_id`, `updated_by_id`) vers `users`. Ça permet de savoir qui a fait quoi, pas de profiler les gens au-delà du produit.