Узнайте, чем владеет студия
Portal Studio владеет оболочкой, обращенной к клиенту: страницами, размещением компонентов, токенами бренда, отзывчивым поведением, навигацией, нижним колонтитулом, презентацией личности, поездками и релизами билетов. Справочный центр владеет языками, категориями, разделами и контентом статьи. Студии потребляет этот контент через защищенный мост; он никогда не создает второй магазин статей.
Полная готовность перед тем, как строить глубоко
- Открыть Portal Studio→Начинать→Готовность.
- Подтвердите канонический адрес Портала и откройте его в отдельной вкладке.
- Установите логотип, значок браузера, сенсорную иконку, социальный образ и цвет темы.
- Подтвердите языки Центра поддержки; измените авторитет языка в Центре помощи, а не в Студии.
- Настройка навигации и глобального корпоративного футера.
- Выберите билет и настройте хотя бы одну форму запроса.
- Поддерживайте по крайней мере один безопасный метод входа в систему и проверьте обнаружение личности.
- Запускайте Quality и установите подписанное предварительное рукопожатие.
- Создайте первый управляемый выпуск после того, как каждый блокирующий элемент будет ясен.
Процент готовности рассчитывается из сохраненных данных рабочего пространства и состояния предварительного просмотра. Выбор маршрутов элемента непосредственно к его собственной панели.
Создание страниц и многоразовых разделов
- Открыть Создайте → Страницы Выберите защищенную системную страницу или создайте пользовательскую страницу.
- Установить маршрут, заголовок, режим доступа и поведение локализованной системы. Защищенные системные маршруты удалять нельзя.
- Открыть Компонентыфильтрация по работе или зрелости и размещение компонента в совместимом слоте;
- Используйте инспектора для контента, внешнего вида, связывания, видимости и доступности.
- Используйте многоразовые шаблоны для повторяющихся структур; сохраняйте различия в вариантах организации или бренда.
- Сохраните проект и упражняйте загрузку, пустую, ошибку, гостевые и подписанные состояния в предварительном просмотре.
Просмотр реальных путешествий, а не одного счастливого экрана
- Выберите гостевую поддержку, входной билет, платежную помощь, организацию или передачу знаний.
- Переключайте персонал, организацию, роль и язык Центра помощи.
- Проверяйте мобильные, большие мобильные, планшеты, ноутбуки, настольные компьютеры, широкие и сверхширокие точки останова.
- Проверяйте унаследованные, переопределённые и сброшенные значения; избегайте ненужного дублирования точки останова.
- Запуск клавиатуры, RTL, пониженное движение, загрузка, пустые, недоступные и разрешения состояния.
- Используйте Test Lab для доступности, полезной нагрузки, маршрута, связывания и выводов рендерера перед обзором.
Управлять Центром поддержки уровня Zendesk без дублирования контента
- Создавать категории, разделы, статьи, переводы, вложения и шаблоны в Центр помощи.
- Включите там языки; локализованные слизни, поиск, каналы, SEO и хром статьи следуют одному и тому же авторитету.
- В студии размещают поиск знаний, категории/ресурсные сетки, ленты, тематические аккордеоны, статьи, таблицу содержимого, обратную связь, связанные и предыдущие/следующие компоненты.
- Настройка показанных, популярных и последних лент; использование контекстных предложений в потоках билетов.
- Предварительный просмотр безрезультатных, длинных статей, вложений, отзывов, часов / подписки и передачи билета.
- Проверяйте чистые маршруты, канонические / hreflang, структурированные данные и кэш-память после публикации.
Безопасная настройка входа
- Открыть Идентичность и организации → Идентификация И пусть хотя бы один из них будет в порядке.
- Выберите метод по умолчанию, политику регистрации, продолжительность сеанса, SSO-применение домена и поведение обнаружения.
- Добавьте провайдеров с визуальными полями маршрутизации: тип, домены, приоритет, презентация, включенное и проверенное состояние. Секреты остаются в подсистеме идентификации.
- Для SCIM, включить резервирование, скопировать точную конечную точку рабочего пространства и повернуть маркер. Хранить одноразовый маркер в IdP.
- Карта претензий и членства в организации, затем тестирование создания, обновления, членство в группе и деактивация с тестовым арендатором.
- Предварительный просмотр гостя, клиента, делегированной организации и заблокированных государств перед публикацией.
Составьте полный маршрут поддержки
- Выберите прямую форму, мастера, поиск-первый, хаб или сервис-декс вход.
- Создайте именованную, версию формы запроса с разделами и доступными полевыми метками.
- Создайте визуальные условия, маршрутизацию, SLA и этапы утверждения; расширенный JSON предназначен только для пересмотренных изменений разработчика.
- Настройка списка, детали, нити, временной шкалы, крепления, утверждения, SLA и поверхностей ответа.
- Тестирование гостевого поиска, запросы с подпиской, видимость организации, отказ загрузки, уведомление по электронной почте и отклонение знаний.
- Сохраните черновик; опубликуйте только после того, как адаптер маршрута и путь уведомления пройдут предполетный.
Пройти через регулируемый выпуск
- Запустите проверку и тест-лабораторию. Исправьте блокировку результатов; признайте разрешенные предупреждения с контекстом.
- Добавить заметки о выпуске и запросить рецензию. Рецензенты комментируют стабильные пути страницы / узла.
- Утверждающие проверяют дифф, предварительный просмотр поездок, изменения разрешения и доказательства.
- Опубликовать или распланировать через фонового работника. Уход из студии не отменяет длительную работу.
- Следите за прогрессом, здоровьем и корреляцией. Остановитесь/возвращайтесь только с контроля работы.
- Проверяйте критически важные маршруты, удостоверения личности, билеты и знания. Возвращайтесь к неизменному предварительному выпуску, когда это необходимо.
| способность | Цель |
|---|---|
| Вид / Редактировать | Проверять или изменять проекты без разрешения. |
| Обзор / Утверждено | Отдельные отзывы и одобрение от авторства. |
| Расписание / Публикация / Rollback | Независимый контроль производства. |
| Идентичность / SCIM / Миграция / Компоненты / Диагностика | Ограничьте операции чувствительных специалистов. |
Мигрант с доказательствами и обратным путем
- Выберите план провайдера и создайте сухой запуск.
- Обзор обнаружил настройки, некартированные значения, количество контента и визуальные захваты четности.
- Заполните безопасные картографические данные и повторите структурированный дифф.
- Применяйте к черновику, согласовывайте счета и просматривайте каждое защищенное путешествие.
- Запись авторизованного принятия; никогда не перезаписывайте текущий опубликованный выпуск во время импорта.
- Публикуйте через управление и сохраняйте отчет о миграции, выпустите ID и точку отката вместе.
Расширяйте контракты, а не шаблоны
Безопасное расширение регистрирует стабильный тип и схему компонента, заявляет разрешения и потребности в данных, отображает через канонический компилятор и поставляет детерминированные фиксации / тесты. Не запрашивайте произвольные таблицы, вводите редактор JavaScript в общедоступный портал, создаете другое хранилище статей или обходите выходной шлюз.
Порталы Документ v2
Страницы содержат стабильные узлы, слоты, свойства, привязки, отзывчивые переопределения, условия и метаданные доступности.
Реестр компонентов
Один контракт предусматривает проверку студии, компилятора, документации, миграции и зрелости.
Реестр источников данных
Разрешенные, только для чтения и разрешенные DTO заменяют произвольные SQL или динамические действия.
Один рендер
Предварительный просмотр и сбор общего объема производства, санация, бюджеты и штаты исполнения.
Определить компонентный пакет
Используйте идентификатор с пробелом в строчке и семантический вариант. Предоставьте оба имени свойств совместимости, показанные, потому что проверка пакета и проверка безопасности выполняют независимые проверки.
{
"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"}
}
- Идентификаторы остаются стабильными при редактировании и миграции.
- Свойства отклоняют незадекларированные поля и небезопасные HTML.
- Каждый вид, связанный с данными, определяет загрузку, пустое разрешение и выход из-за ошибки перезаписи.
- Контейнерные компоненты называют свои слоты; листья не могут принимать произвольных детей.
- Марк зрелость честно: запланированные блоки, предупреждает бета-тестирование, ГА требует полных доказательств.
Использование DTOs permission-safe
- Выберите существующий пунктирный идентификатор, такой как
tickets.mine,knowledge.featuredилиcustomer.profile. - Обязательные только поля, объявленные его версиями DTO. Неизвестные источники терпят неудачу
data_source.unknown. - Перейдите в уже авторизованный контекст Портала; никогда не принимайте рабочее пространство / личность клиента из ненадежного имущества.
- List limits are clamped to 1–100. Normalize pagination, locale and search values.
- Если новый источник неизбежен, добавьте его стабильное определение, безопасное отображение, разрешения, пустое поведение и предварительный просмотр вместе.
{
"success": true,
"source": "tickets.mine",
"contract_version": 1,
"items": [
{"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
]
}
Оставайтесь в пределах доверительных границ
| граница | Требуемое поведение |
|---|---|
| Рабочее пространство | Решите с доверенного хоста / маршрута / сессии, затем нажмите каждое чтение и запись перед выполнением. |
| OpenAI | Используйте дезинфицирующее средство/парсер Портала. Никогда не идентифицируйте недоверенные атрибуты, URLs, CSS Или сценарий. |
| Предварительный просмотр | Требуется окно источника с тем же происхождением, подписанная версия канала и nonce. Игнорировать незапрашиваемые сообщения. |
| Идентичность | Храните секреты вне документов. SCIM является носителем-аутентифицированным, бессессионным и связанным рабочим пространством. |
| Пакеты | Отклонить обход, абсолютные пути, ссылки / специальные файлы, негабаритные архивы, контрольную сумму / несоответствие подписи и неизвестные разрешения. |
| ошибки | Вернуть стабильный код, безопасное сообщение, возможность повторного использования, исправление и корреляционный идентификатор; зарегистрировать частные исключения на стороне сервера. |
| Знания | Никогда не пишите и не дублируйте статьи в справочном центре в расширении. |
{
"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.jsonВ корне ZIP и сохраняйте каждый путь относительным. - Сначала проверьте. Установщик закрывает архивы 500 входы и 25 MB извлечено; проверка безопасности добавляет независимые ограничения.
- Проверить ожидаемый SHA-256 и подпись пакета в процессе выпуска.
- Установите в каталог с версиями. Никогда не мутируйте установленную версию на месте.
- Обеспечить миграцию свойств для нарушения изменений схемы и сохранить неизвестные поля совместимости.
- Откройте компонент в проекте, запустите каждый государственный / обзорный / личный договор и опубликуйте его через управление.
- Rollback активирует предварительный неизменяемый компонент/документ; сохраняет доказательства воспроизводимости.
Доказать расширение на том же хэше выпуска
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, условия, миграции и типизированные сбои.
- Договор: загрузка/пустая/ошибка/успех, срок погашения, слоты, привязки и паритет одного рендерера.
- Браузер: клавиатура, фокусировка, семантика, RTL, зум/рефлекс, уменьшенное движение и каждая точка останова.
- Безопасность: межпространственные зонды, подделанные действия, пакетные атаки, спуфинг предварительного просмотра и секретная утечка.
- Операции: устойчивый прогресс, отпуск/возвращение, остановка/отказ/резюме, сердцебиение планировщика и откат.
Устранение неполадок по идентификатору состояния и корреляции
| государство | Что делать |
|---|---|
| Разрешение | Скрытый пользовательский интерфейс - это удобство; бэкэнд всегда обеспечивает его. |
| валидация | Откройте страницу/узл/поле, исправьте его, а затем повторите предполетный полет. |
| конфликт | Перезагрузите последнюю версию, сравните изменения и повторно нанесите намеренно. |
| Offline / Retryable | Сохраните проект, восстановите связь, повторите действие и проверьте долговечное состояние работы. |
| Fatal / Недоступно | Копируйте идентификатор корреляции и временную метку для поддержки. Никогда не вставляйте секреты или текст частного исключения. |
| Публикация провалилась | Проверяйте выход перед полетом / работой, повторяйте только перезапускаемые этапы или возвращайтесь к последнему здоровому выпуску. |
| SCIM 401/403 | Подтвердите конечную точку / рабочее пространство, маркер на предъявителя, включенное состояние и вращение; никогда не используйте cookie сеанса браузера. |
| Знание застойное | Проверьте локализацию / публикацию в справочном центре, а затем проверьте недействительность кэша и чистый локализованный маршрут. |
Это руководство готово к печати. Используйте Print → Save as PDF для контролируемой автономной копии.