Stii ce detine Studioul
Portal Studio detine cochilia cu fata la client: pagini, plasare componente, jetoane de brand, comportament receptiv, navigare, foot-er, prezentare identitate, călătorii bilete și eliberări. Centrul de Ajutor deține limbi, categorii, secțiuni și conținut articol. Studioul consumă acest conținut printr-un pod protejat; nu creează niciodată un al doilea magazin articol.
Pregătire completă înainte de a construi adânc
- Deschide Portal Studio → Start → Pregătirea pentru utilizare.
- Confirmați adresa portalului canonic și deschideți-l într-o filă separată.
- Setează logo-ul, pictograma browserului, atinge iconița, imaginea socială și culoarea tematicii.
- Confirmaţi limbile Help Center; modificaţi autoritatea lingvistică în HelpCentrul de Ajutor, nu Studio.
- Configuraţi navigaţia şi suportul global al întreprinderii.
- Alegeţi o călătorie cu biletul şi configuraţi cel puţin un formular de cerere.
- Păstrați cel puțin o metodă de identificare în condiții de siguranță activă și analizați descoperirea identității.
- Rulați Calitate și să stabilească strângerea de mână semnată previzualizare.
- Creați prima eliberare reglementată după fiecare element de blocare este clar.
Procentul de pregătire este calculat din datele salvate în spațiul de lucru și starea previzualizare. Selectarea unor rute de produs direct la panoul său propriu.
Construiți pagini și secțiuni reutilizabile
- Deschide Construiește → Pagini și selectați o pagină de sistem protejat sau creați o pagină personalizată.
- Setați ruta, titlul, modul de acces și comportamentul local. Rutele sistemului protejat nu pot fi șterse.
- Deschide Componente, filtru de locuri de muncă sau maturitate, și pune o componentă într-un slot compatibil.
- Utilizați inspectorul pentru conținut, aspect, legare, vizibilitate și accesibilitate.
- Utilizaţi modele reutilizabile pentru structuri repetate; menţineţi diferenţele de organizare sau marcă în variante.
- Salvați proiectul și exercitarea de încărcare, gol, eroare, oaspete și semnat-in state în previzualizare.
Previzualizează călătoriile reale, nu un ecran fericit
- Alegeţi suport pentru oaspeţi, bilet semnat-in, servicii de facturare, organizare sau predarea cunoştinţelor.
- Schimbați personas, organizare, rol și Help Center.
- Inspectaţi mobil, mare mobil, tabletă, laptop, desktop, puncte de oprire larg şi ultralargă.
- Verificați valorile moștenite, suprapuse și resetate; evitați dublarea punctului de oprire inutil.
- Rulați tastatură, RTL, reducere-motie, încărcare, gol, indisponibil și stări de permisiune.
- Utilizați Laboratorul de testare pentru accesibilitate, sarcină utilă, traseu, legare și constatări ale randorului înainte de revizuire.
Operați un centru de ajutor la nivel Zendesk fără a duplicata conținutul
- Creați categorii, secțiuni, articole, traduceri, atașamente și șabloane în Centrul de ajutor.
- Activați limbile acolo; melci localizate, căutare, feed-uri, SEO și crom articol urmează aceeași autoritate.
- În Studio, plasați căutarea cunoștințelor, grile de categorie/resursa, furaje, acordeon tematic, articol, tabel de conținut, feedback, componente conexe și anterioare / viitoare.
- Configurați feed-uri prezentate, populare și recente; utilizați sugestii contextuale în fluxurile de bilete.
- Previzualizează rezultatele, articolele lungi, atașamentele, feedback-ul, ceasul/subscripția și predarea biletelor.
- Verificați rutele locale curate, canonical/hreflang, datele structurate și invalidarea cache după publicare.
Configurează sign-in în condiții de siguranță
- Deschide Identitate & organizații → Identitate și să păstreze cel puțin o cale de sign-in activat.
- Alegeți metoda implicită, politica de înregistrare, durata sesiunii, SSO-domeniu de aplicare și comportament descoperire.
- Adăugaţi furnizori cu câmpuri de rutare vizuală: tip, domenii, prioritate, prezentare, stare activată şi verificată. Secretele rămân în subsistemul de identitate.
- Pentru SCIM, permite furnizarea, copiați criteriul exact de evaluare a spațiului de lucru și rotiți jetonul. Păstrați simbolul o singură dată în IdP.
- Harta revendicări și de a membru al organizației, apoi de testare crea, actualizare, apartenență la grup și dezactivare cu un chiriaș test.
- Previzualizați oaspeții, clienții, organizațiile delegate și stările blocate înainte de publicare.
Compuneţi călătoria completă de sprijin
- Selectaţi formularul direct, vrăjitorul, căutarea-primul, hub sau desk-intrare serviciu.
- Creați un formular de cerere numit, modificat cu secțiuni și etichete accesibile pe teren.
- Construiți condiții vizuale, rutare,SLAși etapele de aprobare; avansateJSONeste doar pentru modificările revizuite ale dezvoltatorului.
- Configurează lista, detalii, fir, cronologie, atașament, aprobare, SLA și suprafețe de răspuns.
- Testați căutarea clienților, cereri semnate-in, vizibilitate organizație, eșec de încărcare, notificare e-mail și deformare a cunoștințelor.
- Salvează un proiect; publică numai după ce adaptorul de rută și calea de notificare trec înainte de zbor.
Mutare printr-o eliberare reglementată
- Execută validarea și Laboratorul de testare. Fixează constatările blocării; confirmă avertismentele permise cu context.
- Adăugați note de lansare și recenzie cerere. Recenzii comentează pe pagina stabilă / trasee nice.
- Aprobatorii inspectează călătoriile de previzualizare, modificările permisiunii şi dovezile.
- Publică sau programează prin intermediul lucrătorului de fundal. Părăsirea Studio nu anulează un loc de muncă durabil.
- Urmăriți progresul, sănătatea și ID-ul de corelare. Opriți/încercați numai de la controalele muncii.
- Verificați rutele critice, identitatea, biletele și cunoștințele. Roll înapoi la o eliberare prealabilă imuabilă atunci când este necesar.
| Capacitatea | Scop |
|---|---|
| Vizualizează / Editează | Inspectează sau modifică proiectele fără autoritate de eliberare. |
| Revizuire / Aprobare | Reacţii separate şi aprobare de la autor. |
| Program / Publicare / Rollback | Controale independente ale producției. |
| Identity / SCIM / Migrate / Components / Diagnostics | Strâmtor operaţiuni specializate sensibile. |
Migraţi-vă cu dovezi şi o cale de întoarcere
- Selectaţi planul furnizorului şi creaţi o rulare uscată.
- Setări descoperite, valori neexplorate, conţinuturi şi capturi de paritate vizuală.
- Cartografiere completă în condiții de siguranță și reluarea diff structurat.
- Aplicați la un proiect, reconciliați contele și previzualizarea fiecărei călătorii protejate.
- Înregistrați acceptarea autorizată; nu suprascrieți actuala versiune publicată în timpul importului.
- Publică prin guvernanță și păstrează împreună raportul privind migrația, eliberează ID-ul și punctul de răspuns.
Extinde contractele, nu șabloane
A safe extension registers a stable component type and schema, declares permissions and data needs, renders through the canonical compiler, and supplies deterministic fixtures/tests. Do not query arbitrary tables, inject editor JavaScript into the public Portal, create another article repository, or bypass the release gate.
Document portal v2
Paginile conţin noduri stabile, sloturi, proprietăţi, legături, suprascrieri de răspuns, condiţii şi metadate de accesibilitate.
Registrul componentelor
Un contract alimentează Studio, compilator, documentaţie, migraţia şi verificările maturităţii.
Registrul surselor de date
Allowlisted, read-only, permission-scoped DTOs replace arbitrary SQL or dynamic actions.
Un singur făcător
Previzualizare și compilarea de acțiuni publice, sanitizarea, bugetele și statele runtime.
Definește un pachet component
Utilizați un ID cu nume de caz inferior și versiunea semantică. Aprovizionarea atât numele proprietății de compatibilitate afișate, deoarece inspecția pachetului și validarea securității efectuează verificări independente.
{
"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}
}
Forma nodului
{
"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"}
}
- ID-urile rămân stabile în toate editurile și migrațiile.
- Proprietățile resping câmpurile nedeclarate și nesigure HTML.
- Fiecare vizualizare legată de date definește încărcarea, golul, permisiunea și ieșirea din eroare retriabilă.
- Componentele containerului își numesc sloturile; frunzele nu pot accepta copii arbitrari.
- Marcaţi maturitatea sincer: blocuri planificate, avertizări beta, GA necesită dovezi complete.
Folosiți DTO-uri sigure pentru permisiune
- Alegeți un ID punctat existent, cum ar fi
tickets.mine,knowledge.featuredsaucustomer.profile. - Legați numai câmpurile declarate de DTO versiunea sa. Sursele necunoscute nu reușesc cu
data_source.unknown. - Treceți contextul portalului deja autorizat; nu acceptați niciodată spațiul de lucru/identitatea clientului dintr-o proprietate neîncredere.
- Limitele listei sunt fixate pe1–100 Normalizează paginaţia, localizarea şi valorile de căutare.
- Dacă o nouă sursă este inevitabilă, adăugați definiția sa stabilă, cartografiere în condiții de siguranță, permisiuni, comportament gol și fixare previzualizare împreună.
{
"success": true,
"source": "tickets.mine",
"contract_version": 1,
"items": [
{"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
]
}
Stai în interiorul limitelor de încredere
| Limite | Comportament necesar |
|---|---|
| Spațiu de lucru | Rezolvați de la gazda/ruta/sesiunea de încredere, apoi domeniul de aplicare fiecare lectură și scrie înainte de execuție. |
| HTML | Utilizați snitizerul portal/permiserul suport. Nu concatena atribute neîncredere, URLs, CSS sau script. |
| Previzualizare | Necesită fereastra sursă de aceeași origine, versiunea canalului semnat și nonce. Ignoră mesajele nesolicitate. |
| Identitate | Păstrați secretele din afara documentelor. SCIM este purtător-autentic, fără sesiune și legat de spațiu de lucru. |
| Ambalaje | Reject Trasee de traversare, absolute, link-uri / fișiere speciale, supradimensiona arhivele, nepotrivirea cu marca/checkum și permisiuni necunoscute. |
| Erori | Returnează codul stabil, mesajul sigur, retriabilitatea, remedierea și ID-ul de corelare; logează excepția privată a serverului. |
| Cunoștințe | Citiți prin HelpCenterBridge. Nu autori sau duplicat articole Help Center într-o extensie. |
{
"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"}
}
}
Inspectaţi, instalaţi şi upgrade atomic
- Pune
component.jsonla rădăcina ZIP şi păstraţi fiecare cale relativă. - Rulați mai întâi inspecția. Instalatorul blochează arhivele la 500 intrări și 25 MB extrase; validarea securității adaugă limite independente.
- Verificați SHA-256 și semnătura pachetului în procesul de eliberare.
- Instalați într-un director versiune. Nu muta o versiune instalată în loc.
- Oferiți migrații de proprietate pentru spargerea modificărilor schema și păstrați câmpurile de compatibilitate necunoscute.
- Deschide componenta într-un proiect, rulează fiecare stat/port de vedere/persoana fixă și publică prin guvernanță.
- Rollback activează componenta/documentul imuabil anterior; păstrează dovada reproductibilității sale.
Dovedește extinderea pe aceeași eliberare hash
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
Portile sursei sunt necesare, nu suficiente. Ataseaza baza de date/migrare, real-browser vizual, furnizor de identitate, autorizatie-izolare, accesibilitate, performanta, coada / corul, mail/atrasament, backup/restaurare si implementare dovezi la acelasi hash eliberare imuabila. Dovezile necesare necunoscute trebuie sa esueze eliberarea.
- Unitatea: schema, sanitizare, forma DTO, conditii, migratii si esecuri tastate.
- Contract: încărcare/deschidere/error/succes, maturitate, sloturi, legături și paritate de un singur expeditor.
- Navigator: tastatură, focalizare, semantică, RTL, zoom/reflux, mișcare redusă și fiecare punct de oprire.
- Securitate: sonde spaţiale de lucru încrucişate, acţiuni falsificate, atacuri în pachet, previzualizarea spoofing şi scurgeri secrete.
- Operațiuni: progres durabil, concediu/retur, oprire/încercare/resumare, ritm cardiac programator și răsturnare.
Depanare după starea și ID-ul de corelare
| Stat | Ce să fac |
|---|---|
| Permisiune | Solicitați capacitatea de numit. IU ascuns este confort; platforma aplică întotdeauna. |
| Validare | Deschide pagina/nodul/fieldul raportat, corecteaz-o şi apoi reluează prezbiterul. |
| Conflict | Reîncarcă ultima revizuire, compară modificările și replică intenționat. Nu forța suprascrie. |
| Offline / retriable | Păstrați proiectul, restabiliți conectivitatea, rejudecați prin acțiune și verificați starea de muncă durabilă. |
| Fatal / indisponibil | Copiați ID-ul de corelare și marca temporală pentru suport. Nu lipi secrete sau text cu excepție privată. |
| Editura a eșuat | Inspectaţi prezburare / locul de muncă de ieşire, retry numai etape retriabile, sau rola înapoi la ultima eliberare sănătoasă. |
| SCIM 401/403 | Confirmă obiectivul/spațiul de lucru, jetonul purtător, starea activată și rotațiea; nu utiliza niciodată un cookie sesiune browser. |
| Cunoştinţele sunt vechi | Verificați localizarea/publicarea în Help Center, apoi inspectați invalidarea cache-ului și ruta de curat localizate. |
Acest ghid este gata de imprimare.→Salvează caPDFpentru o copie offline controlată.