Studio가 무엇인지 알고
Portal Studio는 고객 기반 쉘을 소유합니다. 페이지, 구성 요소 배치, 브랜드 토큰, 반응형 행동, 탐색, 발러, 정체성 프레젠테이션, 티켓 여행 및 출시. 도움말 센터는 언어, 카테고리, 섹션 및 기사 콘텐츠를 소유하고 있습니다. 스튜디오는 보호 된 브리지를 통해 콘텐츠가 소비합니다. 두 번째 문서 저장소를 결코 만듭니다.
건물 앞에 완전한 readiness
- 열기 Portal Studio → 시작 → 준비.
- canonical Portal 주소를 확인하고 별도의 탭에서 엽니다.
- 로고, 브라우저 아이콘, 터치 아이콘, 소셜 이미지 및 테마 색상을 설정합니다.
- Help Center 언어 확인; 도움말 센터의 언어 권한을 변경, Studio가 아닌.
- 탐색 및 글로벌 기업 발기자를 구성합니다.
- 티켓 여행을 선택하고 최소 1개의 요청 양식을 구성하십시오.
- 최소 1개의 안전한 로그인 방법 활성화 및 검토 identity discovery.
- 품질 유지 및 서명 된 미리보기를 설정.
- 모든 블록 아이템이 명확하다 후 첫 번째 주관 된 릴리스를 만듭니다.
readiness 비율은 저장된 작업 공간 데이터 및 미리보기 상태로 계산됩니다. 자체 패널에 직접 항목 경로 선택.
페이지 및 재사용 가능한 섹션을 작성하십시오.
- 열기 빌드 → 페이지 보호 시스템 페이지를 선택하거나 사용자 정의 페이지를 만듭니다.
- 경로, 제목, 액세스 모드 및 Locale 동작을 설정합니다. 보호된 시스템 루트는 삭제할 수 없습니다.
- 열기 구성 요소, 작업 또는 성숙에 의해 필터링 및 호환 슬롯의 구성 요소를 배치.
- 내용, 외관, 바인딩, 가시성 및 접근성을 위한 검수원을 사용하십시오.
- 반복된 구조를 위한 재사용할 수 있는 본; 조직을 유지하거나 변종에 있는 상표 다름.
- 미리 초안 및 운동 로딩, 빈, 오류, 게스트 및 서명 상태 저장.
실제 여행, 아니 한 행복한 화면
- 고객 지원, 서명 티켓, 청구 관리, 조직 또는 지식 핸오프를 선택하십시오.
- 전환 사람, 조직, 역할 및 도움말 센터 언어.
- 모바일, 대형 모바일, 태블릿, 노트북, 데스크탑, 넓은 및 초경화 지점을 검사합니다.
- 상속, 과다한 및 리셋 값 확인; 무효한 breakpoint 복제를 피하십시오.
- 키보드, RTL, 감소 모션, 로딩, 빈, 사용 불가 및 권한 상태를 실행합니다.
- Test Lab for accessibility, payload, route, 바인딩 및 렌더링기를 사용하여 리뷰 전에 찾을 수 있습니다.
Zendesk-level Help Center를 중복 콘텐츠 없이 운영
- 카테고리, 섹션, 기사, 번역, 첨부 파일 및 템플릿 만들기 도움말 센터.
- 가능한 언어가 있다; 현지화 된 슬러그, 검색, 피드, SEO 및 기사 크롬 같은 권한을 따르십시오.
- Studio에서, 장소 지식 검색, 범주/ 자원 그리드, 피드, 주제 협정, 기사, 내용의 테이블, 피드백, 관련 및 이전 / 다음 구성 요소.
- 추천, 인기 및 최근 피드 구성; 티켓 흐름에 대 한 상황에 맞는 제안을 사용 합니다.
- 미리보기 no-results, 긴 기사, 첨부 파일, 피드백, 시계/보류 및 티켓 손전등.
- 깨끗한 현지 경로, canonical/hreflang, 구조화 된 데이터 및 캐시 유효성 검사 후 출판.
로그인을 안전하게 설정
- 열기 Identity & 조직 → 식별 그리고 적어도 하나의 로그인 경로가 활성화됩니다.
- 기본 방법, 등록 정책, 세션 기간, SSO-domain 강제 및 발견 행동을 선택하십시오.
- 시각적 라우팅 필드와 함께 제공 업체 추가: 유형, 도메인, 우선, 프리젠 테이션, 활성화 및 확인 된 상태. 비밀은 정체성 서브 시스템에 머물.
- SCIM 의 경우, 프로비저닝을 활성화하고 정확한 작업 공간 엔드포인트를 복사하여 토큰을 회전합니다. IdP에서 한 번의 토큰을 저장하십시오.
- 지도 주장 및 조직 회원, 그 다음 테스트 생성, 업데이트, 그룹 멤버쉽과 결정 테스트 테넌트.
- 미리보기 게스트, 고객, 위임 조직 및 발행 전에 차단 된 상태.
완전한 지원 여행을 비교
- 직접 양식, 마법사, 검색 우선, 허브 또는 서비스 데스크 항목을 선택하십시오.
- 이름, 판명된 요청 양식을 섹션과 접근 가능한 필드 라벨로 만듭니다.
- 시각적 조건, 라우팅, SLA 및 승인 단계 구축; 고급 JSON 는 검토 된 개발자 변경에 대한 것입니다.
- 목록, 세부사항, 실, 타임라인, 부착, 승인, SLA 및 대답 표면을 구성하십시오.
- 고객 조회, 서명 요청, 조직 가시성, 업로드 실패, 이메일 알림 및 지식 단말.
- 초안을 저장; 경로 어댑터 및 알림 경로 패스 preflight 후 만 게시.
의거한 출시를 통해 이동
- 검증 및 테스트 실험실을 실행하십시오. 발견을 차단 수정; 상황에 따라 허용된 경고를 인정합니다.
- 릴리스 노트 및 요청 검토 추가. 리뷰는 안정적인 페이지 / 노드 경로에 주석을 제기합니다.
- Approvers는 diff, 미리보기 여행, 권한 변경 및 증거를 검사합니다.
- 배경 노동자를 통해 게시 또는 일정. Leaving Studio는 내구성이 좋은 일을 취소하지 않습니다.
- 진행 상황을 보고, 건강 및 상관 관계 ID. 작업 관리에서 정지/리스트만.
- 중요한 경로, 정체성, 표 및 지식 검증. 필요한 경우의 immutable 사전 릴리스로 다시 롤.
| 기능 제품 | 목적 |
|---|---|
| 보기 / 편집 | Inspect 또는 변경은 릴리스 권한없이. |
| 리뷰 / Approve | 저작권 및 상표권의 제한적 의견. |
| 일정 / 게시 / 롤백 | 독립 생산 관리. |
| Identity / SCIM / 미그레이트 / 부품 / 진단 | 민감한 전문 운영을 제한합니다. |
증거와 방법 뒤로 마이그레이션
- 공급자 청사진을 선택하고 건조한 뛰기를 만듭니다.
- 검토 발견 된 설정, unmapped 값, 콘텐츠 카운트 및 시각적 패리티 캡처.
- 완벽한 안전한 매핑과 구조화 된 디프를 다시 실행.
- 초안, 재난 수와 미리보기에 모든 보호 된 여행.
- 기록 허가; 수입 중에 현재 게시 된 릴리스를 덮지 마십시오.
- 의논문을 통해 출판하고 이주 보고서를 유지, ID 및 롤백 포인트를 함께 공개.
계약, 템플릿이 없습니다
안전한 확장은 안정적인 구성 요소 유형과 스키마를 등록하고 권한 및 데이터 요구 사항을 선언하며, 후보자를 통해 렌더링되며, 세례적인 고정 / 테스트를 제공합니다. arbitrary 테이블을 쿼리하지 마십시오. public Portal에 JavaScript 를 삽입하거나 다른 기사 저장소를 만들거나 릴리스 게이트를 우회하십시오.
포털 문서 v2
페이지에는 안정적인 노드, 슬롯, 속성, 바인딩, 반응형 오버라이드, 조건 및 접근성 메타데이터가 포함되어 있습니다.
Component 레지스트리
One contract feeds Studio, 컴파일러, 문서, 마이그레이션 및 성숙 검사.
데이터 소스 Registry
허용, 읽기 전용, 권한면 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는 편집 및 마이그레이션에 걸쳐 안정적입니다.
- 속성은 undeclared 필드와 unsafe HTML 를 거부합니다.
- 모든 데이터-바운드 보기는 로딩, 빈, 권한 및 재발성 오류 출력을 정의합니다.
- 컨테이너 구성 요소는 슬롯을 명명; 잎은 임의 어린이를 허용 할 수 없습니다.
- Mark maturity 정직 : 계획 블록, 베타 전사, GA는 전체 증거를 요구합니다.
사용 허가-안전 DTOs
- 기존의 도트 ID를 선택하여
tickets.mine,knowledge.featured또는customer.profile. - Bind는 DTO가 선언한 유일한 필드입니다. 알려진 소스는 실패하지 않습니다
data_source.unknown. - 이미 허가된 포털 컨텍스트를 통과; 무신뢰한 재산에서 workspace/customer identity를 허용하지 않습니다.
- 1–100 에 제한이 클램핑됩니다. 평상화, 지방 및 검색 값.
- 새로운 소스가 비례없는 경우, 안정된 정의, 안전한 매핑, 권한, 빈 행동 및 미리보기 구성을 함께 추가하십시오.
{
"success": true,
"source": "tickets.mine",
"contract_version": 1,
"items": [
{"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
]
}
신뢰 경계를 유지
| 경계선 | 필요한 동작 |
|---|---|
| 작업 공간 | 신뢰할 수있는 호스트 / 루트 / 세션에서 해결, 다음 실행하기 전에 각 읽기 및 쓰기를 수행. |
| HTML | Portal sanitizer/parser Allowlist 를 사용하십시오. 절대 위탁되지 않은 속성을 유지하지 마십시오. URLs, CSS 또는 스크립트. |
| 미리 보기 | 동일한 소스 창, 서명된 채널 버전 및 nonce를 요구합니다. 나는 unsolicited 메시지를 무시합니다. |
| 정체성 | 외부 문서에 비밀을 지키십시오. SCIM 는 bearer-authenticated, sessionless 및 workspace-bound입니다. |
| 패키지 | 트래버스, 절대 경로, 링크/특수 파일, 과사이즈 아카이브, 체크섬/신문 잡기 및 알 수없는 권한을 거부합니다. |
| 오류 | 안정적인 코드, 안전한 메시지, 복원성, 재약 및 상관 관계 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"}
}
}
Inspect, 설치 및 업그레이드 원자로
- 넣기
component.jsonZIP 루트에서 모든 경로 상대를 유지. - 첫 번째 검사를 실행합니다. 설치자 캡 아카이브 500 항목 및 25 MB 추출; 보안 검증은 독립적 인 한계를 추가합니다.
- 출시 프로세스에서 예상 SHA-256 및 패키지 서명을 검증합니다.
- 버전 관리된 디렉토리에 설치합니다. 설치한 버젼을 변경하지 마십시오.
- schema의 변화와 알 수없는 호환성 필드를 파괴하기위한 속성 마이그레이션을 제공합니다.
- 초안의 구성품을 열고, 각 state/viewport/persona 정착물을 실행하고 주관을 통해 출판합니다.
- 롤백은 사전 immutable 구성 요소 / 문서 릴리스를 활성화합니다. 재현성 증거를 유지합니다.
같은 릴리스 해시의 확장을 입증
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
소스 게이트가 필요한 경우 충분하지 않습니다. 데이터베이스 / 이동, 실시간 브라우져 시각적, 정체성 보호, 권한 부여 - 격리, 접근성, 성능, 큐 / 드럼, 메일 / 위치, 백업 / 복원 및 같은 immutable 릴리스 해시에 배포 증거를 첨부하십시오. 알려진 필수 증거는 출시 실패해야합니다.
- 단위: schema, 위생화, DTO 모양, 조건, 이동 및 유형 실패.
- 계약: 로딩/비밀/오류/교육, 성숙, 슬롯, 바인딩 및 원 렌더링 패시티.
- 브라우저: 키보드, 초점, semantics, RTL, 급상승/썰물은, 동의를 감소시키고 각 틈점.
- 보안: 크로스 워크스페이스 프로브, 위조된 작업, 패키지 공격, 미리보기 스푸핑 및 비밀 누설.
- 가동: 튼튼한 진도, 남/반전, 정지/레트리/resume의 스케줄러 심박수 및 rollback.
국가 및 상관 ID로 문제 해결
| 상태 | 무엇을 해야 하는가 |
|---|---|
| 제출 | 지정된 기능을 요청합니다. 숨겨진 UI는 편의를; 백엔드는 항상 그것을 시행한다. |
| 검증 | 보고된 페이지/node/field를 열고, 그것을 수정하고, 그 후에 rerun preflight. |
| 충돌 | 최신 개정을 다시로드하고 변경 및 반복적으로 의도적으로 비교합니다. 과잉하지 마십시오. |
| 오프라인 / 재시동할 수 있는 | 초안을 유지하고 연결성을 복원하고 작업 상태를 재시동하고 내구성있는 작업을 확인합니다. |
| 지방 / 사용 불가 | 상관관계 ID 및 타임스탬프를 복사하여 지원하십시오. 비밀 또는 개인 예외 텍스트를 붙여넣지 마십시오. |
| 실패한 | Inspect preflight/job 산출, 재try만 재시동할 수 있는 단계, 또는 마지막 건강한 방출에 뒤 목록. |
| SCIM 401/403 | endpoint/workspace, bearer token을 확인하고 state와 회전을 활성화하십시오. 브라우저 세션 쿠키를 사용하지 마십시오. |
| 지식은 stale입니다 | Help Center의 Locale/publication을 검증한 후, 캐시 유효성 검사 및 깨끗한 현지화 경로가 검사합니다. |
이 가이드는 인쇄 읽습니다. 인쇄를 사용하여 → 통제되는 따로따로 사본을 위한 PDF 로 저장하십시오.