← Toute la documentation
Guide pratique de Portal Studio

Construire avec audace. Publier en toute sécurité.

Une référence pratique pour les administrateurs qui façonnent l'expérience client et les développeurs qui l'étendent. Il documente la véritable architecture de Studio, le chemin de publication gouverné, la propriété du centre d'aide, l'identité, les migrations, les contrats de composants et la récupération.

Document du portail v2Administrateur + développeurFlux de travail des versions d'entrepriseMise à jour1Août2026
Guide de l'administrateur · Architecture

Savoir ce que Studio possède

Portal Studio possède l’interface client : pages, emplacement des composants, jetons de marque, comportement réactif, navigation, pied de page, présentation d’identité, parcours et versions des billets. Le Centre d’aide possède les langues, catégories, sections et contenu d’articles. Studio consomme ce contenu via un pont protégé; il ne crée jamais un deuxième magasin d’Articles.

Centre d'aide + billets + services d " identitéAdaptateurs de données sécurisés par permissionPortail Document v2 brouillonUn compilateur et un renduAperçu et publication Portail
Règle du rendu unique : Les pages d'aperçu et publiques utilisent le même contrat document/compilateur. La publication ne bascule jamais vers un modèle non lié.
Portal Studio · Plan de l'espace de travail
Toile en directBureau · Client
Portail clientMême document structuré utilisé dans l'aperçu et le rendu public
Carte d'interface : le rail de tâche, la toile active et l'inspecteur ciblent la même page stable et la sélection du nœud.
Administrateur · Démarrer

Préparation complète avant de construire en profondeur

  1. Ouvert Portal Studio → Démarrer → Prêt.
  2. Confirmez l'adresse canonique du portail et ouvrez-la dans un onglet séparé.
  3. Définissez le logo, l'icône du navigateur, l ’ icône tactile, l’ image sociale et la couleur de thème.
  4. Confirmer les langues du Centre d'aide ; modifier l'autorité de la langue dans le Centre d’aide, pas Studio.
  5. Configurer la navigation et le pied de page global d'entreprise.
  6. Choisissez un trajet de billet et configurez au moins un formulaire de demande.
  7. Gardez au moins une méthode de connexion sécurisée active et vérifiez la découverte d'identité.
  8. Exécutez Quality et établissez la poignée de main signée d'aperçu.
  9. Créer la première version gouvernée après que chaque élément de blocage est effacé.

Le pourcentage de préparation est calculé à partir des données d’espace de travail enregistrées et de l’état de prévisualisation.

Administrateur · Build

Créer des pages et des sections réutilisables

  1. Ouvert Créer → Pages et sélectionnez une page système protégée ou créez une page personnalisée.
  2. Définissez l'itinéraire, le titre, le mode d'accès et la configuration locale. Les itinéraires système protégés ne peuvent pas être supprimés.
  3. Ouvert Composants, filtrer par tâche ou maturité et placer un composant dans une fente compatible.
  4. Utilisez l’inspecteur pour le contenu, l’apparence, la reliure, la visibilité et l’accessibilité.
  5. Utiliser des modèles réutilisables pour les structures répétées; garder les différences d'organisation ou de marque dans les variantes.
  6. Enregistrer le brouillon et l'exercice en chargement, vide, erreur, invité et connecté dans un aperçu.
Bibliothèque de composants · Carte d'interface assainie
Recherche de connaissancesGA · client sûrGrille des catégoriesCentre d'aideCorps de l'articleGA · traduit par DTOFormulaire de demandeGA · versionnéChronologie des ticketsAvertissementGraphique de donnéesPublication de blocs planifiée
Carte d'interface : catégorie, compatibilité et maturité sont visibles avant le déploiement. Les composants planifiés bloquent la publication ; les composants bêta nécessitent un traitement de version explicite.
Administrateur · Marque et réactivité

Aperçu de véritables voyages, pas un seul écran heureux

  1. Choisissez le support client, le billet signé, les soins de facturation, l'organisation ou la transmission des connaissances.
  2. Switch personas, organization, role and Help Center language.
  3. Inspecter les points d'interruption mobiles, grands mobiles, tablettes, ordinateurs portables, bureaux, larges et ultralarges.
  4. Vérifiez les valeurs héritées, remplacées et réinitialisées ; évitez la duplication inutile des points d'arrêt.
  5. Exécuter le clavier, RTL, mouvement réduit, chargement, vide, indisponible et les états de permission.
  6. Utilisez Test Lab pour l'accessibilité, la charge utile, le parcours, les liaisons et les résultats du rendu avant révision.
La vérification préalable, l'état de révision, les capacités et la preuve de mise à disposition déterminent si le portail peut publier.
Administrateur · Expérience

Opérer un centre d'aide de niveau Zendesk sans contenu en double

  1. Créer des catégories, sections, articles, traductions, pièces jointes et modèles dans Centre d'aide.
  2. Activer les langues là-bas; les limaces localisées, la recherche, les flux, SEO et l'article chrome suivent la même autorité.
  3. Dans Studio, placez la recherche de connaissances, les grilles de catégorie/ressource, les flux, l'accordéon des sujets, l'article, la table des matières, le feedback, les composants liés et précédents/suivi.
  4. Configurez les flux en vedette, populaires et récents ; utilisez des suggestions contextuelles dans les flux de tickets.
  5. Prévisualiser les articles sans résultat, longs articles, pièces jointes, commentaires, surveillance/abonnement et remise de tickets.
  6. Vérifiez les itinéraires propres de localisation, canonical/hreflang, données structurées et l'invalidation du cache après publication.
Limite d'autorité : Utilisez Portal Studio uniquement pour composer la façon dont les connaissances sont découvertes et affichées.
Administrateur · Identité et organisations

Configurer une connexion sécurisée

  1. Ouvert Identité et organisations → Identité et gardez au moins un chemin de connexion activé.
  2. Choisissez la méthode par défaut, la stratégie d'enregistrement, la durée de session, l'application du domaine SSO et le comportement de découverte.
  3. Ajouter des fournisseurs avec des champs de routage visuel : type, domaines, priorité, présentation, statut activé et vérifié. Les secrets restent dans le sous-système d'identité.
  4. Pour SCIM, activez le provisioning, copiez le point de terminaison exact de l’espace de travail et faites pivoter le jeton.
  5. Mapper les revendications et l’appartenance à une organisation, puis tester la création, la mise à jour, l’adhésion au groupe et la désactivation avec un client de test.
  6. Prévisualiser les états invité, client, organisation déléguée et bloqué avant publication.
Ne jamais envoyer un cookie de session Studio à. SCIM. C'est un porteur sans session, lié à l'espace de travail API. Faire pivoter un jeton après une exposition accidentelle.
Administrateur · Ticket voyages

Composez le parcours complet de support

  1. Sélectionner une entrée de formulaire direct, assistant, recherche en premier, hub ou service-desk.
  2. Créer un formulaire de demande nommé et versionné avec des sections et des étiquettes de champ accessibles.
  3. Construire des conditions visuelles, le routage, les étapes SLA et d'approbation; avancé JSON est pour les modifications de développeur examinées uniquement.
  4. Configurez les surfaces liste, détail, fil, chronologie, pièce jointe, approbation, SLA et réponse.
  5. Testez la recherche d'invités, les demandes de connexion, la visibilité de l'organisation, l'échec du téléchargement, la notification par courriel et la déviation des connaissances.
  6. Enregistrer un brouillon; publier seulement après que l'adaptateur de route et le chemin de notification aient passé la vérification préalable.
Administrateur · Révision et publication

Parcourir une version gérée

Brouillons enregistrésEn cours de révisionApprouvéPlanifié ou publiéObservé ou annulé
  1. Exécuter la validation et le laboratoire de test. Corriger les résultats de blocage; confirmer les avertissements autorisés avec contexte.
  2. Ajouter des notes de version et demander une révision. Les réviseurs commentent les chemins vers la page/nœud stable.
  3. Les approbateurs inspectent les différences, prévisualisent les voyages, les changements de permissions et les preuves.
  4. Publiez ou planifiez via le programme d’exécution en arrière-plan. Quitter Studio n’annule pas une tâche durable.
  5. Surveiller la progression, l'état et l'ID de corrélation. Arrêter/refaire uniquement à partir des contrôles de tâche.
  6. Vérifiez les itinéraires critiques, l'identité, les tickets et la connaissance. Revenez à une version antérieure immuable si nécessaire.
CapacitéObjectif
Voir / ModifierInspecter ou modifier les brouillons sans autorisation de publication.
Réviser / ApprouverSéparez les commentaires et l'approbation de la paternité.
Planifier / Publier / AnnulerContrôles de production indépendants.
Identité / SCIM / Migrer / Composants / DiagnosticsRestreindre les opérations spécialisées sensibles.
Administrateur · Migrer et étendre

Émigrer avec des preuves et un chemin de retour

  1. Sélectionnez le modèle du fournisseur et créez un essai.
  2. Examiner les paramètres découverts, les valeurs non mappées, le nombre de contenu et les captures de parité visuelle.
  3. Compléter les mappages sécurisés et relancer le diff structuré.
  4. Appliquer à un brouillon, réconcilier les comptes et prévisualiser chaque voyage protégé.
  5. Record authorized acceptance; never overwrite the current published release during import.
  6. Publiez via la gouvernance et conservez le rapport de migration, l'ID de version et le point de récupération ensemble.
Guide d'extension pour développeurs · Architecture

Étendre les contrats, pas les modèles

Une extension sécurisée enregistre un type et un schéma de composant stable, déclare les permissions et les besoins en données, effectue le rendu via le compilateur canonique et fournit des Ne pas interroger des tables arbitraires, injecter l'éditeur JavaScript dans le portail public, créer un autre dépôt d'article ou contourner la porte de sortie.

Document du portail v2

Les pages contiennent des nœuds stables, des slots, des propriétés, des liaisons, des substitutions réactives, les conditions et les métadonnées d'accessibilité.

Registre des composants

Un contrat alimente Studio, le compilateur, la documentation, les contrôles de migration et de maturité.

Registre de la source des données

Les DTO en lecture seule, autorisés et ayant une portée de permission remplacent les actions SQL ou dynamiques arbitraires.

Un seul rendeur

Partage de la compilation, du nettoyage, des budgets et des états d'exécution en mode prévisualisation et public.

Développeur · Contrat de composant

Définir un paquet de composants

Utilisez un ID en espace de noms minuscule et une version sémantique. Fournissez les deux noms de propriété de compatibilité affichés car l'inspection des paquets et la validation de sécurité effectuent des vérifications indépendantes.

{
  "schema_version": 1,
  "id": "acme.support_health",
  "slug": "acme-support-health",
  "name": "Support health",
  "version": "1.0.0",
  "entry": "renderer.php",
  "renderer": "server",
  "server_renderer": "renderer.php",
  "public_renderer": "public.js",
  "schema": {
    "type": "object",
    "properties": {
      "heading": {"type": "string", "maxLength": 120},
      "showSla": {"type": "boolean", "default": true}
    },
    "additionalProperties": false
  },
  "permissions": ["tickets.read"],
  "data_scopes": ["tickets.mine"],
  "accessibility": {
    "landmark": "section",
    "nameFrom": "heading",
    "emptyState": true,
    "errorState": true
  },
  "performance": {"max_js_bytes": 12000, "max_css_bytes": 8000},
  "performance_budget": {"js": 12000, "css": 8000, "requests": 0}
}

Forme de nœud

{
  "id": "node-support-health",
  "type": "custom.acme_support_health",
  "props": {"heading": "Support health", "showSla": true},
  "bindings": {"requests": {"source": "tickets.mine", "limit": 5}},
  "responsive": {"mobile": {"padding": "16px"}, "desktop": {"padding": "24px"}},
  "conditions": [{"field": "identity.signed_in", "operator": "equals", "value": true}],
  "a11y": {"label": "Support health"}
}
  • Les ID restent stables lors des modifications et migrations.
  • Les propriétés rejettent les champs non déclarés et HTML dangereux.
  • Chaque vue liée aux données définit le chargement, le vide, les permissions et la sortie d'erreur réessayable.
  • Les composants de conteneur nomment leurs emplacements ; les feuilles ne peuvent pas accepter d'enfants arbitraires.
  • Marquez la maturité honnêtement : les blocs planifiés, les avertissements bêta, l'AG exige des preuves complètes.
Développeur · Sources de données et liaisons

Utiliser des DTO sécurisés par permission

  1. Choisissez un ID pointillé existant tel que tickets.mine, knowledge.featured ou customer.profile.
  2. Lier uniquement les champs déclarés par son DTO versionné. Les sources inconnues échouent avec data_source.unknown.
  3. Passez le contexte du portail déjà autorisé ; n’acceptez jamais l’identité de l’espace de travail/du client d’une propriété non approuvée.
  4. Les limites de liste sont fixées à.1–100 Normaliser la pagination, les paramètres régionaux et les valeurs de recherche.
  5. Si une nouvelle source est inévitable, ajoutez sa définition stable, son mappage sécurisé, ses permissions, son comportement vide et l'aperçu de la fixation.
{
  "success": true,
  "source": "tickets.mine",
  "contract_version": 1,
  "items": [
    {"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
  ]
}
Les mutations nécessitent une action de service explicitement autorisée, la liaison d'espace de travail, la validation CSRF/session ou porteur, l'idémpotence si nécessaire et une enveloppe d'erreur typée.
Développeur · Sécurité

Restez dans les limites de la confiance.

BordureComportement requis
Espace de travailRésoudre à partir de l'hôte/route/session fiable, puis étendre chaque lecture et écriture avant exécution.
HTMLUtilisez la liste d'autorisation du sanitizer/parser Portal. Ne jamais concaténer des attributs non fiables,URLs, CSSou un script.
AperçuExiger une fenêtre source de même origine, la version signée du canal et nonce. Ignorer les messages non sollicités.
IdentitéGardez les secrets en dehors des documents. SCIM est authentifié par le porteur, sans session et lié à l'espace de travail.
PaquetsRejeter la traversée, les chemins absolus, les liens/fichiers spéciaux, les archives surdimensionnées, les différences de somme de contrôle/signature et les autorisations inconnues.
ErreursRetourner le code stable, message sécurisé, réessai, correction et ID de corrélation; enregistrer les exceptions privées côté serveur.
ConnaissanceLire via HelpCenterBridge. Ne jamais créer ou dupliquer d'articles dans une extension.
{
  "success": false,
  "error": {
    "code": "studio.permission_denied",
    "message": "You do not have permission to publish the Portal.",
    "retryable": false,
    "correlation_id": "ps_…",
    "meta": {"capability": "publish"}
  }
}
Développeur · Paquet et migration

Inspecter, installer et mettre à jour atomiquement

  1. Mettre component.json à la racine ZIP et garder chaque chemin relatif.
  2. Exécutez l'inspection d'abord. L'installateur capte les archives à500entrées et25 MBextrait; la validation de sécurité ajoute des limites indépendantes.
  3. Vérifier la signature SHA-256 et le paquet attendus dans le processus de publication.
  4. Installer dans un répertoire versionné. Ne jamais modifier une version installée en place.
  5. Fournir des migrations de propriétés pour casser les changements de schéma et préserver les champs de compatibilité inconnus.
  6. Ouvrez le composant dans un brouillon, exécutez chaque étape/point de vue/personne et publiez via la gouvernance.
  7. Rétablir active la version immuable précédente du composant/document; conserver sa preuve de reproductibilité.
Développeur · Tests et publication

Prouver l'extension sur le même hachage de version

php tools/portal_studio_certify.php --source-only --json
php tools/test_portal_studio_contract.php
php tools/test_portal_one_renderer.php
php tools/test_portal_studio_engineer.php
php tools/test_portal_component_contracts.php
php tools/test_portal_one_renderer.php
php tools/test_portal_shell_contract.php
php tools/test_portal_knowledge_contract.php
node node_modules/@playwright/test/cli.js test tests/e2e/portal-studio-shell-visual-contract.spec.js tests/e2e/portal-custom-code-runtime.spec.js

Les sources de portes sont nécessaires, mais pas suffisantes. Joignez les preuves de base de données/migration, visualisation du navigateur réel, fournisseur d'identité, isolation des autorisations, accessibilité, performances, file d'attente/cron, courrier électronique/pièces jointes, sauvegarde/restauration et déploiement au même hachage de version immuable.

  • Unité: schéma, assainissement, forme DTO, conditions, migrations et échecs typés.
  • Contrat: chargement/vide/erreur/succès, maturité, emplacements, liaisons et parité à un seul rendu.
  • Navigateur: clavier, mise au point, sémantique, RTL, zoom/reflow, mouvement réduit et tous les points d'interruption.
  • Sécurité: sondes cross-workspace, actions forgées, attaques de paquets, spoofing d'aperçu et fuites secrètes.
  • Opérations : progression durable, départ/retour, arrêter/essayer de nouveau/reprendre, pulsation du planificateur et retour en arrière.
Administrateur + développeur · Récupération

Dépannage par état et ID de corrélation

ÉtatQue faire
AutorisationL'interface utilisateur cachée est une commodité; le backend l'applique toujours.
ValidationOuvrez la page/nœud/champ signalé, corrigez-le, puis recommencez le contrôle en amont.
ConflitRecharger la dernière révision, comparer les modifications et réappliquer intentionnellement. Ne jamais forcer l'écrasement.
Hors ligne / réessayableConserver le brouillon, restaurer la connectivité, réessayer l'action et vérifier l'état durable du travail.
Fatal / indisponibleCopiez l'ID de corrélation et l'horodatage pour obtenir de l'aide. Ne collez jamais des secrets ou du texte d'exception privée.
La publication a échouéInspecter la sortie de preflight/job, réessayer uniquement les étapes réessayables ou revenir à la dernière version en bon état.
SCIM 401/403Confirmer le point de terminaison/espace de travail, le jeton porteur, l'état activé et la rotation. Ne jamais utiliser un cookie de session du navigateur.
La connaissance est obsolèteVérifiez les paramètres régionaux/la publication dans le Centre d’aide, puis inspectez l’invalidation du cache et la route localisée propre.

Ce guide est prêt à être imprimé. Utilisez Imprimer → Enregistrer sous PDF pour une copie contrôlée hors ligne.