Skip to content

Type de ressource : Configuration Sanity Studio (RĂŽles / Permissions / Plugins)
Fichier source : apps/studio/sanity.config.ts
Statut : Actif

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.

  • 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
  • Environnements : Development, Preview, Production
  • Utilisateurs concernĂ©s : Administrators, Editors, Contributors (configuration Sanity Dashboard)
  • Types de documents impactĂ©s : post, author, category, amn, submission, blockContent
[Utilisateur Sanity]
│ (authentification OAuth)
▌
[Sanity Studio]
│ ‱ VĂ©rification du rĂŽle
│ ‱ Application des permissions
│ ‱ Affichage de l'interface adaptĂ©e
▌
[Actions autorisées / restreintes]
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)
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 ✅ -
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
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 ❌ ❌ ❌

Non implémenté - permissions gérées via Sanity Dashboard uniquement.

Provider Configuration Obligatoire
Sanity OAuth Default Sanity OAuth ✅
Google OAuth Non configurĂ© ❌
GitHub OAuth Non configurĂ© ❌
Email/Password Non configurĂ© ❌
  • ✅ 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

Non implémenté - utilisation de la structure par défaut de structureTool.

Non implémenté - utilisation des vues par défaut.

Plugin RĂŽle Version Obligatoire
@sanity/structure Organisation du desk Latest ✅
@sanity/vision Éditeur GROQ pour tester les requĂȘtes Latest ❌
apps/studio/sanity.config.ts
import {structureTool} from 'sanity/structure'
import {visionTool} from '@sanity/vision'
export default defineConfig({
plugins: [structureTool(), visionTool()],
})
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
  • ✅ 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
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Ă©)
[CrĂ©ation] → [Draft] → [Relecture] → [Publication] → [ArchivĂ©]
│ │ │ │ │
▌ ▌ ▌ ▌ ▌
Contributor Contributor Editor/Viewer Public Administrator
  • ✅ Utiliser le mode Preview avant publication
  • ✅ VĂ©rifier le rendu responsive (mobile, tablet, desktop)
  • ✅ Archiver les contenus obsolĂštes plutĂŽt que les supprimer
É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)
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

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)
Terminal window
# Test local
task 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 build
task build:studio
  • ✅ 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)
  • ✅ Valider les contenus avant publication
  • ✅ Utiliser le mode Preview systĂ©matiquement
  • ✅ Archiver les contenus obsolĂštes
  • ✅ 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
  • ⚠ 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Ă©)
  • 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
  • ❌ 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
  • 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
Date Version Description Auteur
2026-09-15 1.0 Création initiale de la documentation Devin
Edit page

Last updated: