Tahu apa yang dimiliki Studio
Portal Studio memiliki shell yang menghadap pelanggan: Halaman, penempatan komponen, tanda tangan, perilaku responsif, navigasi, footer, presentasi identitas, perjalanan tiket dan rilis. Pusat Bantuan berisi bahasa, kategori, dan isi artikel. Studio mengkonsumsi konten itu melalui jembatan yang dilindungi; ini tidak pernah menciptakan toko artikel kedua.
kesiapan lengkap sebelum membangun dalam-dalam
- Buka Portal Studio→Mulai→Kesadaran.
- Konfirmasikan alamat Canonical Portal dan buka dalam tab terpisah.
- Atur logo, ikon peramban, ikon sentuh, gambar sosial, dan warna tema.
- Konfirmasi Bahasa-bahasa Pusat Bantuan; ubah otoritas bahasa di Pusat Bantuan, bukan Studio.
- Atur navigasi dan footer perusahaan global.
- Pilih sebuah perjalanan tiket dan konfigurasi setidaknya satu bentuk permintaan.
- Jaga setidaknya satu tanda aman dalam metode aktif dan meninjau penemuan identitas.
- Jalankan Kualitas dan buat jabat tangan pratilik yang ditandatangani.
- Buat rilis pertama yang diatur setelah setiap butir blocking jelas.
Persentase kesiapan dihitung dari data area kerja yang disimpan dan keadaan pratinjau. Memilih rute butir langsung ke panel pemiliknya.
Bangun halaman dan daerah yang dapat digunakan ulang
- Buka Bangun Halaman → dan pilih suatu halaman sistem yang dilindungi atau buat sebuah laman gubahan.
- Atur rute, judul, mode akses dan perilaku lokal. Rute sistem yang dilindungi tidak dapat dihapus.
- Buka Komponen, filter oleh pekerjaan atau kedewasaan, dan menempatkan komponen dalam slot yang kompatibel.
- Gunakan inspektur untuk isi, penampilan, pengikatan, visibilitas dan aksesibilitas.
- Gunakan pola yang dapat digunakan ulang untuk struktur yang berulang; jaga organisasi atau perbedaan merek dalam variantika.
- Simpan draft dan latihan loading, kosong, error, tamu dan sinyal-dalam keadaan di pratilik.
Pratilik perjalanan nyata, bukan satu layar bahagia
- Pilih dukungan tamu, menandatangani tiket, penagihan perawatan, organisasi atau pengetahuan handoff.
- Bertukar personas, organisasi, peran dan bahasa Pusat Bantuan.
- Inspeksi ponsel, besar mobile, tablet, laptop, desktop, lebar dan ultrawide breakpoint.
- Periksa warisan, overridden dan nilai reset; hindari duplikasi breakpoint yang tidak perlu.
- Jalankan papan tik, RTL, reduced- gerak, memuat, kosong, tidak tersedia dan hak negara.
- Gunakan Lab Uji untuk aksesibilitas, muatan, rute, pengikatan dan perender penemuan sebelum ulasan.
Operate a Zendesk-level Bantuan Pusat tanpa isi duplikat
- Buat kategori, bagian, artikel, terjemahan, lampiran, dan templat dalam Pusat Bantuan.
- Aktifkan bahasa di sana; siput lokal, pencarian, feed, SEO dan artikel krom mengikuti otoritas yang sama.
- Di Studio, pencarian pengetahuan tempatan, jaringan sumber daya kategori, feed, akordion topik, artikel, tabel isi, umpan balik, terkait dan komponen sebelumnya / berikutnya.
- Atur tampilan, populer dan baru-baru ini; gunakan saran kontekstual dalam arus tiket.
- Pratilik hasil-tidak, artikel panjang, lampiran, umpan balik, watch / subscription dan handoff tiket.
- Verifikasi rute lokal yang bersih, kanonikal / pantulan, data terstruktur dan cache invalidasi setelah publikasi.
Atur sinyal-dalam aman
- Buka Identitas & organisasi→Identitas dan paling tidak satu tanda-di jalur yang diaktifkan.
- Pilih metoda baku, kebijakan pendaftaran, durasi sesi, SSO-Domain penegakan dan penemuan perilaku.
- Tambahkan penyedia dengan ruas routing visual: tipe, domain, prioritas, presentasi, diaktifkan dan diverifikasi keadaan. Rahasia tetap dalam subsistem identitas.
- Untuk SCIM, aktifkan provisioning, salin secara tepat area kerja titik akhir dan putar token. Simpan satu-waktu token di IDP.
- Peta menyatakan dan organisasi keanggotaan, kemudian uji menciptakan, memperbarui, anggota kelompok dan penonaktifan dengan penyewa tes.
- Tamu yang paling terkenal, pelanggan, delegasi dan negara-negara terblokir sebelum publikasi.
Atur lengkap perjalanan dukungan
- Pilih bentuk langsung, wizard, pencarian-pertama, hub atau service-desk entry.
- Buat bentuk permintaan yang dinamai, penuh versi dengan bagian dan label ruas yang dapat diakses.
- Membangun kondisi visual, routing, SLA dan langkah persetujuan; canggih JSON adalah untuk meninjau pengembang hanya perubahan.
- Atur daftar, detail, benang, timeline, lampiran, persetujuan, SLA dan balas permukaan.
- Uji pencarian tamu, menandatangani permintaan, visibilitas organisasi, upload kegagalan, pemberitahuan email dan defleksi pengetahuan.
- Simpan draft; hanya terbitkan setelah adaptor rute dan jalur pemberitahuan melewati preflight.
Pindahkan melalui rilis diatur
- Jalankan validasi dan Lab Tes. Perbaiki memblokir temuan; catat peringatan yang diijinkan dengan konteks.
- Tambahkan catatan rilis dan review permintaan. Mengulangi komentar pada path halaman / titik stabil.
- Pendatang memeriksa diff, perjalanan pratilik, perubahan izin dan bukti.
- Mengpublikasi atau menjadwalkan melalui latar belakang pekerja, meninggalkan Studio tidak membatalkan pekerjaan yang dapat dipertahankan.
- Perhatikan perkembangan, kesehatan dan ID korelasi. Berhenti / coba lagi hanya dari kontrol pekerjaan.
- Verifikasi rute kritis, identitas, tiket dan pengetahuan. Kembali ke rilis sebelum dapat diubah bila diperlukan.
| Kapasyability | Tujuan |
|---|---|
| Tilik / Sunting | Inspeksi atau perubahan draf tanpa otoritas rilis. |
| Ulasan / Perpotongan | Memisahkan umpan balik dan persetujuan dari otoritas. |
| Jadwal / Publikasikan / Rollback | Kontrol produksi independen. |
| Identitas / SCIM / Migrasi / Komponen / Diagnostik | Batasi operasi spesialis sensitif. |
Migrasi dengan bukti dan jalan kembali
- Pilih cetak biru penyedia dan buat suatu run kering.
- Ulasan yang ditemukan, nilai-nilai yang belum dipetakan, jumlah konten dan tangkapan paritas visual.
- Lengkap pemetaan aman dan rerun diff terstruktur.
- Terapkan ke draft, comending counts dan pratinjau setiap perjalanan yang dilindungi.
- Rekam penerimaan yang resmi; jangan menimpa rilis saat ini diterbitkan selama impor.
- Terbitkan melalui pemerintahan dan tetap laporkan migrasi, rilis ID dan titik rollback bersama-sama.
Panjangkan kontrak, bukan contoh
Ekstensi yang aman mendaftarkan tipe komponen dan skema yang stabil, mendeklarasikan perizinan dan kebutuhan data, merender melalui kompiler kanonikal, dan persediaan deterministik fixtures / tests. Jangan kueri tabel sewenang-wenang, suntikkan penyunting JavaScript ke dalam Portal publik, membuat repositori artikel lain, atau bypass gerbang rilis.
Dokumen Portal
Halaman berisi node stabil, slot, properti, binding, overrides responsif, kondisi dan metadata aksesibilitas.
Registri Komponen
Satu kontrak feed Studio, kompiler, dokumentasi, migrasi dan kedewasaan cek.
Registri Sumber Data
Allowlisted, read-only, permision- scoped DTO mengganti sewenang-wenang SQL atau aksi dinamis.
Satu renderer
Pratilik dan pembagian saham publik kompilasi, sanitasi, anggaran dan negara-negara waktu jalan.
Tentukan suatu paket komponen
Gunakan huruf kecil ID namespace dan versi semantik. Siapkan nama properti kompatibilitas yang ditampilkan karena pemeriksaan paket dan validasi keamanan melakukan pemeriksaan independen.
{
"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}
}
Bentuk node
{
"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 tetap stabil di seluruh edits dan migrasi.
- Properti menolak ruas yang tidak dideklarasikan dan tidak aman HTML.
- Setiap tampilan data-terikat mendefinisikan pemuatan, kosong, izin dan keluaran galat retryable-.
- Komponen kontainer menamakan slot mereka; daun tidak dapat menerima anak-anak sewenang-wenang.
- Mark kedewasaan jujur: blok perencanaan, beta memperingatkan, GA membutuhkan bukti penuh.
Gunakan permissi- aman DTOs
- Pilih ID bertitik-titik yang ada seperti
tickets.mine,knowledge.featuredataucustomer.profile. - Bid hanya bidang dideklarasikan dengan DTO verdinged nya. Sumber tidak diketahui gagal dengan
data_source.unknown. - Pass already-authorted Portal context; jangan pernah terima area kerja / identitas pelanggan dari properti yang tidak terpercaya.
- Batas daftar dijepit ke1–100 Normalize pagination, lokal dan nilai pencarian.
- Jika sumber baru tidak dapat dihindari, tambahkan definisi stabil, pemetaan yang aman, hak akses, perilaku kosong dan fixture pratilik bersama-sama.
{
"success": true,
"source": "tickets.mine",
"contract_version": 1,
"items": [
{"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
]
}
Tetap di dalam batas kepercayaan
| Batas | Perilaku yang diperlukan |
|---|---|
| Area Kerja | Selesaikan dari host / route / session terpercaya, lalu periksa setiap baca dan tulis sebelum eksekusi. |
| HTML | Gunakan sanitzer / parser allowlist. Jangan pernah konkatenate atribut yang tidak terpercaya, URLs, CSS atau naskah. |
| Pratilik | Perlu jendela sumber same- asal, versi saluran ditandatangani dan nonce. Abaikan pesan yang tidak diminta. |
| Identitas | Simpan rahasia di luar dokumen. SCIM adalah beruang - dikonfirmasi, sesionless dan ruang kerja-terikat. |
| Paket | Tolak traversal, path absolut, link / berkas khusus, arsip terlalu besar, checksum / signature tidak cocok dan izin yang tidak diketahui. |
| Galat | Kembalikan kode stabil, pesan aman, kemampuan ulang, perbaikan dan ID korelasi; log privasi pengecualian server-side. |
| Pengetahuan | Baca via HelpCenterBridge. Jangan pernah menulis atau menduplikasi artikel "Pusat Bantuan" dalam sebuah ekstensi. |
{
"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"}
}
}
Inspeksi, instal dan upgrade secara atom
- Taruh
component.jsondi akar ZIP dan menjaga setiap jalur relatif. - Jalankan inspeksi pertama. 500 masukan dan 25 MB diekstrak; validasi keamanan menambah batas independen.
- Verifikasi sha- yang diharapkan 256 dan tanda tangan paket dalam proses rilis.
- Pasang ke direktori berversi. Jangan pernah mutasikan versi yang terpasang di tempat.
- Menyediakan migrasi properti untuk melanggar perubahan skema dan mempertahankan bidang kompatibilitas yang tidak diketahui.
- Buka komponen dalam draft, jalankan setiap konfigurasi / tampilan negara / persona dan terbitkan melalui pemerintahan.
- Rollback mengaktifkan rilis komponen / dokumen immutable sebelumnya; pertahankan bukti reproduksinya.
Buktikan ekstensi pada hash rilis yang sama
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
Gerbang sumber diperlukan, tidak cukup. Lampirkan basis data / migrasi, visual peramban, penyedia identitas, otorisasi, aksesibilitas, performa, antrian / cron, surat / lampiran, backup / mengembalikan dan penyebaran bukti ke hash rilis yang tak dapat diubah. Bukti yang tak dikenal harus gagal dilewatkan.
- Unit: skema, sanitasi, bentuk DTO, kondisi, migrasi dan kegagalan mengetik.
- Kontrak: loading / empty / error / sukses, kedewasaan, slot, binding dan satu-renderer parity.
- Peramban: papan ketik, fokus, semantik, RTL, zoom / reflow, mengurangi gerak dan setiap breakpoint.
- Keamanan: probe area kerja, aksi palsu, serangan paket, pemintalan pratilik dan kebocoran rahasia.
- Operasi: kemajuan tahan lama, tinggalkan / kembali, stop / coba lagi / lanjutkan, penjadwalan detak jantung dan rollback.
Masalah yang dilakukan oleh ID negara dan korelasi
| Keadaan | Apa yang harus dilakukan |
|---|---|
| Izin | Permintaan kemampuan bernama. |
| Validasi | Buka halaman yang dilaporkan / titik / field, perbaiki itu, lalu jalankan ulang sebelum penerbangan. |
| Konflik | Muat ulang revisi terbaru, bandingkan perubahan dan menerapkan kembali secara sengaja. Jangan paksa menimpa. |
| Luar jaringan / dapat dicoba lagi | Pertahankan draft, kembalikan konektivitas, coba lagi dan verifikasi keadaan pekerjaan yang dapat dipertahankan. |
| Fatal / tidak tersedia | Salin ID korelasi dan penanda waktu untuk dukungan. Jangan paste rahasia atau teks eksepsi pribadi. |
| Gagal menerbitkan | Inspeksi keluaran penerbangan / kerja, coba ulang tahap yang dapat diulang, atau kembali ke rilis sehat terakhir. |
| SCIM 401/403 | Konfirmasi titik akhir / area kerja, tanda tangan, keadaan dan rotasi aktif; jangan pernah gunakan cookie sesi peramban. |
| Pengetahuan adalah basi | Verifikasi lokal / publikasi di Pusat Bantuan, kemudian memeriksa invalidasi cache dan rute yang bersih lokal. |
Panduan ini sudah siap. Gunakan Cetak→Simpan sebagaiPDFuntuk sebuah salinan luring yang dikendalikan.