知道工作室的老板是谁吗?
门户网站工作室拥有客户界面外壳:页面,组件放置,品牌标志,反应行为,导航,脚步,身份展示,出道和发布. 帮助中心拥有语言,类别,章节和文章内容. Studio通过被保护的桥来消耗该内容;它从未创建第二篇文章商店.
帮助中心+票务+身份服务允许安全的数据适配器门户文件 v2 草稿一个编译器和渲染器预览并发布门户
单人规则: 预览页和公开页使用相同的文档/编译合同。发布时从未切换到不相关的模板。
客户端门户预览和公开渲染中使用的相同结构化文档
深入建设前完成准备
- 打开 门户工作室→开始→准备情况.
- 确认峡口门户地址,并另开分页.
- 设置标志,浏览器图标,触摸图标,社会形象和主题颜色.
- 确认帮助中心语言; 更改帮助中心的语言权限, 而不是工作室 。
- 配置导航和全球企业页脚。
- 选择出票行程并配置至少一个请求表。
- 保持至少一种安全登录方法的活性,并审查身份发现.
- 运行质量并建立签名预览握手.
- 在每个屏蔽项清除后创建第一个受控放出 。
准备时间百分比由保存的工作空间数据和预览状态计算。直接选择项目路径到自己的面板。
构建页面和可重复使用的段落
- 打开 构建→页 次 并选择一个受保护的系统页面或创建自定义页面。
- 设置路由、标题、访问模式和地块行为。 保护系统路由无法被删除 。
- 打开 构成部分,通过工作或成熟过滤,将一个组件放入相容的槽中。
- 利用检查员了解内容、外观、约束、能见度和可获取性。
- 对重复结构使用可再用模式;在变体中保持组织或品牌差异.
- 保存草稿并练习加载, 空出, 出错, 来宾和签名状态在预览中 。
知识搜索GA 客户安全类别网格GA 帮助中心条款机构GA 翻译 DTO申请表GA 已版本车票时间Beta − 警告数据图表计划公布的区块
预览真实的旅程, 而不是一个快乐的屏幕
- 选择来宾支持,签收入票,开具账单的护理,组织或知识交接.
- 切换人物,组织,角色和帮助中心语言.
- 入围移动,大型移动,平板电脑,笔记本电脑,桌面,宽和超宽断点.
- 检查继承、 覆没并重置值; 避免不必要的断点重复 。
- 运行键盘,RTL,减速动作,加载,空出,不可用和权限状态.
- 利用测试实验室,在审查前提供无障碍、有效载荷、路线、装订和制造结果。
绿色帆布不是发布决定,而是管理飞行前状态,审查状态,能力和发布证据决定门户是否可以发布.
运行一个 Zendesk 级帮助中心,而不重复内容
- Create categories, sections, articles, translations, attachments and templates in 帮助中心.
- 启用那里的语言; 本地化 satters, 搜索, feed,SEO铬也遵循同一权利。
- 在工作室,放置知识搜索,类别/资源网格,feed,主题手风琴,文章,目录,反馈,相关和前/后期组件.
- 配置特色、受欢迎和最新的种子;在票流中采用背景建议。
- 预览无结果,长文章,附件,反馈,表/订阅和售票交接.
- 验证干净的地块路线,cononical/hreflang,结构化的数据和发布后缓存无效.
管理局边界: 编辑帮助中心的文章内容和客户语言。只使用 Portal Studio 来编译如何发现和显示知识。
安全配置登录
- 打开 身份和组织→身份 并至少启用一条登录路径。
- 选择默认方法、 登记政策、 会话时间, SSO- 领域执行和发现行为。
- 添加具有可视路由字段的提供者:类型、域、优先级、演示文稿、启用状态和已核实状态。密钥会留在身份子系统中。
- 用于 SCIM,允许提供,复制精确的工作空间端点并旋转符号。将一次性符号存储在 IdP 中。
- 地图上的要求和组织成员,然后是测试创建,更新,团体成员,与测试租户解除关系.
- 预览嘉宾,顾客,授权组织,发布前封锁各州.
永远不要向 Studio 会话 cookie 发送 SCIM 它是一个无会话,工作空间约束的记分机 API。意外暴露后旋转一个符号。
完成完整的支援旅程
- 选择直接窗体,向导,搜索先行,中枢或服务台条目.
- 创建一个有命名、版本化的请求表,其中包含章节和可访问的字段标签。
- 建立视觉条件, 路径,SLA和核准步骤;JSON仅用于已审查的开发者更改。
- 配置列表,细节,线程,时间表,附件,批准,SLA和回覆表面.
- 测试客人查询,签名请求,组织能见度,上传失败,电子邮件通知和知识偏移.
- 保存草稿;只在路由适配器和通知路径通过飞行前发布.
移动到一个受控的放行
草稿已保存正在审查中核定数排定或公布已观察到或向后滚
- 运行验证和测试实验室。 修复屏蔽结果; 确认允许的警告和上下文 。
- 添加发布注释并请求审查。 评论者对稳定的页面/节点路径进行评论 。
- 批准人检查diff,预览行程,权限更改和证据.
- 发布或安排背景工作。 离开工作室不会取消持久工作 。
- 观察进度、健康和相关身份。只停止/重试从工作控制中进行。
- 核查关键路线、身份、票和知识,必要时恢复到不可改变的事先发布。
| 能力 | 目的 |
|---|---|
| 查看/编辑 | 未经放行权限检查或修改草案. |
| 审查和核准 | 由作者单独反馈和批准。 |
| 计划/ 发布/ 回滚 | 独立生产控制. |
| 身份 / SCIM /迁移/组件/诊断 | 限制敏感专家行动。 |
带着证据和回路迁移
- 选择提供者蓝图并创建干线运行 。
- 审查发现的设置,未映射值,内容计数和视觉等同捕获.
- 完成安全映射,并重运行结构化的diff.
- 应用到草稿,调节计数并预览每一次受保护的行程.
- 记录授权接受; 导入时绝不覆盖当前已公布的发布 。
- 通过治理发布并保存出入境报告,发布身份证明并同时回滚点.
延长合同,而不是模板
安全扩展记录一个稳定的组件类型和计划,宣布权限和数据需求,通过条形编译器制作,并供应确定性固定装置/测试。不要查询任意的表格,插入编辑器。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
- 选择一个已存在的点化ID, 例如
tickets.mine,knowledge.featured或 单customer.profile. - 仅绑定由版本的 DSO 声明的字段。 未知的源失败
data_source.unknown. - 传递已授权的门户上下文; 绝不接受来自未信任的属性的工作空间/ 客户身份 。
- 列表限制被夹到1–100。实现页码、地块和搜索值的规范化。
- 如果新源是不可避免的,请添加其稳定的定义,安全映射,权限,空行为和预览固定在一起.
{
"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"}
}
}
检查、安装和升级
- 装入
component.json保持每条路径的相对性 - 先检查一下,安装者将档案封存到 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形状,条件,迁移和打出故障.
- 合同:装载/空置/误入/成功、到期、档期、装订和单人对等。
- 浏览器:键盘,焦点,语义,RTL,缩放/回放,减动和每个断点.
- 安全:跨工作空间探测器,伪造动作,包攻击,预览偷窥和秘密泄漏.
- 操作:持久地进行,出/回,停/复/回等,排程心跳和回回回.
按状态和关联度划分的故障
| 状态 | 怎么办呢? |
|---|---|
| 权限 | 请求命名的能力。 隐藏 UI 是方便的; 后端总是强制它 。 |
| 验证 | 打开所报的页面/节点/栏目,改正后再重跑前飞行. |
| 冲突 | 重新装入最新修订版, 比较修改并有意重新应用。 绝不强制覆盖 。 |
| 离线/ 可重试 | 保留草稿,恢复连接,通过动作重试并验证持久工作状态. |
| 致命/无 | 复制相关标识和时间戳以获取支持。 永远不要粘贴机密或私人例外文本 。 |
| 发布失败 | 检查飞行前/工作输出,重试只可重试阶段,或回滚回最后的健康放出. |
| SCIM 401/403 | 确认端点/ 工作空间, 无记名符号, 启用状态和旋转; 永远不要使用浏览器会话 cookie 。 |
| 知识是沉闷的 | 在帮助中心验证地盘/出版物,然后检查缓存无效和干净的本地化路径. |
此指南已准备好打印。 使用打印→另存为PDF用于控制下线副本。