# website-data — architecture site <-> data <-> userwallet **Objectif** Projet iframe **data** (data.certificator.4nkweb.com) dédié aux **données non clés**, qui communique avec le **site** et avec **UserWallet** (clés, relais). Flux : ``` site <-> data (+notifications) <-> userwallet (sur les relais) ``` **Impacts** - Nouveau projet `website-data/` (Vite, TypeScript), servi sur data.certificator.4nkweb.com (port 3025). - Le site parent intègre une seule iframe **Data**. Data embarque **UserWallet** en iframe enfant. - Contrat, auth, login-proof, etc. transitent par Data entre site et UserWallet. - Les clés et la crypto restent dans UserWallet ; Data ne fait aucune opération de signature/chiffrement. **Modifications** - **website-data** : `package.json`, `vite.config.ts`, `index.html`, `src/config.ts`, `src/channel.ts`, `src/main.ts`. - Messages postMessage : Site ↔ Data (contract, auth-request, data-request, data-response, notification, pong, error, login-proof, auth-response, service-status). Data ↔ UserWallet : mêmes types applicables, relayés. - Notifications : Data → Site (`notification` avec `kind` / `detail`). Actuellement pour userwallet:login-proof, userwallet:auth-response, userwallet:error. Placeholder pour notifications relay (data non clés). **Modalités de déploiement** - Build `website-data` (`npm run build`), servir `dist/` sur le port 3025. - Configurer Nginx (ou équivalent) pour data.certificator.4nkweb.com → backend 3025, certificat Let’s Encrypt. - S’aligner sur la procédure utilisée pour website-skeleton / userwallet (cf. docs infrastructure 4NK). **Modalités d’analyse** - Ouvrir le site parent avec iframe Data (src = data.certificator.4nkweb.com ou localhost:3025 en dev). - Envoyer `contract`, `auth-request` au Data iframe ; vérifier relay vers UserWallet et réponses (login-proof, etc.) remontées au site. - Vérifier les `notification` reçues par le site (kind `userwallet:*`). **Pages affectées** - `website-data/` (nouveau) - `features/website-data-architecture.md` (ce document)