Système de thèmes
La version de production actuelle n'ouvre que les paquets de thèmes. Un administrateur téléverse un ZIP depuis la page Thèmes du panneau ; le système valide tout le paquet avant de l'écrire dans le stockage de thèmes, et un nouveau paquet démarre désactivé. Il n'y a ni API de téléversement de plugins, ni page de gestion de plugins, ni runtime de plugins.
Choisir un type d'extension
| Type | Cas d'usage | JavaScript | Accès aux données | Plage de hauteur |
|---|---|---|---|---|
| Thème CSS | conserver le comportement, ajuster couleurs, polices, espacement et visuel | non autorisé | utilise le DOM hôte | la page elle-même |
| Thème Canvas | réécrire entièrement la mise en page, l'interaction et les graphiques de la page publique | iframe sandbox | instantané d'état + requêtes d'historique restreintes | 400-12000 |
Pour une personnalisation complète de la page, utilisez un thème Canvas ; pour des changements purement visuels, préférez un thème CSS. Un panneau séparé se construit contre l'API publique v1 et se déploie sur son propre domaine.
Installation et activation
- L'auteur construit un
dist/propre depuis les sources. manifest.jsonse trouve à la racine du ZIP.- L'auteur calcule et publie le SHA-256 du ZIP.
- L'administrateur téléverse depuis l'entrée des thèmes.
- Le navigateur et le Worker vérifient chacun le SHA-256.
- Après validation, le paquet reste désactivé jusqu'à examen et activation manuelle par un administrateur.
- Désactiver un thème restaure immédiatement l'interface d'origine.
Frontière de permissions
Les thèmes CSS n'exécutent aucun script. Les thèmes Canvas tournent dans une iframe avec sandbox="allow-scripts" et sans allow-same-origin ; la CSP interdit le réseau direct, les formulaires et la navigation de niveau supérieur. Les données arrivent via le protocole de messages restreint depuis l'hôte, et seul status:read peut être déclaré. Les sessions admin, mots de passe, TOTP, Token maître Agent et jetons scoped de nœud n'atteignent jamais un thème.
Les ZIP de thèmes sont vérifiés pour la taille, le nombre de fichiers, les chemins, le type, le manifest et le SHA-256. Les limites précises sont dans le guide de sécurité et publication.
Documentation
- Thèmes CSS : manifest minimal, règles de champs, scoping et accessibilité.
- Thèmes Canvas : mise en page complète, permissions et scénarios d'acceptation.
- Protocole de messages : types
postMessage, requête/réponse et cycle de vie. - Sécurité et publication : limites de validation, chaîne d'approvisionnement et acceptation de publication.
- État des plugins : pourquoi les capacités de plugins ne sont pas ouvertes, et les alternatives.