Naar hoofdinhoud gaan

Manifest van een webresource

Schema-id: web-resource-manifest@1 Machineleesbaar schema: web-resource-manifest.schema.json

De canonieke beschrijving van de metadata van een webresource (sectie 6.15): een applicatiebestand — JavaScript, CSS, HTML, JSON, XML, tekst of een afbeelding — dat in de platformdatabase wordt opgeslagen en als volwaardige oplossingscomponent wordt verpakt, zodat het met de oplossing meereist in plaats van te worden opgehaald bij een externe host. De bytes van het bestand reizen apart (inline in het oplossingspakket); dit manifest is de metadata, en die wordt op dezelfde manier gevalideerd, of een resource nu wordt aangemaakt via het Beheercentrum, wordt ingediend met een rechtstreekse API-aanroep, door een AI-assistent is gegenereerd of in een oplossingsimport wordt meegenomen — de regel van één validatiepad (sectie 6.7).

Webresources zijn bewust geen Object Storage: Object Storage is de aparte blobopslag voor grote hoeveelheden operationele bestanden en gebruikersbestanden, terwijl een webresource een klein applicatiebestand is dat in de database wordt bewaard en met de oplossing wordt geversioneerd. Een maximale grootte per resource bewaakt die grens.

Structuur​

VeldTypeVerplichtOpmerkingen
logicalNametekenreeksjaMet uitgeversvoorvoegsel, padachtig (bijv. par_/dashboard/remoteEntry.js). Kleine letters; alleen letters, cijfers, _, ., /, -. Dankzij het padsegment kunnen de vele bestanden van een bundel één basis delen.
displayNametekenreeksjaLeesbare naam die in het raster met webresources wordt getoond.
descriptiontekenreeks | nullneeKorte beschrijving.
typetekenreeksjaEen van JavaScript, Css, Html, Json, Xml, PlainText, Png, Jpeg, Gif, Svg, Ico, Binary. Legt de geserveerde Content-Type vast, en of het bestand tekst is (inline te bewerken) of binair (alleen uploaden).
contentHashtekenreeksjaSHA-256 in hexadecimale kleine letters van de bytes van het bestand. Identieke inhoud opnieuw importeren is idempotent, en het geserveerde antwoord kan per hash als onveranderlijk worden gecachet.
sizeBytesgeheel getaljaGrootte van de bytes van het bestand (≥ 0).

Waar het wordt gevalideerd​

  • Aanmaken — de Application Layer valideert het manifest tegen web-resource-manifest@1, dwingt af dat logicalName begint met het voorvoegsel van de eigenaar-uitgever en weigert inhoud boven de maximale grootte, voordat de bytes worden opgeslagen.
  • Oplossingsimport — elk ingesloten webresourcemanifest in een oplossingspakket wordt opnieuw gevalideerd tegen hetzelfde schema voordat de resource in de doelomgeving wordt opgeslagen.

Serveren​

Het platform serveert de bytes van een webresource vanaf zijn eigen origin, stelt Content-Type in op basis van type en geeft contentHash terug als sterke ETag. Doordat vanaf 'self' wordt geserveerd, kan een bundel van een aangepaste app of een aangepast besturingselement worden geladen onder een strikte CSP zonder een externe origin op een allowlist te zetten (sectie 6.15, "Packaged-modus").

Gerelateerd​

  • Manifest van een aangepaste app — in Packaged-modus wordt de build-uitvoer van een aangepaste app opgeslagen als webresources en wijst zijn remoteEntryUrl naar het pad dat het platform serveert.
  • Oplossingspakket — hoe componenten (waaronder webresources) tussen omgevingen reizen.