Vet hva Studio eier
Portal Studio eier det kundevendte skallet: sider, komponentplassering, merketegn, responsiv oppførsel, navigasjon, fotnote, identitetspresentasjonen, billettreiser og utgivelse. Hjelpsenteret eier språk, kategorier, seksjoner og artikkelinnhold. Studio bruker dette innhald gjennom en beskyttet bro; den skaper aldri et annet artiklerbutikk.
Fullstendig klar før å bygge dypt
- Åpne Portal Studio → Start → Leselighet.
- Bekreft den kanoniske portaladressen og åpne det i en separat fane.
- Velg logo, nettleserikon og berøringsikonet.
- Bekreft Hjelp Center-språk; endre språkmyndighet i Help Centre, ikke Studio.
- Konfigurere navigasjon og den globale bedriftsfot.
- Velg billettreise og konfigurer minst ett forespørselsskjema.
- Hold minst én sikker logg-in metode aktiv og gjennomgang identitetsoppdagelse.
- Kjør kvalitet og etablere den signerte forhåndsvisningen håndtak.
- Opprett den første styrede utgivelsen etter at hver blokkeringselement er klart.
Forberedelsen er beregnet fra lagrede arbeidsområdedata og forhåndsvisning. Velger en elementrute direkte til sitt eiende panel.
Bygg sider og gjenbrukbare seksjoner
- Åpne Bygg → Sider og velg en beskyttet systemside eller lag egendefinert side.
- Sett ruten, tittelen og tilgangsmodus. Beskyttede systemruter kan ikke slettes.
- Åpne Komponenter, filtrer etter jobb eller modenhet og plasser en komponent i et kompatibelt spor.
- Bruk inspektøren for å ha det bra, utseendet og bindingene.
- Bruk gjenbrukbare mønstre for gjentatte strukturer; hold organisasjons- eller merkeforskjellene i varianter.
- Lagre utkastet til og trene lasting, tom, feil, gjeste-og logg inntilstander i forhåndsvisning.
Forhåndsvisning av ekte reiser, ikke en lykkelig skjerm
- Velg gjestestøtte, innlogget billett, faktureringsservice, organisasjon eller kunnskapsavlevering.
- Bytt persona, organisasjon og hjelpesenter.
- Inspeksjon av mobil, stor mobil, nettbrett, bærbar datamaskin og skrivebord.
- Sjekk arvet, overstyrt og tilbakestilt verdier; unngå nåler bruddpunkt duplisering.
- Kjør tastatur, RTL, redusert bevegelse, lasting, tomme og ikke tilgjengelige tilstander.
- Bruk Test Lab for tilgjengelighet, nyttelast, rute- og bindingsfunn før gjennomgang.
Operaer et Zendesk-nivå Hjelpesenteret uten duplisert innhold
- Opprett kategorier, seksjoner, artikler, oversettelser og maler i Hjelpesenter.
- Aktivere språk der; lokalisert sløver, søk, fôring SEO og artikkel krom følger den samme autoritet.
- I Studio, plasser kunnskapssøkefunksjonen, kategori/ressursnettene, fedmer, emne trekkspill, artikkel, tabell over innhold, tilbakemeldinger, beslektede og tidligere / nest komponenter.
- Konfigurer feed, populære og nylige fôr; bruk kontekstuelle forslag i billettflyt.
- Forhåndsvisning no-results, lange artikler, vedlegg, tilbakemeldinger og billettutlevering.
- Kontrollere rene lokale ruter, kanonisk / kjølig, strukturert data og cache ugyldigisering etter publisering.
Konfigurer logg inn trygt
- Åpne Identifikasjon og organisasjoner → og holde minst én innsmeltningssti aktivert.
- Velg standardmetode, registreringsregler og sesjonsvarighet SSO- dominans håndhevelse og oppdagelse atferd.
- Legg til leverandører med visuelle rutefelt: type, domenene, prioriteten, presentasjonen, aktivert og verifisert tilstand. Hemligheter forblir i identitetsdelsystemet.
- For SCIM, aktiver levering, kopiere nøyaktig arbeidsområdet endepunkt og roter token. Lagre engangssymbolet i Idp.
- Kartkrav og organisasjonsmedlemskap, deretter test opprette, oppdatere, gruppe medlemskap og deaktivering med en prøveleier.
- Forhåndsvisning av gjest, kunde- og delegert organisasjon og blokkert stat før publisering.
Komponere hele støtteturen
- Velg direkte skjema, veiviseren, søke-første, nav eller tjenestedesk oppføring.
- Opprett et navngitt, versjonsbasert forespørselskjema med seksjoner og tilgjengelige feltetiketter.
- Bygg visuelle forhold, ruteruter, SLA og godkjenningstrinn; avansert JSON er kun for gjennomgått utviklerendring.
- Konfigurere liste, detaljer, tråd, tidslinje, vedlegg, godkjenning SLA og svar overflater.
- Test gjesteoppslag, logget inn forespurninger, organisasjonens synlighet, opplastingsfeil, e-postvarsling og kunnskap avbøyning.
- Lagre et utkast; publiser først etter ruteadapteren og varslingssti passerer forhånd.
Flytt gjennom en styret utgivelse
- Kjør validering og testlab. Fix blokkeringsfunn; bekreft tillatte advarsler med konteksten
- Legg til utgivelsesnotater og forespørselsanmeldelse. Gjennomgangere kommenterer stabil side/nodestier.
- Approwers inspiserer diff, forhåndsvisning av reiser, tillatelsesendring og bevis.
- Publisere eller planlegge gjennom bakgrunnsarbeideren. Leave Studio ikke avbryter en slitesterk jobb.
- Se på fremskritt, helse og korrelations-ID. Stopp/reparer bare fra jobbkontroll.
- Kontroller kritiske ruter, identiteten, billettene og kunnskap. Rull tilbake til en ugjennomtrengelig tidligere utgivelse når det kreves.
| Kapabilitet | Formål |
|---|---|
| Vis / Rediger | Inspeksjon eller endring av utkast uten frigjøringsmyndighet. |
| Gjennomgå / godkjenn | Separat tilbakemelding og godkjenning fra forfatterskap. |
| Planlegg / publisere/Rollback | Uavhengig produksjonskontroll. |
| Identitet / SCIM / Migrere / Komponentene / Diagnostics | Begrense sensitive spesialistoperasjoner. |
Migrer med bevis og en vei tilbake
- Velg leverandørens tegning og lag en tørr kjøre.
- Gjennomgang oppdaget innstillinger, ubebildede verdier og innholdstall i visuell paritet.
- Komplette sikre kartlegginger og omkjør den strukturerte diff.
- Bruk på et utkast, forene antall og forhåndsvisning av alle beskyttede reiser.
- Opptak autorisert aksept; overskriv aldri den gjeldende publiserte utgivelsen under import.
- Publiser gjennom styring og hold migrasjonsrapporten, frigi ID-og tilbaketrekkingspunkt sammen.
Utvid kontrakter, ikke maler
En sikker utvidelse registrerer en stabil komponenttype og skjema, erklærer tillatelser og databehov, gjør gjennom den kanoniske kompilatoren. Leverer deterministiske fixturene/testene. Ikke spør vilkårlige tabeller, injiser redigering JavaScript inn i offentlig portal, opprette et annet artikkelarkiv eller omgå utgivelsesgaten.
Portaldokument v2
Sider inneholder stabile noder, spor, egenskaper, bindinger og responsive overstyringer.
Komponentregister
En kontrakt fôrer Studio, kompilatoren, dokumentasjon, migrasjon og modenhetskontroll.
Datakilderegister
Tillatt, skrivebeskyttet og autorisasjonsspekulert DTO erstatte vilkårlig SQL eller dynamiske handlinger.
En gjengivelsesperson
Forhåndsvisning og offentlig utgangsdeling, sanisering, budsjetter og løpstid.
Definer en komponentpakke
Bruk en liten navneområde ID og semantisk versjon. Lever både kompatibilitetsnavn vist fordi pakkekontroll-og sikkerhetsvalidering utfører uavhengig kontroller.
{
"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}
}
Nodeform
{
"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-er forblir stabile på tvers av endringer og migrant.
- Egenskaper avviser ikke-deklarerte felt og usikre HTML.
- Hvert databundet vy definerer lasting, tom, tillatelse og gjenprøvbar feilutgang.
- Beholderkomponenter navngir spilleautomatene; blader kan ikke akseptere vilkårlige barn.
- Merk modenhet ærlig: planlagte blokker, beta advarer GA krever fullstendig bevis.
Bruk autorisasjonssikre DTO-er
- Velg en eksisterende perforert ID som
tickets.mine,knowledge.featuredellercustomer.profile. - Bind bare felt erklært av sin versjon DTO. Ukjente kilder mislykkes med
data_source.unknown. - Pass den allerede autoriserte portal-konteksten; aksepter aldri arbeidsområde/kundeidentitet fra en upålitelig eiendom.
- Listegrensene er klemt til1–100 Normalisere paginasjon, lokal og søkeverdier.
- Hvis en ny kilde er uunngåelig, legg til sin stabile definisjon, sikker kartlegging, tillatelser og tom oppførsel samt forhåndsvisning av fixtur sammen.
{
"success": true,
"source": "tickets.mine",
"contract_version": 1,
"items": [
{"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
]
}
Hold deg innenfor tillitsgrensene
| Grenser | Nødvendig oppførsel |
|---|---|
| Arbeidsplass | Løs fra den betrodde verten/rute- / setning, så omfang hver lese og skrive før utføre. |
| HTML | Bruk Portal sanitizer/parsere-lisenslisten. Aldri sammenstille upålitelige egenskaper, URLs, CSS eller manus. |
| Forhåndsvisning | Kreve samme kjeldekode, signert kanalversjon og ikke-selv. Ignorer uønskede meldinger. |
| Identifikasjon | Behold hemmeligheter utenfor dokumenter. SCIM er bærer-godkjent, øktløs og arbeidsområdebundet. |
| Pakker | Avviser traversale, absolutte stier, lenker/særskild filer, overstørrelse arkivene, kontrollsum / signaturmangel og ukjent tillatelse. |
| Feil | Return stabil kode, sikker melding, reprøyabilitet, utbedring og korrelasjons-ID; logge private unntak serversiden. |
| Kunnskap | Les via HelpCenterBridge. Aldri forfatter eller duplisert Hjelp Center artikler i en utvidelse |
{
"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"}
}
}
Inspeksjon, installer og oppgrader atomisk
- Sett
component.jsonved ZIP-roten og holde alle veier i slekt. - Kjør inspeksjon først. Installatøren tar arkiv på 500 oppføringer og 25 MB ekstrahert; sikkerhetsvalidering legger til uavhengige grenser.
- Bekreft forventet SHA-256 og pakkesignatur i utgivelsesprosessen.
- Installer i en versjonsmappe. Aldri muta den installerte versjonen på plass.
- Gi eiendomsmigrasjoner for å bryte skjemaendringene og bevare ukjente kompatibilitetsfelt.
- Åpne komponenten i et utkast, kjøre hver stat/visning / persona fixture og publisere gjennom styring.
- Rollback aktiverer den tidligere immutable komponenten/dokument frigivelse; behold dets reproducabilitet bevis.
Bevis forlengelsen på samme frigjøring 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
Kildeporter er nødvendig, ikke tilstrekkelig. Legg til database/innvandring, ekte nettlesere visuelt, identitetsleverandør, autorisasjon-isolering, tilgjengelighet, ytelse, kø / krone, post/attachment, sikkerhetskopierings - og utplasseringsbevis for den samme immutable frigivelse hash. Ukjent nødvendige bevis må mislykkesutgivelsen.
- Enhet: skjema, sanisering, DTO form, betingelser, migrasjoner og skrivne feil.
- Kontrakt: lasting/tomm / feil/lykker, modenhet, spor, bindinger og en-formidler paritet.
- Nettleser: tastatur, fokus, semantikk, RTL, zoom/recflow, redusert bevegelse og hvert pausepunkt.
- Sikkerhet: tverrarbeidssonder, smidd handling, pakkeangrep og forhåndsvisning av spoofing.
- Operasjoner: varig fremgang, lauv/return, stopp / forsøk på å gjenbruke eller planlegge hjerterytmen og tilbakerulling.
Feilsøk etter tilstand og korrelasjon ID
| Tilstand | Hva skal jeg gjøre |
|---|---|
| Tilgang | Be om den navngitte funksjonen. Skjult UI er bekvemmelighet; bakstykket alltid håndhever det. |
| Validering | Åpne den rapporterte siden/node / feltet, rett det og kjør deretter om før. |
| Konflikt | Last den siste revisjonen på nytt, sammenlikn endringer og bruk med vilje. Du må aldri overskrive det. |
| Frakoblet / reprøvbar | Hold utkastet, gjenopprett tilkoblingsenhet, prøv igjen gjennom handlingen og verifisere holdbar jobbtilstand. |
| Dødlig / utilgjengelig | Kopier korrelasjons-ID og tidsstempler for støtte. Aldri lim inn hemmeligheter eller privat unntak tekst. |
| Publisering mislykkes | Inspeksjon av forflytning/jobbutgang, reprøv bare omprøves stadier eller rull tilbake til den siste sunne utgivelsen. |
| SCIM 401/403 | Bekreft endepunkt/arbeidsrom, bæretegn, aktivert tilstand og rotasjon; bruk aldri en nettleserøktskapsler. |
| Kunnskap er stabilt | Kontroller lokalisering/Juster i Hjelpesenteret, inspisere deretter cache-ugyldiggjøring og den rene lokale ruten. |
Denne guiden er print- ready. Bruk Skriv ut → Lagre som PDF for en kontrollert offline kopi.