Manifiesto de recurso web
Id del esquema: web-resource-manifest@1
Esquema legible por máquina: web-resource-manifest.schema.json
La descripción canónica de los metadatos de un recurso web (sección 6.15): un archivo de aplicación —JavaScript, CSS, HTML, JSON, XML, texto o una imagen— almacenado en la base de datos de la plataforma y empaquetado como componente de primer nivel de una solución, de modo que viaja con la solución en lugar de obtenerse de un host externo. Los bytes del archivo viajan por separado (incluidos en el paquete de solución); este manifiesto son los metadatos, y se valida de forma idéntica tanto si el recurso se crea a través del Centro de control de administración como si se envía mediante una llamada directa a la API, lo genera un asistente de IA o llega dentro de una importación de solución: la regla de una única vía de validación (sección 6.7).
Los recursos web no son, a propósito, almacenamiento de objetos: el almacenamiento de objetos es el almacén de blobs independiente para grandes volúmenes de archivos operativos o de usuario, mientras que un recurso web es un archivo de aplicación pequeño que se guarda en la base de datos y se versiona con la solución. Un límite de tamaño por recurso mantiene esa frontera.
Forma
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
logicalName | string | sí | Con el prefijo del editor, con forma de ruta (p. ej., par_/dashboard/remoteEntry.js). En minúsculas; solo letras, dígitos, _, ., / y -. El segmento de ruta permite que los muchos archivos de un paquete compartan una misma base. |
displayName | string | sí | Nombre legible que se muestra en la cuadrícula de recursos web. |
description | string | null | no | Descripción breve. |
type | string | sí | Uno de JavaScript, Css, Html, Json, Xml, PlainText, Png, Jpeg, Gif, Svg, Ico, Binary. Determina el Content-Type servido y si el archivo es de texto (editable en línea) o binario (solo carga). |
contentHash | string | sí | SHA-256 en hexadecimal en minúsculas de los bytes del archivo. Volver a importar un contenido idéntico es idempotente, y la respuesta servida puede almacenarse en caché como inmutable por hash. |
sizeBytes | integer | sí | Tamaño de los bytes del archivo (≥ 0). |
Dónde se valida
- Creación: la capa de aplicación valida el manifiesto con
web-resource-manifest@1, exige quelogicalNameempiece por el prefijo del editor propietario y rechaza el contenido que supere el límite de tamaño, antes de almacenar los bytes. - Importación de solución: cada manifiesto de recurso web incluido en un paquete de solución se vuelve a validar con el mismo esquema antes de almacenar el recurso en el entorno de destino.
Entrega
La plataforma sirve los bytes de un recurso web desde su propio origen, estableciendo
Content-Type a partir de type y devolviendo contentHash como ETag fuerte. Servir desde
'self' es lo que permite cargar el paquete de una aplicación o un control personalizado bajo
una CSP estricta sin añadir un origen externo a la lista de permitidos (sección 6.15, «Modo
empaquetado»).
Relacionado
- Manifiesto de aplicación personalizada: en el modo empaquetado,
la salida de compilación de una aplicación personalizada se almacena como recursos web y su
remoteEntryUrlapunta a la ruta servida por la plataforma. - Paquete de solución: cómo viajan los componentes (incluidos los recursos web) entre entornos.