Tahu apa yang Studio miliki
Portal Studio memiliki shell pelanggan-kegagalan: halaman, penempatan komponen, token merek, perilaku responsif, navigasi, footer, presentasi identitas, perjalanan tiket dan rilis. Pusat Bantuan memiliki bahasa, kategori, bagian dan konten artikel. Studio mengkonsumsi konten tersebut melalui jembatan yang dilindungi; tidak pernah menciptakan toko artikel kedua.
Kesiapan lengkap sebelum membangun dalam
- Buka Portal Studio → Mulai → Kesiapan.
- Konfirmasi alamat Portal Kanun dan membukanya dalam tab terpisah.
- Diset logo, ikon peramban, ikon sentuh, gambar sosial dan warna tema.
- Bahasa Pusat Bantuan Konfirmasi; mengubah otoritas bahasa di Pusat Bantuan, bukan Studio.
- Buatlah navigasi dan pijakan perusahaan global.
- Áifashi memilih perjalanan tiket dan mengatur setidaknya satu formulir permintaan.
- Setidaknya jaga satu metode masuk aman aktif dan tinjau penemuan identitas.
- Kualitas Jalankan dan menetapkan jabat tangan pratinjau yang ditandatangani.
- Ciptakan rilis pertama yang diatur setelah setiap item bloking jelas.
persentase kesiapan dihitung dari data dan keadaan pratinjau ruang kerja yang tersimpan. Memilih rute item langsung ke panel sendiri.
Bina halaman dan bagian yang dapat digunakan kembali
- Buka Binaan → Halaman Wakevis dan pilih halaman sistem terlindungi atau buat halaman tersendiri.
- Tetapkan rute, judul, mode akses dan perilaku lokal. Jalur sistem yang dilindungi tidak dapat dihapus.
- Buka Komponen, filter oleh pekerjaan atau kematangan, dan menempatkan komponen dalam slot yang kompatibel.
- Dia menggunakan inspektur untuk konten, penampilan, pengikatan, kejelasan dan aksesibilitas.
- Una urando menggunakan pola yang dapat digunakan kembali untuk struktur berulang; menjaga perbedaan organisasi atau merek dalam varian.
- Simpan draf dan latihan memuat, kosong, kesalahan, tamu dan signed-in negara bagian di pratinjau.
Perjalanan nyata prapaparan, tidak satu layar bahagia
- Kau pilih dukungan tamu, tiket masuk, perawatan tagihan, organisasi atau pengetahuan.
- Bahasa Pusat Peran dan Bantuan.
- Periksa seluler, mobile besar, tablet, laptop, desktop, luas dan ultralebar breakpoint.
- Pemeriksaan esterolfach diwarisi, nilai ditindih dan reset; hindari duplikasi titik putus yang tidak diperlukan.
- ¡Jalankan keyboard, RTL, pengurangan-mosi, memuat, kosong, tidak tersedia dan izin menyatakan.
- Lab Tes Penggunaan Kebolehcapaian, muatan, rute, binding dan temuan penerap sebelum review.
Operate a Zendesk-level Pusat Bantuan tanpa konten duplikat
- Buat kategori, bagian, artikel, terjemahan, lampiran dan templat di dalam Pusat Bantuan Keharyapatihan.
- Bahasa - bahasa di sana; siput lokal, pencarian, feed, SEO dan artikel krom mengikuti wewenang yang sama.
- Dalam Studio, letakkan pencarian pengetahuan, kategori/grid sumber, suapan, topik akordion, artikel, jadual kandungan, komen, komponen berkaitan dan terdahulu/seterusnya.
- Konfigura yang ditampilkan, populer dan feed terbaru; gunakan saran kontekstual dalam arus tiket.
- Pratilik no-results, artikel panjang, lampiran, umpan balik, jam tangan/subskripsi dan tiket handoff.
- Auksikasi rute lokal bersih, kanonik/hreflang, data terstruktur dan invalidasi cache setelah publikasi.
Atur sign-in aman
- Buka Organisasi Identiti & Identiti IB → Identitas Dan menjaga setidaknya satu jalur masuk memungkinkan.
- LUCOS Pilih metode baku, kebijakan pendaftaran, durasi sesi, perilaku SSO_-domain dan penemuan.
- Tambah penyedia-provider dengan medan routing visual: tipe, domain, prioritas, presentasi, diaktifkan dan diverifikasi negara. rahasia tetap berada dalam subsistem identitas.
- Untuk SCIM, aktifkan penyediaan, salin titik akhir ruang kerja yang tepat dan putar tokennya. Simpan token satu kali di IDP.
- Klaim Peta dan keanggotaan organisasi, kemudian menguji pembuatan, pembaruan, keanggotaan kelompok dan deaktivasi dengan penyewa tes.
- Tamu prapaparan, pelanggan, delegasi organisasi dan blokir negara sebelum publikasi.
Membentuk perjalanan dukungan yang lengkap
- Pilih bentuk langsung, penyihir, pencarian pertama, hub atau layanan-desk entri.
- Vaksion membuat formulir permintaan yang diberi versi dengan seksi dan label lapangan yang dapat diakses.
- Kondisi visual, routing, SLA dan langkah persetujuan; JSON lanjutan hanya untuk perubahan pengembang yang ditinjau.
- Atur daftar, detail, benang, garis waktu, lampiran, persetujuan, SLA dan permukaan balasan.
- Pencarian tamu tes , permintaan signed-in, visibilitas organisasi, gagal mengunggah, pemberitahuan email dan defleksi pengetahuan.
- Simpan draf; publikasikan hanya setelah adapter rute dan notifikasi jalur pas preflight.
Bergerak melalui rilis diatur
- Ajukan peringatan yang diizinkan dengan konteks.
- Tambahkan nota rilis dan minta penilaian. Penilai komen pada laluan halaman/nod stabil.
- Ahli astroversi memeriksa diff, perjalanan pratinjau, perubahan izin dan bukti.
- \"Terbitan atau jadwal melalui pekerja latar belakang\" \"Membiarkan Studio tidak membatalkan pekerjaan yang tahan lama.\"
- Jangan coba-coba hanya dari kontrol pekerjaan.
- Ketahui rute kritis, identitas, tiket dan pengetahuan.
| Kemampuan berbakat | Tujuan |
|---|---|
| Pandangan / Sunting | Periksa atau mengubah draf tanpa otoritas pembebasan. |
| Ulasan / Permintaan | Umpan balik yang terpisah dan persetujuan dari penulis. |
| Jadwal / Terbitan / Guling Balik | Kontrol produksi independen. |
| Identity / SCIM /Memigrasikan / Komponen / Diagnostik | Operasi spesialis sensitif terbatas. |
Pindah dengan bukti dan jalan kembali
- Pilih cetakan biru penyedia dan buatlah lari kering.
- Tinjau pengaturan yang ditemukan, nilai yang belum dipetakan, jumlah isi dan penangkapan paritas visual.
- Peta aman dan jalankan ulang diff terstruktur.
- Terapkan untuk draf, hitungan perdamaian dan pratinjau setiap perjalanan yang dilindungi.
- Catatan yang disahkan; tidak pernah menimpa keluaran yang diterbitkan saat impor.
- Árford menerbitkan melalui pemerintahan dan menyimpan laporan migrasi, rilis ID dan titik rollback bersama-sama.
Kontrak Extend, bukan template
Sebuah ekstensi aman mendaftarkan tipe komponen dan skema yang stabil, menyatakan izin dan kebutuhan data, dirender melalui kompiler kanonik, dan persediaan fixtures/tes deterministik. Jangan tanya tabel arbitrari, inject editor JavaScript ke dalam Portal publik, membuat repositori artikel lain, atau bypass gerbang rilis.
Dokumen Portal v2
Halaman mengandung node, slot, properti, pengikatan, pembatalan responsif, kondisi dan data meta aksesibilitas.
Pendaftar Komponen Yos
Satu kontrak schedual Studio, kompiler, dokumentasi, migrasi dan pemeriksaan kematangan.
Pendaftaran Sumber Data
DTO yang terdaftar, baca-sahaja, terskop-izin menggantikan aksi SQL atau dinamis yang sewenang-wenang.
ERender
View dan keluaran publik berbagi kompilasi, sanitisasi, anggaran dan negara runtime.
Takrifkan paket komponen
Use a huruf kecil namespaced ID dan versi semantik. Paskan kedua keserasian nama properti 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 kin
{
"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 melintasi suntingan dan migrasi.
- Properti-propesis flahero menolak bidang yang tidak dideklaraskan dan HTML yang tak aman.
- Setiap pandangan data-bound mendefinisikan pemuatan, kosong, izin dan keluaran retryable-error.
- Komponen bekas yang nama slotnya; daun tidak dapat menerima anak - anak yang sewenang - wenang.
- Kedewasaan yang matang secara jujur: blok terencana, beta memperingatkan, GA membutuhkan bukti penuh.
Use author-safe DTOs
- WHO Pilih ID yang ada seperti
tickets.mine,knowledge.featuredOR atau ORANGcustomer.profile. - Medan Bind hanya dinyatakan oleh DTO versinya. Sumber tak dikenal gagal dengan
data_source.unknown. - Kerahkan konteks Portal yang sudah disahkan; jangan pernah terima identitas ruang kerja/kebiasaan dari suatu properti yang tidak dipercaya.
- Batas daftar yang dijepitkan ke1–100 Normalisasi paginasi, lokalitas dan nilai pencarian.
- Jika sumber baru tidak dapat dihindari, tambahkan definisi stabilnya, pemetaan aman, izin, perilaku kosong dan perbaikan pralihat bersama-sama.
{
"success": true,
"source": "tickets.mine",
"contract_version": 1,
"items": [
{"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
]
}
Tetap tinggal di dalam batas kepercayaan
| Sempadan | Perilaku yang diperlukan oleh perilaku yang tidak wajar |
|---|---|
| Ruang Kerja GNOME | ¡Osolve dari host/route/session yang dipercaya, kemudian skop setiap baca dan tulis sebelum eksekusi. |
| HTML | Gunakan Portal pembersih/pemaisar daftar ijin. Jangan pernah mengkonsentrasikan atribut yang tidak dipercaya, URLs, CSS script atau skrip. |
| Pratonton | Memerlukan jendela sumber berorigin-sama, versi saluran bertanda dan nonce. Abaikan pesan yang tidak dicadangkan. |
| Identitas | Keep secrets outside documents. SCIM is bearer-authenticated, sessionless and workspace-bound. |
| Paket-paket Ubuntu | Icardiq Tolak traversal, jalur mutlak, berkas link/special, oversize archive, checksum/signature tidak cocok dan izin tidak diketahui. |
| Kesalahan | Kembalikan kode stabil, pesan aman, retryability, remediasi dan korelasi ID; log private exceptions server-side. |
| Pengetahuan tentang pengetahuan | Bacalah melalui HelpCenterBridge. Jangan pernah membuat atau duplikat 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"}
}
}
Periksa, pasang dan tatar secara atom
- Zava
component.jsonDi akar ZIP dan menjaga setiap jalur relatif. - Pertama-tama lakukan pemeriksaan. 500 Entri dan 25 MB Diekstraksi; validasi keamanan menambah batasan independen.
- Membuktikan SHA-yang diharapkan 256 Dan tanda tangan paket dalam proses rilis.
- Pasang ke direktori versi. Jangan pernah memutasikan versi terpasang di tempat.
- Siakevikasi properti migrasi untuk melanggar perubahan skema dan menjaga keserasian bidang yang tidak diketahui.
- CONCAC Open komponen dalam draf, jalankan setiap negara/viewport/persona fixture dan publikasi melalui governance.
- Coulback Cowback mengaktifkan komponen/dokumen yang tidak dapat diubah sebelumnya; mempertahankan bukti kereproduksiannya.
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 hablur diperlukan, tidak mencukupi. Lampirkan basis data/migrasi, visual ril-browser, identitas-provider, otorisasi-isolasi, aksesibilitas, kinerja, antrian/kron, surat/lampiran, cadangan/pengisian dan bukti ke hash pelepasan yang tak dapat diubah yang sama. Bukti yang tidak diketahui harus gagal rilis.
- Unit: skema, sanitisasi, bentuk DTO, kondisi, migrasi dan kegagalan tipe.
- Kontrak: pemuatan/pengisian/kekosongan/kesalahan/sukses, kematangan, slot, pengikatan dan paritas satu-pengganti.
- Pelungsur: keyboard, fokus, semantik, RTL, zoom/reflow, pengurangan gerak dan setiap breakpoint.
- Keamanan: pesawat penjelajah lintas-ruang kerja, tindakan palsu, serangan paket, spoofing pratinjau dan kebocoran rahasia.
- Operasional: kemajuan tahan lama, cuti/kembali, stop/retry/resume, detak jantung penjadwal dan rollback.
Pencari masalah oleh negara dan korelasi ID
| Negara Bagian | Apa yang harus dilakukan |
|---|---|
| Hak akses | Permintaan kemampuan yang diberi nama. UI tersembunyi adalah kenyamanan; backend selalu menegakkannya. |
| Validasi | Buka halaman/node/field yang dilaporkan, perbaiki, lalu jalankan ulang praflight. |
| Konflik | Buat ulang revisi terbaru, bandingkan perubahan dan ulangi dengan sengaja. Jangan paksa menimpa. |
| Luar talian / boleh dicuba semula | Jaga draf, memulihkan konektivitas, coba lagi melalui tindakan dan verifikasi keadaan kerja tahan lama. |
| AYA / Tidak Ada | Tak pernah menyimpan rahasia atau teks pengecualian pribadi. |
| Gagal menerbitkan | Periksa keluaran praflight/job, coba lagi hanya tahap yang dapat dicoba, atau kembali ke rilis terakhir sehat. |
| SCIM 401/403 | Konfirmasi titik akhir/ruang kerja, token pembawa, keadaan dan rotasi yang diaktifkan; jangan pernah gunakan kuki sesi peramban. |
| Pengetahuan tentang ilmu pengetahuan adalah basi | Overifikasi lokalitas/penyublikasi di Help Center, kemudian inspeksi cache invalidation dan clean localized route. |
Panduan ini sudah siap cetak. Gunakan → Cetak Simpan sebagai PDF untuk salinan offline yang terkendali.