26 lines
1.2 KiB
Markdown
26 lines
1.2 KiB
Markdown
## Architecture - 4NK_wallet
|
||
|
||
## Vue d’ensemble
|
||
- Hôte navigateur minimal (HTML + JS) servant d’enveloppe à l’UI `ihm_client`
|
||
- Intégration via `iframe` pointant vers les artefacts `ihm_client` (build Vite)
|
||
- Pont de messages basé sur `window.postMessage` (parent ↔ iframe)
|
||
|
||
## Flux
|
||
1. La page parent charge `web/index.html` et l’`iframe` `web/ihm/index.html`
|
||
2. Le parent envoie des messages typés vers l’iframe via `postMessage`
|
||
3. `ihm_client` émet des événements (`LISTENING`, `LINK_ACCEPTED`, etc.) captés côté parent
|
||
4. Le parent met à jour l’UI (tokens affichés, dernier type reçu) et peut renvoyer des requêtes (`REQUEST_LINK`, `VALIDATE_TOKEN`, `RENEW_TOKEN`)
|
||
|
||
## Découpage
|
||
- `web/index.html` : hôte navigateur (UI de contrôle + iframe)
|
||
- `web/bridge.js` : pont parent ↔ iframe (logique `postMessage`)
|
||
- `web/ihm/` : artefacts construits de `ihm_client`
|
||
|
||
## Sécurité
|
||
- Respect de l’origine dans `ihm_client` (réponses vers `event.origin`)
|
||
- Les tokens ne sont pas persistés par défaut côté parent (affichage éphémère)
|
||
|
||
## Performances
|
||
- Build `ihm_client` optimisé via Vite (artefacts minifiés)
|
||
- Faible empreinte du bridge (`web/bridge.js`)
|