Sanity Studio Configuration
Type de ressource : Configuration Sanity Studio (RĂŽles / Permissions / Plugins)
Fichier source :apps/studio/sanity.config.ts
Statut : Actif
1. Vue dâensemble
Section titled â1. Vue dâensembleâ1.1. Description
Section titled â1.1. DescriptionâConfiguration principale du Sanity Studio pour le projet PP. DĂ©finit les plugins, les schĂ©mas enregistrĂ©s, et la configuration du mode preview pour les documents non publiĂ©s.
1.2. Objectif
Section titled â1.2. Objectifâ- Interface dâadministration pour la gestion du contenu Sanity
- Support du mode preview pour les documents en draft
- Configuration des plugins structureTool et visionTool
- Génération automatique des URLs de preview selon le type de document
1.3. PérimÚtre concerné
Section titled â1.3. PĂ©rimĂštre concernĂ©â- Environnements : Development, Preview, Production
- Utilisateurs concernés : Administrators, Editors, Contributors (configuration Sanity Dashboard)
- Types de documents impactés : post, author, category, amn, submission, blockContent
2. Architecture et flux
Section titled â2. Architecture et fluxâ2.1. Diagramme de flux
Section titled â2.1. Diagramme de fluxâ[Utilisateur Sanity] â (authentification OAuth) âŒ[Sanity Studio] â âą VĂ©rification du rĂŽle â âą Application des permissions â âą Affichage de l'interface adaptĂ©e âŒ[Actions autorisĂ©es / restreintes]2.2. Composants impliquĂ©s
Section titled â2.2. Composants impliquĂ©sâ| Composant | RĂŽle | Couche |
|---|---|---|
| Sanity Studio | Interface dâĂ©dition | L1 (CMS) |
| Configuration preview | Génération URLs preview | L1 (Configuration) |
| structureTool | Organisation du desk | L1 (Plugin) |
| visionTool | Ăditeur GROQ | L1 (Plugin) |
3. Configuration
Section titled â3. Configurationâ3.1. Variables dâenvironnement requises
Section titled â3.1. Variables dâenvironnement requisesâ| Variable | Description | Obligatoire | Valeur par dĂ©faut |
|---|---|---|---|
SANITY_STUDIO_PROJECT_ID |
ID du projet Sanity | â | - |
SANITY_STUDIO_DATASET |
Nom du dataset (ex: development) |
â | development |
SANITY_STUDIO_PREVIEW_URL |
URL du site pour prĂ©visualisation | â | http://localhost:4321 (local) |
SANITY_STUDIO_PREVIEW_SECRET |
Secret pour validation preview | â | - |
3.2. Configuration des rĂŽles et permissions
Section titled â3.2. Configuration des rĂŽles et permissionsâ3.2.1. Matrice des rĂŽles
Section titled â3.2.1. Matrice des rĂŽlesâ| RĂŽle | Droits principaux | Public cible | AccĂšs Studio |
|---|---|---|---|
| Administrator | AccĂšs total (schĂ©mas, settings, tous les documents, gestion des utilisateurs) | Ăquipe Architecture / Tech Lead | â Complet |
| Editor | CrĂ©ation, modification et publication de tous les contenus | Ăquipe Marketing / Contenu | â Complet |
| Contributor | CrĂ©ation et modification de contenus, sans droit de publication | RĂ©dacteurs externes ou juniors | â Complet |
| Viewer | Lecture seule | Stakeholders / relecture | â Lecture seule |
3.2.2. Matrice des permissions par type de document
Section titled â3.2.2. Matrice des permissions par type de documentâ| Type de document | Administrator | Editor | Contributor | Viewer |
|---|---|---|---|---|
post (Article blog) |
â CRUD + Publish | â CRUD + Publish | â Create + Update | â Read |
author |
â CRUD | â CRUD | â | â Read |
category |
â CRUD | â CRUD | â | â Read |
amn (Message singleton) |
â CRUD + Publish | â CRUD + Publish | â Create + Update | â Read |
submission (Formulaire) |
â CRUD | â CRUD | â | â Read |
blockContent (Utilitaire) |
â CRUD | â | â | â |
3.2.3. Permissions granulaires
Section titled â3.2.3. Permissions granulairesâNon implĂ©mentĂ© - permissions gĂ©rĂ©es via Sanity Dashboard uniquement.
3.3. Configuration de lâauthentification
Section titled â3.3. Configuration de lâauthentificationâ3.3.1. Providers OAuth activĂ©s
Section titled â3.3.1. Providers OAuth activĂ©sâ| Provider | Configuration | Obligatoire |
|---|---|---|
| Sanity OAuth | Default Sanity OAuth | â |
| Google OAuth | Non configurĂ© | â |
| GitHub OAuth | Non configurĂ© | â |
| Email/Password | Non configurĂ© | â |
3.3.2. RĂšgles dâaccĂšs
Section titled â3.3.2. RĂšgles dâaccĂšsâ- â Authentification obligatoire pour tous les utilisateurs
- â Invitation des utilisateurs via Sanity Dashboard (Administrator uniquement)
- â RĂ©vocation dâaccĂšs immĂ©diate possible depuis le Dashboard
4. Structure du Desk
Section titled â4. Structure du Deskâ4.1. Organisation des documents
Section titled â4.1. Organisation des documentsâNon implĂ©mentĂ© - utilisation de la structure par dĂ©faut de structureTool.
4.2. Vues personnalisées
Section titled â4.2. Vues personnalisĂ©esâNon implĂ©mentĂ© - utilisation des vues par dĂ©faut.
5. Plugins et extensions
Section titled â5. Plugins et extensionsâ5.1. Plugins installĂ©s
Section titled â5.1. Plugins installĂ©sâ| Plugin | RĂŽle | Version | Obligatoire |
|---|---|---|---|
@sanity/structure |
Organisation du desk | Latest | â |
@sanity/vision |
Ăditeur GROQ pour tester les requĂȘtes | Latest | â |
5.2. Configuration des plugins
Section titled â5.2. Configuration des pluginsâimport {structureTool} from 'sanity/structure'import {visionTool} from '@sanity/vision'
export default defineConfig({ plugins: [structureTool(), visionTool()],})6. Sécurité
Section titled â6. SĂ©curitĂ©â6.1. MĂ©canismes de sĂ©curitĂ©
Section titled â6.1. MĂ©canismes de sĂ©curitĂ©â| MĂ©canisme | ImplĂ©mentation | Rationale |
|---|---|---|
| Preview Secret | Validation cÎté Astro via SANITY_PREVIEW_SECRET |
EmpĂȘche lâaccĂšs non autorisĂ© aux drafts |
| Variables scoped | Préfixe SANITY_STUDIO_ pour exposition contrÎlée |
Limite lâexposition des secrets cĂŽtĂ© client |
| Dataset separation | development vs production |
Isolement des environnements |
6.2. RÚgles de sécurité
Section titled â6.2. RĂšgles de sĂ©curitĂ©â- â Les Administrators sont les seuls Ă pouvoir modifier les schĂ©mas
- â Les tokens dâAPI ne sont JAMAIS exposĂ©s dans le Studio
- â Le preview secret est partagĂ© entre Studio et Astro
- â
Les variables sans préfixe
SANITY_STUDIO_restent cÎté serveur/CLI uniquement
6.3. Gestion des tokens API
Section titled â6.3. Gestion des tokens APIâ| Token | Permissions | GĂ©nĂ©rĂ© par | Stockage |
|---|---|---|---|
SANITY_API_READ_TOKEN |
Lecture des drafts | Administrator | .env (non versionné) |
SANITY_API_WRITE_TOKEN |
Ăcriture (mutations) | Administrator | .env (non versionnĂ©) |
7. Workflow éditorial
Section titled â7. Workflow Ă©ditorialâ7.1. Cycle de vie dâun document
Section titled â7.1. Cycle de vie dâun documentâ[CrĂ©ation] â [Draft] â [Relecture] â [Publication] â [ArchivĂ©] â â â â â ⌠⌠⌠⌠⌠Contributor Contributor Editor/Viewer Public Administrator7.2. Bonnes pratiques Ă©ditoriales
Section titled â7.2. Bonnes pratiques Ă©ditorialesâ- â Utiliser le mode Preview avant publication
- â VĂ©rifier le rendu responsive (mobile, tablet, desktop)
- â Archiver les contenus obsolĂštes plutĂŽt que les supprimer
7.3. Processus de validation
Section titled â7.3. Processus de validationâ| Ătape | Responsable | Action |
|---|---|---|
| 1. Rédaction | Contributor | Création du contenu en draft |
| 2. Relecture | Editor / Viewer | Validation du contenu |
| 3. Publication | Editor / Administrator | Publication finale |
| 4. Vérification | Editor | Vérification post-publication (preview + live) |
8. Débogage et troubleshooting
Section titled â8. DĂ©bogage et troubleshootingâ8.1. ProblĂšmes courants
Section titled â8.1. ProblĂšmes courantsâ| SymptĂŽme | Cause probable | Solution |
|---|---|---|
| Preview ne fonctionne pas | Secret non configuré | Vérifier SANITY_STUDIO_PREVIEW_SECRET |
| Build échoue | Variables manquantes | Vérifier .env à la racine |
| Schémas non visibles | Import incorrect dans schemaTypes/index.ts |
Vérifier les exports |
| Déploiement échoue | Configuration Wrangler incorrecte | Vérifier wrangler.toml |
8.2. Logs et monitoring
Section titled â8.2. Logs et monitoringâCĂŽtĂ© Sanity :
- Sanity Dashboard â Settings â Activity â Audit logs
- Vérifier les actions des utilisateurs (création, modification, publication)
CÎté application :
- Logs des erreurs de build (CI/CD)
- Logs de preview (console du navigateur)
8.3. Tests manuels
Section titled â8.3. Tests manuelsâ# Test localtask dev:studio# Ouvrir http://localhost:3333
# Test preview# 1. Créer/éditer un document dans le Studio# 2. Cliquer sur "Open Preview"# 3. Vérifier que la page Astro s'ouvre avec le contenu en draft
# Test buildtask build:studio9. Bonnes pratiques
Section titled â9. Bonnes pratiquesâ9.1. Pour les Administrators
Section titled â9.1. Pour les Administratorsâ- â Configurer les rĂŽles et permissions avant dâinviter des utilisateurs
- â Documenter les changements de configuration dans ce fichier
- â RĂ©voquer les accĂšs des utilisateurs partis
- â Rotation rĂ©guliĂšre des tokens API (tous les 90 jours)
9.2. Pour les Editors
Section titled â9.2. Pour les Editorsâ- â Valider les contenus avant publication
- â Utiliser le mode Preview systĂ©matiquement
- â Archiver les contenus obsolĂštes
9.3. Pour les Contributors
Section titled â9.3. Pour les Contributorsâ- â CrĂ©er des drafts complets (tous les champs obligatoires remplis)
- â Ne pas publier (demander Ă un Editor)
- â Utiliser le mode Preview pour vĂ©rifier le rendu
9.4. Considérations de performance
Section titled â9.4. ConsidĂ©rations de performanceâ- â ïž Le Studio peut ĂȘtre lent avec beaucoup de documents (> 10 000)
- â ïž Les images lourdes peuvent ralentir lâĂ©dition
- â Optimiser les images avant upload (max 2 MB recommandĂ©)
10. Ăvolutions et roadmap
Section titled â10. Ăvolutions et roadmapâ10.1. AmĂ©liorations planifiĂ©es
Section titled â10.1. AmĂ©liorations planifiĂ©esâ- IntĂ©gration de plugins supplĂ©mentaires (ex: media assets)
- Customisation de la structure du Studio
- Configuration des rĂŽles et permissions granulaires
- Intégration avec le workflow de publication
10.2. Limitations connues
Section titled â10.2. Limitations connuesâ- â Le preview nĂ©cessite une configuration manuelle des URLs
- â Les tokens dâAPI ne peuvent pas ĂȘtre utilisĂ©s directement dans le Studio
- â La customisation visuelle est limitĂ©e sans plugins spĂ©cifiques
11. Ressources liées
Section titled â11. Ressources liĂ©esâ- Documentation Sanity : Studio Configuration
- Documentation Sanity : Studio Environment Variables
- Schémas associés : Tous les schémas dans
apps/studio/schemaTypes/ - Frontend associé :
apps/web/src/pages/api/preview.ts - Configuration Cloudflare :
apps/studio/wrangler.toml
12. Historique des modifications
Section titled â12. Historique des modificationsâ| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-15 | 1.0 | Création initiale de la documentation | Devin |