Conoce lo que Studio posee
Portal Studio es el propietario del shell orientado al cliente: páginas, ubicación de componentes, tokens de marca, comportamiento adaptativo, navegación, pie de página, presentación de identidades, trayectos y versiones de tickets. El Centro de ayuda es el dueño de los idiomas, las categorías, secciones y contenido de artículos.
Preparación completa antes de construir profundamente
- Abrir Portal Studio → Inicio → Preparación.
- Confirme la dirección canónica del Portal y ábrala en una pestaña separada.
- Establezca el logotipo, icono del navegador, icono táctil, imagen social y color del tema.
- Confirme los idiomas del Centro de ayuda; cambie la autoridad del idioma en el Centro de asistencia, no en Studio.
- Configure la navegación y el pie de página corporativo global.
- Elija un trayecto de billete y configure al menos un formulario de solicitud.
- Mantenga activo al menos un método de inicio de sesión seguro y revise el descubrimiento de identidades.
- Ejecute Quality y establezca el handshake de vista previa firmado.
- Cree la primera versión gobernada después de que cada elemento de bloqueo esté claro.
El porcentaje de preparación se calcula a partir de los datos del espacio de trabajo guardado y el estado de vista previa.
Crear páginas y secciones reutilizables
- Abrir Crear → Páginas de inicio y seleccione una página de sistema protegida o cree una página personalizada.
- Establezca la ruta, el título, el modo de acceso y el comportamiento regional. Las rutas del sistema protegidas no se pueden eliminar.
- Abrir Componentes, filtre por trabajo o madurez y coloque un componente en una ranura compatible.
- Utilice el inspector de contenido, apariencia, encuadernación, visibilidad y accesibilidad.
- Utilice patrones reutilizables para estructuras repetidas; mantenga las diferencias de organización o marca en variantes.
- Guarde el borrador y los estados de carga, vacío, error, invitado e iniciado sesión en vista previa.
Vea viajes reales, no una pantalla feliz
- Elija soporte para huéspedes, ticket registrado, atención de facturación, organización o transferencia de conocimientos.
- Cambie las personas, la organización, el rol y el idioma del Centro de ayuda.
- Inspeccione puntos de interrupción móviles, grandes, tableta, portátil, escritorio, ancho y ultraancho.
- Compruebe los valores heredados, sobrescritos y restablecidos; evite la duplicación innecesaria de puntos de interrupción.
- Ejecutar estados de teclado, RTL, movimiento reducido, carga, vacío, no disponible y permiso.
- Utilice Test Lab para obtener resultados de accesibilidad, carga útil, rutas, enlaces y renderizadores antes de revisarlos.
Operar un Centro de ayuda a nivel de Zendesk sin contenido duplicado
- Cree categorías, secciones, artículos, traducciones, adjuntos y plantillas en Centro de ayuda.
- Habilita los idiomas allí; slugs localizados, búsqueda, feeds, SEO y artículo de cromo siguen la misma autoridad.
- En Studio, coloque la búsqueda de conocimientos, las cuadrículas de categorías/recursos, los feeds, el acordeón de temas, el artículo, la tabla de contenidos, la retroalimentación y los componentes relacionados y anteriores/siguientes.
- Configure los feeds destacados, populares y recientes; utilice sugerencias contextuales en flujos de tickets.
- Vista previa de no-resultados, artículos largos, archivos adjuntos, comentarios, ver/suscripción y entrega de tickets.
- Verifique las rutas de idioma limpias, canonical y hreflang, los datos estructurados y la invalidación de caché tras la publicación.
Configurar el inicio de sesión con seguridad
- Abrir Identidad y organizaciones → Identidad y mantenga al menos una ruta de inicio de sesión habilitada.
- Elija el método predeterminado, la política de registro, la duración de la sesión, la aplicación del dominio SSO y el comportamiento de detección.
- Agregue proveedores con campos de enrutamiento visual: tipo, dominios, prioridad, presentación, estado habilitado y verificado. Los secretos permanecen en el subsistema de identidades.
- Para SCIM, habilite el aprovisionamiento, copie el extremo exacto del espacio de trabajo y gire el token. Almacene el token de uso único en el IdP.
- Asigne las notificaciones y la membresía de organización, luego pruebe la creación, actualización, membresía en grupos y desactivación con un inquilino de prueba.
- Obtenga una vista previa de los estados invitado, cliente, organización delegada y bloqueados antes de la publicación.
Componga el recorrido de soporte completo
- Seleccione la entrada de formulario directo, asistente, búsqueda primero, centro o servicio.
- Cree un formulario de solicitud con nombre y versión, con secciones y etiquetas de campo accesibles.
- Construir condiciones visuales, enrutamiento, SLA y pasos de aprobación; avanzado JSON es solo para cambios revisados por el desarrollador.
- Configure las superficies de lista, detalle, hilo, línea de tiempo, adjunto, aprobación, SLA y respuesta.
- Pruebe la búsqueda de invitados, las solicitudes iniciadas, la visibilidad de la organización, el error de carga, la notificación por correo electrónico y la desviación del conocimiento.
- Guarde un borrador; publique solo después de que el adaptador de ruta y la ruta de notificación pasen por la comprobación previa.
Desplazarse por una versión gobernada
- Ejecute la validación y el laboratorio de pruebas. Corrija los hallazgos de bloqueo; reconozca las advertencias permitidas con contexto.
- Añadir notas de la versión y solicitar revisión. Los revisores comentan las rutas estables de página/nodo.
- Los aprobadores inspeccionan el diff, previsualizan los viajes, los cambios de permiso y las pruebas.
- Al salir de Studio no se cancela un trabajo duradero, sino que se publica o programa a través del proceso en segundo plano.
- Vea el progreso, estado y correlación ID. Detener / reintentar solo desde los controles de trabajos.
- Verifique rutas críticas, identidades, tickets y conocimientos. Retroceda a una versión anterior inmutable cuando sea necesario.
| Capacidad | Propósito |
|---|---|
| Ver / editar | Inspeccione o cambie borradores sin autorización de liberación. |
| Revisar / Aprobar | Separa los comentarios y la aprobación de la autoría. |
| Programar / publicar / revertir | Controles de producción independientes. |
| Identidad / SCIM / Migrar / Componentes / Diagnóstico | Restringir las operaciones especializadas sensibles. |
Migrar con evidencia y un camino de regreso
- Seleccione el modelo del proveedor y cree una prueba de funcionamiento.
- Revise los ajustes descubiertos, valores no asignados, conteos de contenido y capturas de paridad visual.
- Completa las asignaciones seguras y vuelve a ejecutar la diferencia estructurada.
- Aplique a un borrador, concilie los recuentos y obtenga una vista previa de cada viaje protegido.
- Registre la aceptación autorizada; nunca sobrescriba el lanzamiento publicado actual durante la importación.
- Publique a través de la gobernanza y mantenga juntos el informe de migración, el ID de la versión y el punto de reversión.
Amplíe contratos, no plantillas
Una extensión segura registra un tipo de componente y un esquema estables, declara permisos y necesidades de datos, se renderiza con el compilador canónico y aporta fixtures y pruebas deterministas. No consulte tablas arbitrarias, no inyecte JavaScript del editor en el Portal público, no cree otro repositorio de artículos ni salte el control de publicación.
Portal Documento v2
Las páginas contienen nodos estables, ranuras, propiedades, enlaces, anulaciones adaptativas, condiciones y metadatos de accesibilidad.
Registro de componentes
Un contrato alimenta Studio, compilador, documentación, migración y comprobaciones de madurez.
Registro de fuentes de datos
DTOs de solo lectura, permitidos y con alcance de permiso reemplazan a los arbitrarios SQL o acciones dinámicas.
Un único renderizador
Vista previa y salida pública de la compilación compartida, limpieza, presupuestos y estados en tiempo de ejecución.
Definir un paquete de componentes
Proporcione los dos nombres de propiedad de compatibilidad que se muestran, ya que la inspección del paquete y la validación de seguridad realizan comprobaciones independientes.
{
"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}
}
Forma de nodo
{
"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"}
}
- Los ID se mantienen estables entre ediciones y migraciones.
- Las propiedades rechazan los campos no declarados y HTML inseguros.
- Cada vista vinculada a datos define la salida de carga, vacío, permiso y error reiterable.
- Los componentes de contenedor nombran sus ranuras; las hojas no pueden aceptar hijos arbitrarios.
- Marque la madurez honestamente: bloques planificados, beta advierte, GA requiere evidencia completa.
Usar DTOs seguros para permisos
- Elija un ID de puntos existente, como
tickets.mine,knowledge.featuredocustomer.profile. - Enlaza solo los campos declarados por su DTO versionado. Fuentes desconocidas fallan con
data_source.unknown. - Pasa el contexto del portal ya autorizado; nunca aceptes la identidad de espacio de trabajo/cliente de una propiedad no confiable.
- Los límites de la lista están sujetos a.1–100 Normalice la paginación, el idioma y los valores de búsqueda.
- Si una nueva fuente es inevitable, agregue su definición estable, asignación segura, permisos, comportamiento vacío y previsualice el accesorio juntos.
{
"success": true,
"source": "tickets.mine",
"contract_version": 1,
"items": [
{"id": 42, "number": "REQ-42", "subject": "Example", "status": "open"}
]
}
Manténgase dentro de los límites de confianza
| Límite | Comportamiento requerido |
|---|---|
| Espacio de trabajo | Resuelve desde el host/ruta/sesión de confianza, luego evalúa cada lectura y escritura antes de la ejecución. |
| HTML | Utilice el Portal sanitizer/parser allowlist. Nunca concaten los atributos no confiados,URLs, CSSo guión. |
| Vista previa | Requiere ventana de origen del mismo origen, versión firmada del canal y nonce. |
| Identidad | Mantenga los secretos fuera de los documentos. SCIM es autenticado por portador, sin sesión y vinculado al espacio de trabajo. |
| Paquetes | Rechazar el recorrido, rutas absolutas, enlaces/archivos especiales, archivos de gran tamaño, suma de comprobación/incoherencias de firma y permisos desconocidos. |
| Errores | Devuelve código estable, mensaje seguro, posibilidad de repetición, remediación e ID de correlación; registra excepciones privadas del lado del servidor. |
| Conocimientos | Nunca crees ni dupliques artículos del Centro de ayuda en una extensión. |
{
"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"}
}
}
Inspeccione, instale y actualice atómicamente
- Poner
component.jsonEn la raíz ZIP y mantener cada ruta relativa. - Ejecute primero la inspección. El instalador tapa los archivos en500entradas y25 MBextraído; la validación de seguridad añade límites independientes.
- Verifique el SHA-256 esperado y la firma del paquete en el proceso de lanzamiento.
- Instale en un directorio con control de versiones. Nunca mute una versión instalada en su lugar.
- Proporcione migraciones de propiedades para romper cambios en el esquema y preservar campos de compatibilidad desconocidos.
- Abra el componente en un borrador, ejecute cada accesorio de estado/vista/persona y publíquelo a través del gobierno.
- La devolución activa la versión inmutable anterior del componente/documento; conserva su evidencia de reproducibilidad.
Demostrar la extensión en el mismo hash de liberación
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
Las puertas de origen son necesarias, pero no suficientes. Adjunte la evidencia de base de datos/migración, visualización real del navegador, proveedor de identidades, aislamiento de autorización, accesibilidad, rendimiento, cola/cron, correo electrónico/adjuntos, copia de seguridad/restauración y despliegue al mismo hash inmutable de lanzamiento.
- Unidad: esquema, saneamiento, forma DTO, condiciones, migraciones y fallas tipificadas.
- Contrato: carga/vacío/error/éxito, vencimiento, ranuras, enlaces y paridad de un renderizador.
- Navegador: teclado, enfoque, semántica, RTL, zoom/reflujo, movimiento reducido y todos los puntos de interrupción.
- Seguridad: pruebas en espacios de trabajo cruzados, acciones forjadas, ataques a paquetes, falsificación de vista previa y filtraciones secretas.
- Operaciones: progreso persistente, salir y volver, detener, reintentar y reanudar, latido del programador y reversión.
Diagnostique por estado e ID de correlación
| Estado | Qué hacer en la ciudad |
|---|---|
| Permiso | La IU oculta es una conveniencia; el backend siempre la hace cumplir. |
| Validación | Abra la página/nodo/campo reportado, córtelo y luego vuelva a ejecutar la comprobación previa. |
| Conflicto | Vuelva a cargar la última revisión, compare los cambios y vuelva a aplicarlos intencionalmente. |
| Desconectado / reintentable | Mantenga el borrador, restaure la conectividad, vuelva a intentar la acción y verifique el estado del trabajo duradero. |
| Fatal / no disponible | Copie el ID de correlación y la marca de tiempo para obtener soporte. Nunca pegue secretos ni texto privado de excepción. |
| Error al publicar | Inspeccione la salida de comprobación previa/trabajo, reintente solo las etapas que se puedan volver a intentar o vuelva a la última versión correcta. |
| SCIM 401/403 | Confirme el punto final/espacio de trabajo, token portador, estado habilitado y rotación; nunca use una cookie de sesión del navegador. |
| El conocimiento está obsoleto | Compruebe la configuración regional/publicación en el Centro de ayuda y, a continuación, inspeccione la invalidación de caché y la ruta localizada limpia. |
Esta guía está lista para imprimir. Use Imprimir → Guardar como PDF para una copia controlada fuera de línea.