←所有文档
门户工作室实地指南

大胆一点,安全地公布

用于塑造客户体验的管理员和扩展其体验的开发者的一个实用参考,它记录了真实的 Studio架构,治理的发布路径,帮助中心的所有权,身份,迁移,组件合同和回收.

门户文档 v2管理员+开发者企业发布工作流程更新1 8月(半天) 2026
管理指南 建筑

知道工作室的老板是谁吗?

门户网站工作室拥有客户界面外壳:页面,组件放置,品牌标志,反应行为,导航,脚步,身份展示,出道和发布. 帮助中心拥有语言,类别,章节和文章内容. Studio通过被保护的桥来消耗该内容;它从未创建第二篇文章商店.

帮助中心+票务+身份服务允许安全的数据适配器门户文件 v2 草稿一个编译器和渲染器预览并发布门户
单人规则: 预览页和公开页使用相同的文档/编译合同。发布时从未切换到不相关的模板。
门户工作室 · 工作空间地图
现场画布桌面 ・ 客户端
客户端门户预览和公开渲染中使用的相同结构化文档
界面映射:工作栏,活画布和检查员瞄准相同的稳定页和节点选择.
署长 · 开始

深入建设前完成准备

  1. 打开 门户工作室→开始→准备情况.
  2. 确认峡口门户地址,并另开分页.
  3. 设置标志,浏览器图标,触摸图标,社会形象和主题颜色.
  4. 确认帮助中心语言; 更改帮助中心的语言权限, 而不是工作室 。
  5. 配置导航和全球企业页脚。
  6. 选择出票行程并配置至少一个请求表。
  7. 保持至少一种安全登录方法的活性,并审查身份发现.
  8. 运行质量并建立签名预览握手.
  9. 在每个屏蔽项清除后创建第一个受控放出 。

准备时间百分比由保存的工作空间数据和预览状态计算。直接选择项目路径到自己的面板。

· 建设

构建页面和可重复使用的段落

  1. 打开 构建→页 次 并选择一个受保护的系统页面或创建自定义页面。
  2. 设置路由、标题、访问模式和地块行为。 保护系统路由无法被删除 。
  3. 打开 构成部分,通过工作或成熟过滤,将一个组件放入相容的槽中。
  4. 利用检查员了解内容、外观、约束、能见度和可获取性。
  5. 对重复结构使用可再用模式;在变体中保持组织或品牌差异.
  6. 保存草稿并练习加载, 空出, 出错, 来宾和签名状态在预览中 。
组件库 · 安全接口地图
知识搜索GA 客户安全类别网格GA 帮助中心条款机构GA 翻译 DTO申请表GA 已版本车票时间Beta − 警告数据图表计划公布的区块
界面图:类别,相容性和成熟度在放置前可见. 计划组件块发布;β组件需要明确放出处理.
· 品牌和反应能力

预览真实的旅程, 而不是一个快乐的屏幕

  1. 选择来宾支持,签收入票,开具账单的护理,组织或知识交接.
  2. 切换人物,组织,角色和帮助中心语言.
  3. 入围移动,大型移动,平板电脑,笔记本电脑,桌面,宽和超宽断点.
  4. 检查继承、 覆没并重置值; 避免不必要的断点重复 。
  5. 运行键盘,RTL,减速动作,加载,空出,不可用和权限状态.
  6. 利用测试实验室,在审查前提供无障碍、有效载荷、路线、装订和制造结果。
绿色帆布不是发布决定,而是管理飞行前状态,审查状态,能力和发布证据决定门户是否可以发布.
· 经验

运行一个 Zendesk 级帮助中心,而不重复内容

  1. Create categories, sections, articles, translations, attachments and templates in 帮助中心.
  2. 启用那里的语言; 本地化 satters, 搜索, feed,SEO铬也遵循同一权利。
  3. 在工作室,放置知识搜索,类别/资源网格,feed,主题手风琴,文章,目录,反馈,相关和前/后期组件.
  4. 配置特色、受欢迎和最新的种子;在票流中采用背景建议。
  5. 预览无结果,长文章,附件,反馈,表/订阅和售票交接.
  6. 验证干净的地块路线,cononical/hreflang,结构化的数据和发布后缓存无效.
管理局边界: 编辑帮助中心的文章内容和客户语言。只使用 Portal Studio 来编译如何发现和显示知识。
· 身份和组织

安全配置登录

  1. 打开 身份和组织→身份 并至少启用一条登录路径。
  2. 选择默认方法、 登记政策、 会话时间, SSO- 领域执行和发现行为。
  3. 添加具有可视路由字段的提供者:类型、域、优先级、演示文稿、启用状态和已核实状态。密钥会留在身份子系统中。
  4. 用于 SCIM,允许提供,复制精确的工作空间端点并旋转符号。将一次性符号存储在 IdP 中。
  5. 地图上的要求和组织成员,然后是测试创建,更新,团体成员,与测试租户解除关系.
  6. 预览嘉宾,顾客,授权组织,发布前封锁各州.
永远不要向 Studio 会话 cookie 发送 SCIM 它是一个无会话,工作空间约束的记分机 API。意外暴露后旋转一个符号。
管理者 票价旅行

完成完整的支援旅程

  1. 选择直接窗体,向导,搜索先行,中枢或服务台条目.
  2. 创建一个有命名、版本化的请求表,其中包含章节和可访问的字段标签。
  3. 建立视觉条件, 路径,SLA和核准步骤;JSON仅用于已审查的开发者更改。
  4. 配置列表,细节,线程,时间表,附件,批准,SLA和回覆表面.
  5. 测试客人查询,签名请求,组织能见度,上传失败,电子邮件通知和知识偏移.
  6. 保存草稿;只在路由适配器和通知路径通过飞行前发布.
署长 审查和发布

移动到一个受控的放行

草稿已保存正在审查中核定数排定或公布已观察到或向后滚
  1. 运行验证和测试实验室。 修复屏蔽结果; 确认允许的警告和上下文 。
  2. 添加发布注释并请求审查。 评论者对稳定的页面/节点路径进行评论 。
  3. 批准人检查diff,预览行程,权限更改和证据.
  4. 发布或安排背景工作。 离开工作室不会取消持久工作 。
  5. 观察进度、健康和相关身份。只停止/重试从工作控制中进行。
  6. 核查关键路线、身份、票和知识,必要时恢复到不可改变的事先发布。
能力目的
查看/编辑未经放行权限检查或修改草案.
审查和核准由作者单独反馈和批准。
计划/ 发布/ 回滚独立生产控制.
身份 / SCIM /迁移/组件/诊断限制敏感专家行动。
管理者 迁移和扩大

带着证据和回路迁移

  1. 选择提供者蓝图并创建干线运行 。
  2. 审查发现的设置,未映射值,内容计数和视觉等同捕获.
  3. 完成安全映射,并重运行结构化的diff.
  4. 应用到草稿,调节计数并预览每一次受保护的行程.
  5. 记录授权接受; 导入时绝不覆盖当前已公布的发布 。
  6. 通过治理发布并保存出入境报告,发布身份证明并同时回滚点.
开发者扩展指南 ^ 架构

延长合同,而不是模板

安全扩展记录一个稳定的组件类型和计划,宣布权限和数据需求,通过条形编译器制作,并供应确定性固定装置/测试。不要查询任意的表格,插入编辑器。JavaScript 进入公共门户,创建另一个文章寄存器,或者绕过放行门.

门户文档 v2

页面包含稳定的节点,槽口,属性,绑定,响应性覆盖,条件和可访问性元数据.

书记官处

一份合同信息输入工作室、编译器、文件、迁移和到期检查。

数据来源登记册

允许列表, 只读, 允许范围 DTO 替换任意 SQL 或动态动作。

一个出镜器

预览和公共产出共享汇编、消毒、预算和运行时态。

开发者 · 组件合同

定义组件包

使用小写名称空间化的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"}
}
  • 在整个编辑和迁移过程中,身份证保持稳定。
  • 属性拒绝未宣布的字段和不安全 HTML.
  • 每个数据约束视图定义了加载,空取,允许和可重试-错误输出.
  • 集装箱部件标明其槽;叶子不能接受任意的儿童。
  • 马克成熟诚实:计划区块,β警告,GA需要全部证据.
开发者 · 数据源和绑定

使用安全允许的 DTO

  1. 选择一个已存在的点化ID, 例如 tickets.mine, knowledge.featured 或 单 customer.profile.
  2. 仅绑定由版本的 DSO 声明的字段。 未知的源失败 data_source.unknown.
  3. 传递已授权的门户上下文; 绝不接受来自未信任的属性的工作空间/ 客户身份 。
  4. 列表限制被夹到1–100。实现页码、地块和搜索值的规范化。
  5. 如果新源是不可避免的,请添加其稳定的定义,安全映射,权限,空行为和预览固定在一起.
{
  "success": true,
  "source": "tickets.mine",
  "contract_version": 1,
  "items": [
    {"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
  ]
}
数据源只读. 突变需要明确的授权服务动作,工作空间绑定,CSRF/会话或无记名验证,必要时的一意孤行并打出错误信封.
开发者 · 安全

留在信任的界限内

边界必需的行为
工作空间解析来自信任的主机/路由/会话,然后在执行前覆盖每个读写.
HTML使用 Portal sanitizer/parser 许可列表。 绝不将不可信属性调和 , URLs, CSS 或脚本。
预览需要同一源的源窗口、 签名的频道版本和非ce。 忽略未请求的邮件 。
身份在文件之外保守秘密。SCIM 以无记名、无会话和工作空间为限制。
软件包拒绝 traversal,绝对路径,链接/特殊文件,超大小的档案,校验和/签名不匹配以及未知权限.
错误返回稳定代码,安全消息,可重试性,补救性和相关性ID;登录私人例外服务器侧.
知识通过 HelpCenterBridge 读取。 绝不在扩展中编写或复制 HelfCeneral 文章 。
{
  "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"}
  }
}
开发者 · 软件包和迁移

检查、安装和升级

  1. 装入 component.json 保持每条路径的相对性
  2. 先检查一下,安装者将档案封存到 500 条目和 25 MB 提取;安全验证添加了独立限制.
  3. 在发布过程中验证预期的 SHA-256 和包签名.
  4. 安装到一个版本目录。 绝不改变已安装的版本 。
  5. 为突破计划更改提供属性迁移并保存未知相容字段.
  6. 将部分在草案中打开,运行每个州/视点/人称固定,并通过治理发布.
  7. 回滚激活了之前的不可变构件/文件放出;保留其可再生性证据.
开发者 · 测试和发布

证明同一释放散列上的扩展

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,缩放/回放,减动和每个断点.
  • 安全:跨工作空间探测器,伪造动作,包攻击,预览偷窥和秘密泄漏.
  • 操作:持久地进行,出/回,停/复/回等,排程心跳和回回回.
管理员+开发者 · 回收

按状态和关联度划分的故障

状态怎么办呢?
权限请求命名的能力。 隐藏 UI 是方便的; 后端总是强制它 。
验证打开所报的页面/节点/栏目,改正后再重跑前飞行.
冲突重新装入最新修订版, 比较修改并有意重新应用。 绝不强制覆盖 。
离线/ 可重试保留草稿,恢复连接,通过动作重试并验证持久工作状态.
致命/无复制相关标识和时间戳以获取支持。 永远不要粘贴机密或私人例外文本 。
发布失败检查飞行前/工作输出,重试只可重试阶段,或回滚回最后的健康放出.
SCIM 401/403确认端点/ 工作空间, 无记名符号, 启用状态和旋转; 永远不要使用浏览器会话 cookie 。
知识是沉闷的在帮助中心验证地盘/出版物,然后检查缓存无效和干净的本地化路径.

此指南已准备好打印。 使用打印→另存为PDF用于控制下线副本。