Weet wat Studio bezit
Portal Studio bezit de klantgerichte shell: pagina's, componentenplaatsing, merktekens, responsief gedrag, navigatie, footer, identiteitspresentatie, ticketreizen en releases. Het Help Center bezit talen, categorieën, secties en artikelinhoud. Studino verbruikt die inhoud via een beschermde brug; het creëert nooit een tweede artikelenopslag.
Volledige gereedheid voor het diep bouwen
- Openen Portal Studio → Start → Klaarheid.
- Bevestig het canonieke poortadres en open dit in een apart tabblad.
- Stel het logo, browser pictogram, touch picton, sociale afbeelding en themakleur in.
- Bevestig Help Center talen; verander taal autoriteit in Helpcentrum, niet Studio.
- Navigatie en de wereldwijde ondernemingsvoetballer instellen.
- Kies een ticketreis en configureer ten minste één aanvraagformulier.
- Houd ten minste één veilige inlogmethode actief en beoordeel identiteitsvinding.
- Voer Kwaliteit uit en stel de ondertekende preview handshake vast.
- Maak de eerste gecontroleerde release nadat elk blokkerend item duidelijk is.
Het paraatheidspercentage wordt berekend op basis van opgeslagen werkruimtegegevens en previewstatus. Het selecteren van een item routes direct naar het eigen paneel.
Pagina's en herbruikbare secties bouwen
- Openen Bouwen → Pagina's en selecteer een beschermde systeempagina of maak een aangepaste pagina.
- Stel de route, titel, toegangsmodus en locale gedrag in. Beschermde systeemroutes kunnen niet worden verwijderd.
- Openen Componenten, filteren op taak of volwassenheid en plaats een component in een compatibele slot.
- Gebruik de inspecteur voor inhoud, uiterlijk, binding, zichtbaarheid en toegankelijkheid.
- Gebruik herbruikbare patronen voor herhaalde structuren; houd organisatie- of merkverschillen in varianten.
- Sla de ontwerp- en oefenbelasting, leeg, fout, gast-en ingelogde staten in preview.
Voorbeeld echte reizen, niet één gelukkig scherm
- Kies gastenondersteuning, ingetekend ticket, facturatie zorg, organisatie of kennis overdracht.
- Wissel van personages, organisatie, rol en Help Center taal.
- Inspecteer mobiele, grote mobiel, tablet, laptop, desktop, brede en ultrabrede breekpunten.
- Controleer erfelijke, overridde en reset waarden; vermijd onnodig breakpoint duplicatie.
- Start toetsenbord, RTL, verminderde beweging, laden, leeg, niet beschikbaar en toestemming staat.
- Gebruik Test Lab voor toegankelijkheid, lading, route, binding en render bevindingen vóór beoordeling.
Een Zendesk-niveau Helpcentrum bedienen zonder dubbele inhoud
- Creëer categorieën, secties, artikelen, vertalingen, bijlagen en templates in Hulpcentrum.
- Taal daar inschakelen; gelokaliseerde kogels, zoeken, feeds, SEO en artikel chroom volgen dezelfde autoriteit.
- Plaats in Studio kennis zoeken, categorie/bron rasters, feeds, topic accordeon, artikel, inhoudstabel, feedback, gerelateerde en vorige / volgende componenten.
- Configureer aanbevolen, populaire en recente feeds; gebruik contextuele suggesties in ticketstromen.
- Voorbeeld geen resultaten, lange artikelen, bijlagen, feedback, horloge / abonnement en ticket overdracht.
- Controleer schone lokale routes, canonieke/hreflang, gestructureerde data en cache ongeldig na publicatie.
Inloggen veilig instellen
- Openen Identiteit & organisaties → Identiteit en minstens één aanmeldpad ingeschakeld houden.
- Kies standaardmethode, registratiebeleid, sessieduur, SSO-domein handhaving en ontdekking gedrag.
- Voeg providers toe met visuele routeringsvelden: type, domeinen, prioriteit, presentatie, ingeschakelde en geverifieerde staat. Geheimen blijven in het identiteitssubsysteem.
- Voor SCIM, inschakelen provisioning, kopieer het exacte werkblad eindpunt en draai de token. Bewaar de eenmalige token in de IdP.
- Kaart claims en organisatie lidmaatschap, vervolgens testen maken, bijwerken, groep lidmaatschap en deactivering met een test huurder.
- Preview gast, klant, gedelegeerde organisatie en geblokkeerde staten voor publicatie.
Stel de volledige ondersteuningsreis samen
- Selecteer direct formulier, wizard, zoek-eerste, hub of service-desk ingang.
- Maak een vernoemd, geversieerd aanvraagformulier met secties en toegankelijke veldlabels.
- Bouw visuele condities, routering, SLA en goedkeuringsstappen; geavanceerde JSON is alleen voor beoordeelde wijzigingen van de ontwikkelaar.
- Configureren lijst, detail, draad, tijdlijn, bevestiging, goedkeuring, SLA en antwoord oppervlakken.
- Test gastenopzoeken, ingelogde verzoeken, organisatie zichtbaarheid, upload falen, e-mail notificatie en kennisverlegging.
- Sla een concept op; publiceer alleen na de routeadapter en het meldingspad voor vlucht.
Door een gecontroleerde release gaan
- Voer validatie en testlab. Fix blokkerende bevindingen; bevestig toegestane waarschuwingen in context.
- Voeg release notes en aanvraag beoordeling. Recensies commentaar op stabiele pagina / node paden.
- De ontwikkelaars inspecteren de diff, preview reizen, toestemming wijzigingen en bewijs.
- Publiceren of schema via de achtergrond werknemer. Vertrekken Studio annuleer geen duurzame baan.
- Let op de voortgang, gezondheid en correlatie ID. Stop/rust alleen van functiecontrole.
- Controleer kritieke routes, identiteit, tickets en kennis. Rol terug naar een onveranderlijke voorafgaande release indien nodig.
| Vermogen | Doel |
|---|---|
| Beeld / Bewerken | Inspecteer of wijzig ontwerpen zonder toestemming. |
| Evaluatie / goedkeuring | Aparte feedback en goedkeuring van auteurschap. |
| Schema / Publiceren / Terugrollen | Onafhankelijke productiecontrole. |
| Identiteit / SCIM / Migreren / Componenten / Diagnostiek | Beperk gevoelige specialistische activiteiten. |
Migreren met bewijs en een weg terug
- Selecteer de blauwdruk van de provider en maak een droge run.
- Bekijk ontdekte instellingen, ongemappeerde waarden, content counts en visuele pariteit vangt.
- Volledige veilige mappings en herrun de gestructureerde diff.
- Pas een ontwerp toe, combineer de tellingen en bekijk elke beschermde reis.
- Record geautoriseerde acceptatie; nooit de huidige gepubliceerde release tijdens import overschrijven.
- Publiceer via governance en houd het migratierapport, laat ID- en rollbackpunt samen.
Verleng contracten, geen sjablonen
Een veilige uitbreiding registreert een stabiel componenttype en schema, verklaart machtigingen en gegevensbehoeften, rendert via de canonieke compiler, en levert deterministische armaturen/tests. Niet opvragen willekeurige tabellen, injecteer editor JavaScript in het publieke Portal, maak een ander artikel repository of omzeil de release gate.
Portaaldocument v2
Pagina's bevatten stabiele knooppunten, slots, eigenschappen, bindingen, responsieve overrides, voorwaarden en bereikbaarheidsmetadata.
Componentenregister
Een contract voert Studio, compiler, documentatie, migratie en maturity checks.
Gegevensbronregister
Toegestaan, alleen-lezen, door machtigingen gescoorde DTO's vervangen willekeurige SQL of dynamische acties.
Eén render
Preview en publieke output delen compilatie, sanering, budgetten en runtime staten.
Een onderdeelpakket definiëren
Gebruik een kleine naamruimte ID en semantische versie. Geef beide compatibiliteit eigenschappen weergegeven omdat pakket inspectie en beveiligingsvalidatie uitvoeren onafhankelijke controles.
{
"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}
}
Knoopvorm
{
"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's blijven stabiel bij bewerkingen en migraties.
- Eigenschappen verwerpen zwart veld en onveilig HTML.
- Elke data-gebonden weergave definieert laden, leeg, toestemming en hertryable-error uitvoer.
- Container onderdelen noemen hun slots; bladeren kunnen niet willekeurige kinderen accepteren.
- Mark volwassenheid eerlijk: geplande blokken, beta waarschuwt, GA vereist volledig bewijs.
Toestemmingsveilige DTO's gebruiken
- Kies een bestaande stippel-ID zoals
tickets.mine,knowledge.featuredofcustomer.profile. - Alleen velden die door de geversieerde DTO zijn opgegeven, bind. Onbekende bronnen falen met
data_source.unknown. - Passeer de reeds toegestane Portal-context; accepteer nooit werkruimte/klantidentiteit van een niet vertrouwde eigenschap.
- Lijstlimieten worden geklemd aan1–100. Normaliseren paginatie, locale en zoekwaarden.
- Als een nieuwe bron onvermijdelijk is, voeg dan zijn stabiele definitie, veilige mapping, machtigingen, leeg gedrag en preview armatuur samen.
{
"success": true,
"source": "tickets.mine",
"contract_version": 1,
"items": [
{"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
]
}
Blijf binnen de vertrouwensgrenzen
| Grenzen | Vereist gedrag |
|---|---|
| Werkblad | Oplossen van de vertrouwde host/route/sessie, vervolgens scope elke gelezen en schrijven voor uitvoering. |
| HTML_ | Gebruik de allowlist voor portaalsanering/parser. Concateer nooit niet-vertrouwde attributen, URLs, CSS of script. |
| Voorbeeld | Vereist hetzelfde bronvenster, gesigneerde kanaalversie en nonce. Negeer ongevraagde berichten. |
| Identiteit | Keep secrets outside documents. SCIM is bearer-authenticated, sessionless and workspace-bound. |
| Verpakkingen | Doorkruisen, absolute paden, links/speciale bestanden, oversized archieven, controlesom/handtekening niet in overeenstemming met en onbekende machtigingen. |
| Fouten | Geef stabiele code, veilige boodschap, hertryability, herstel en correlatie ID; log privé uitzonderingen server-side. |
| Kennis | Lees via HelpCenterBridge. Nooit auteurs of dupliceren Help Center artikelen in een 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"}
}
}
Inspecteren, installeren en upgraden atomair
- Zet
component.jsonbij de ZIP-wortel en houd elk pad relatief. - Controleer eerst. De installatie kapt archieven op 500 de vermeldingen en 25 MB extractie; beveiligingsvalidatie voegt onafhankelijke limieten toe.
- Controleer de verwachte SHA-256 en pakketondertekening in het releaseproces.
- Installeer in een map met versie. Mutateer nooit een geïnstalleerde versie op zijn plaats.
- Geef eigenschappenmigraties voor het breken van schema wijzigingen en behoud onbekende compatibiliteit velden.
- Open de component in een concept, voer elke staat/zichthaven/persoonsa armatuur uit en publiceer deze via governance.
- Rollback activeert de voorafgaande onveranderlijke component/document-vrijgave; behoudt het reproduceerbaarheidsbewijs.
Bewijs de extensie op dezelfde release 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
Bronpoorten zijn noodzakelijk, niet voldoende. Voeg database/migratie, real-browser visueel, identiteit-provider, autorisatie-isolatie, toegankelijkheid, prestaties, wachtrij/cron, mail/attachment, backup / restore en implementatie bewijs toe aan dezelfde onveranderlijke release hash. Onbekend vereist bewijsmateriaal moet de release mislukken.
- Eenheid: schema, sanering, DTO-vorm, omstandigheden, migraties en getypte storingen.
- Contract: laad/leeg/fout/succes, looptijd, slots, bindingen en pariteit van één partij.
- Browser: toetsenbord, focus, semantiek, RTL, zoom/reflow, verminderde beweging en elk breekpunt.
- Beveiliging: kruis-werkruimte sondes, vervalste acties, pakketaanvallen, preview spoofing en geheime lekkage.
- Operaties: duurzame vooruitgang, vertrek/terugkeer, stoppen/intreden/hervatten, scheduler hartslag en terugrol.
Problemen oplossen door status- en correlatie-ID
| Staat | Wat te doen? |
|---|---|
| Toestemming | Verzoek de genoemde mogelijkheid. Verborgen UI is gemak; de backend verplicht het altijd. |
| Validatie | Open de gerapporteerde pagina/node/field, corrigeer het en rerun preflight. |
| Conflict | Herlaad de laatste revisie, vergelijk wijzigingen en opnieuw opzettelijk. Nooit force overschrijven. |
| Offline / opnieuw uitproberen | Houd de ontwerp, herstel connectiviteit, opnieuw proberen door middel van de actie en controleren duurzame werkstaat. |
| Fataal / niet beschikbaar | Kopieer de correlatie-ID en tijdstempel voor ondersteuning. Plak nooit geheimen of privé uitzonderingstekst. |
| Publiceren mislukt | Inspecteer preflight/job output, probeer alleen opnieuw te proberen stadia of rol terug naar de laatste gezonde release. |
| SCIM 401/403 | Bevestig eindpunt/werkruimte, token aan drager, staat en rotatie ingeschakeld; gebruik nooit een browsersessiecookie. |
| Kennis is oud | Verifiëren van locale/publication in Help Center, dan inspecteren cache ongeldigheid en de schone gelokaliseerde route. |
Deze handleiding is afdrukklaar. Gebruik Afdrukken → Opslaan als PDF voor een gecontroleerde offline kopie.