スタジオの所有物を知る
Portal Studio は、顧客向けシェル: ページ、コンポーネントの配置、ブランドトークン、レスポンシブな動作、ナビゲーション、フッター、アイデンティティプレゼンテーション、チケットの旅とリリースを所有しています。ヘルプセンターでは言語、カテゴリ、セクション、記事コンテンツを所有していますが、スタジオは保護されたブリッジを通してそのコンテンツを消費します。それは決して第二の記事ストアを作成しません。
深く構築する前に、完全な準備
- 営業部 ポータルスタジオ → スタート → 準備.
- 運河ポータルアドレスを確認し、別のタブで開きます。
- ロゴ、ブラウザのアイコン、タッチアイコン、ソーシャルイメージ、テーマカラーを設定します。
- ヘルプセンターの言語確認、ヘルプセンターで言語権限の変更、スタジオではなく
- ナビゲーションとグローバル企業フッターの設定
- チケットの受け取り方法を選択し、最低1つのフォームに必要事項を記入してください。
- 少なくとも1つの安全なサインイン方法がアクティブに保ち、アイデンティティの発見を見直してください。
- 品質を実行し、署名されたプレビューハンドシェイクを確立します。
- ブロック項目がクリアされると、最初の準拠リリースを作成します。
読みやすさの割合は、保存されたワークスペースのデータとプレビューの状態から計算されます。項目を直接配置パネルに選択します。
ページと再利用可能なセクションの構築
- 営業部 ビルド → ページ 保護されたシステムページを選択するか、カスタムページを作成します。
- ルート、タイトル、アクセスモード、およびロケールの動作を設定します。保護されたシステム・ルートは削除できません。
- 営業部 コンポーネント、仕事か成熟によってろ過し、部品を多用性があるスロットに置きます。
- コンテンツ、外観、バインディング、可視性およびアクセシビリティの検査官を使用します。
- 再使用可能なパターンを使用して、繰り返し構造;組織やブランドの違いをバリアントで保持します。
- プレビューのドラフトとエクササイズロード、空のエラー、ゲストおよび署名付き状態を保存します。
実際の旅をプレビューし、満足のいく画面ではなく
- ゲストサポート、署名付きチケット、請求書作成ケア、組織またはナレッジハンドオフを選択します。
- ペルソナ、組織、役割、ヘルプセンター言語を切り替えます。
- モバイル、大型モバイル、タブレット、ラップトップ、デスクトップ、ワイドで超ワイドなブレイクポイントを調べます。
- 継承された、オーバーライドし、値のリセットをチェックしてください。不要なブレイクポイント重複を避けます。
- キーボード、RTL、減動、ローディング、空、利用できなくなったり、許可状態を実行します。
- アクセシビリティ、ペイロード、ルート、バインディング、レンダラの検索結果については、Test Lab を使用してレビューの前に使用します。
コンテンツの重複なしに Zendesk-level ヘルプセンターを操作する
- カテゴリ、セクション、記事、翻訳、添付ファイル、テンプレートの作成 ヘルプセンター.
- そこに言語を有効にします。ローカライズされたスラグ、検索、フィード、SEO、記事のクロームは同じ権限に従います。
- Studio では、知識検索、カテゴリ/リソースグリッド、フィード、トピックのアコーディオン、記事、コンテンツのテーブル、フィードバック、関連および前次コンポーネント。
- 注目の、人気、最近のフィードの設定。チケットフローにコンテキスト提案を使用します。
- ノーレスト、長い記事、添付ファイル、フィードバック、時計/サブスクリプションおよびチケットのハンドオフをプレビューします。
- きれいなロケールのルート、キャニカル/hreflang、構造化されたデータとキャッシュの無効化を出版物の後で確認して下さい。
サインインを安全に設定する
- 営業部 アイデンティティと組織 → アイデンティティ 少なくとも1つのサインインパスを有効にしておきます。
- デフォルト方法、登録ポリシー、セッションの期間を選択してください。SSO-domain の執行および検出の行動。
- ビジュアルルーティングフィールドにプロバイダを追加します。タイプ、ドメイン、優先順位、プレゼンテーション、有効化および検証された状態。シークレットはアイデンティティサブシステムに滞在します。
- SCIM では、プロビジョニングを有効にし、正確なワークスペースエンドポイントをコピーしてトークンを回転させます。IdP でワンタイムトークンを保存します。
- クレームや組織のメンバーシップをマップし、テストテナントで作成、更新、グループメンバーおよび非アクティブ化をテストします。
- 出版前のゲスト、顧客、委任された組織およびブロックされた状態をプレビューして下さい。
完全なサポートの旅を補う
- 直接フォーム、ウィザード、検索優先、ハブまたはサービスデスクのエントリを選択します。
- セクションとアクセス可能なフィールドラベルで名前付き、バージョンのリクエストフォームを作成します。
- 視覚的な条件、ルーティング、SLAおよび承認のステップを造って下さい;高度 JSON 開発者が変更したことをレビューするだけです。
- リスト、詳細、スレッド、タイムライン、添付ファイル、承認、SLAおよび応答面の構成。
- ゲストの検索、署名付きリクエスト、組織の可視性、アップロード障害、メール通知、ナレッジの欠陥をテストします。
- ドラフトを保存します。ルートアダプタと通知パスパスのプリフライト後にのみ公開されます。
管理されたリリースで移動
- 検証とテストラボを実行します。検索をブロックする修正;許可された警告をコンテキストで確認します。
- リリースノートを追加し、レビューをリクエストします。 レイバーは安定したページ/ノードパスでコメントします。
- 承認者は、差分、プレビューの旅、許可変更および証拠を検査します。
- 背景ワーカーを発行またはスケジュールします。Laving Studioは耐久性のある仕事をキャンセルしません。
- 進行状況、健康状態、相関IDを把握。ジョブコントロールからのみストップ/リトライする。
- 重要なルート、アイデンティティ、チケット、知識を検証します。必要に応じて、不変な事前リリースに戻ります。
| 機能の能力 | 目的: |
|---|---|
| 閲覧/編集 | リリース権限のない草案の点検または変更。 |
| レビュー/承認 | 著者からのフィードバックと承認を分離します。 |
| スケジュール / 公開 / ロールバック | 独立した生産制御。 |
| アイデンティティ/ SCIM /硝酸塩/部品/診断 | 機密性の高いスペシャリスト業務を制限します。 |
証拠と方法の裏面で移行する
- プロバイダーの青写真を選択し、ドライランを作成します。
- 発見された設定、マッピングされていない値、コンテンツカウントと視覚的なパーシティキャプチャを確認します。
- 安全マッピングを完了し、構造の差分を再実行します。
- 保護されたすべての旅を草案、再構成カウントおよびプレビューに適用して下さい。
- レコードの承認;インポート中に公開されたリリースを上書きしません。
- ガバナンスを通じて公開し、移行レポートを継続して、IDとロールバックポイントを一緒にリリースします。
コントラクトを拡張する、テンプレートではなく
安全なエクステンションは、安定したコンポーネントタイプとスキーマを登録し、権限やデータニーズを宣言し、canonicalコンパイラを介してレンダリングし、決定的なフィクスチャ/テストを供給します。任意のテーブルをクエリしないでください、エディタを注入 JavaScript パブリックポータルに、別の記事リポジトリを作成したり、リリースゲートをバイパスします。
ポータル文書v2
ページのノードには、安定したノード、スロット、プロパティ、バインディング、応答性オーバーライド、条件およびアクセシビリティメタデータが含まれています。
コンポーネントレジストリ
スタジオ、コンパイラ、ドキュメント、マイグレーション、マーチャリティチェックを1つにまとめました。
データのソースレジストリ
許可、読み取り専用、権限スコープ付き DTO は任意の SQL や動的アクションを置き換えます。
1つのレンダー
プレビューとパブリック出力共有コンパイル、サニタイズ、予算およびランタイム状態。
コンポーネントパッケージを定義する
スペースIDとセマンティックバージョンの小文字を区別します。パッケージの検査やセキュリティ検証が独立したチェックを実行するため、両方の互換性プロパティ名を供給してください。
{
"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}
}
ノード形状
{
"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が安定している。
- プロパティは、未宣言フィールドと無安全 HTML を拒否します。
- データ・バウンド・ビューは、ロード、空の権限、および再試行可能なエラー出力を定義します。
- コンテナコンポーネントはスロットを名前付けます。葉は任意の子供を受け入れることができません。
- マークの成熟度正直:計画されたブロック、ベータ警告、GAは完全な証拠を必要とします。
許可セーフなDTOを使用する
- 既存のドットIDを選択してください。
tickets.mine,knowledge.featuredまたはcustomer.profile. - バイナリはバージョンの DTO によって宣言されたフィールドのみです。未知のソースは失敗します
data_source.unknown. - 既に承認済みのポータルコンテキストを渡す。信頼できないプロパティからワークスペース/顧客アイデンティティを受け入れることはありません。
- リストの限界は締まります1–100. pagination、locale、検索値の正規化。
- 新しいソースが無効な場合、安定した定義、安全なマッピング、パーミッション、空の動作とプレビューフィクスチャを一緒に追加します。
{
"success": true,
"source": "tickets.mine",
"contract_version": 1,
"items": [
{"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
]
}
信頼の境界の中にとどまる
| 境界線 | 必須の動作 |
|---|---|
| ワークスペース | 信頼できるホスト/ルート/セッションから解決し、実行前に読み込まれたすべての読み込みと書き込みをスコープ化します。 |
| HTML | ポータルのサニタイザー/パーサーの allowlist を使用します。信頼できない属性を連結しません。URLs, CSS またはスクリプト。 |
| プレビュー | 同じorigin ソースウィンドウ、チャンネルバージョンと nonce を署名します。 未承諾メッセージが無視されます。 |
| アイデンティティ | 文書の外に秘密を保ちましょう。 SCIM は、ベアアー認証、セッションレスおよびワークスペース・バウンドです。 |
| パッケージ | トラバーサル、絶対パス、リンク/特殊ファイル、オーバーサイズアーカイブ、チェックサム/署名ミスマッチおよび未知の権限を注入します。 |
| エラー | 安定したコード、安全なメッセージ、再試行性、修正および相関IDを返します。 プライベート例外をログに記録します。 |
| 知識 | HelpCenterBridge で読みます。拡張機能のヘルプセンター記事を作者や重複させないでください。 |
{
"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"}
}
}
原子を点検し、取付け、改善して下さい
- プチ
component.jsonZIP ルートで、すべてのパスを相対的に保持します。 - 最初に点検を実行して下さい。インストーラはアーカイブをでおおいます 500 エントリーとエントリー 25 MB 抽出; セキュリティ検証は独立した制限を追加します。
- 期待される SHA-256 とパッケージのシグネチャを解放プロセスで確認します。
- バージョンディレクトリにインストールします。 インストールされたバージョンを所定の位置にミュートしないでください。
- スキーマの変更を破り、未知の互換性フィールドを保存するためのプロパティの移行を提供します。
- コンポーネントをドラフトで開き、すべてのステート/ビューポート/パーソナフィクスチャを実行し、ガバナンスを通じて公開します。
- ロールバックは、前回不変なコンポーネント/ドキュメントリリースをアクティブにし、再現性のある証拠を保持します。
同じリリースハッシュに拡張機能を実装
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
ソースゲートは、十分ではありません。データベース/マイグレーション、リアルブラウザビジュアル、アイデンティティプロファイアー、認証ソレーション、アクセシビリティ、パフォーマンス、キュー/クロン、メール/添付ファイル、バックアップ/復元および展開のエビデンスを同じ不変リリースハッシュに添付します。未知の証拠はリリースに失敗しなければなりません。
- 単位:スキーマ、サニタイズ、DTOの形、条件、マイグレーションおよびタイプされた失敗。
- 契約:ローディング/エンティ/エラー/成功、成熟度、スロット、結合および1レンダリングパーシティ。
- ブラウザ:キーボード、フォーカス、セマティクス、RTL、ズーム/リフロー、モーションの低減とすべてのブレイクポイント。
- セキュリティ:クロスワークスペースプローブ、鍛造アクション、パッケージ攻撃、プレビュースプーフィングと秘密の漏れ。
- 操作:耐久の進歩、残して下さい/戻り、停止/修理/再開、スケジューラの心拍およびロールバック。
状態と相関IDによるトラブルシューティング
| ステート | 何をするか |
|---|---|
| 許可の制限 | 名前付き機能のリクエスト。隠しUIは便利です。バックエンドは常にそれを強制します。 |
| 検証 | 報告されたページ/ノード/フィールドを開き、それを修正し、プレッションを再実行します。 |
| 紛争 | 更新履歴をリロードし、変更と再適用を意図的に比較します。上書きを強制しないでください。 |
| オフライン/再試用可能 | ドラフトを保ち、接続を復元し、アクションを通して再試行して、耐久性のあるジョブ状態を確認します。 |
| 脂肪/不使用 | 相関IDとタイムスタンプをコピーしてサポートします。秘密や私的例外のテキストは貼り付けないでください。 |
| 公開失敗 | プレッライト/ジョブ出力を点検し、再試行可能なステージだけを再試行するか、または最後の健康リリースに戻します。 |
| SCIM 401/403 | エンドポイント/ワークスペース、ベアトークン、有効状態および回転を確認します。ブラウザセッションクッキーを使用しないでください。 |
| 知識は、階段 | ヘルプセンターのロケール/公衆化を確認し、キャッシュ無効とクリーンなローカライズされたルートを検査します。 |
このガイドはプリント対応です。Print → 保存を PDF として使用して、オフラインでコピーします。