Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Current »

Estimat af POC:

  • Opsætning af basis projekt med swagger, Containerisering, med STAR.f

    • 20 timer

  • Indførsel at puppeteer:

    • 16 timer

  • Sikring af webtilgængelighed:

    • 16 timer

  • Klientgenerering

    • 16 timer

  • DevOps (Byg og NuGet)

    • 12 timer

  • Dokumentation

    • 8 timer

  • Test

    • 16 timer

  • Total:

    • 104 timer

Formål

At kunne generere webtilgængelige PDF’er på en ensartet måde, i alle forretningsdomæner, ud fra HTML.

Arkitektur

Der oprettes en isoleret container, der kun har til opgave at tage imod HTML og sende en PDF tilbage. Denne skal benytte så lightweight Linux som muligt (Alpine).

Det er et .NET-projekt, der anvender https://github.com/hardkoded/puppeteer-sharp til at starte en Chromium-instans op med den givne HTML, og ud fra det bliver en PDF genereret.

Integrationsdesign

Der udstilles et Swagger-spec samt en autogenereret klient, som publiceres til NuGet. Individuelle løsninger kan kalde PDF-generator-containeren gennem den autogenererede klient med HMTL, og få en tilsvarende PDF retur.

Implementationsperspektiv

Containerisering

Projektet skal opbygges som alle andre STAR projekter og aftage STAR.Foundation således at miljøvariable for logning mm. automatisk indføres.
Det er vigtigt at containeren holdes stateless for at sikre alle jobs kan udføres parallelt og containere kan skalere.

Puppeteer

Der anvendes puppeteer-sharp til at starte en Chromium-instans og derfra generere PDF’er

https://github.com/hardkoded/puppeteer-sharp

Følgende features i Puppeteer anvendes, der sikrer at PDF’er er opmærket:

https://github.com/puppeteer/puppeteer/pull/5337

https://github.com/puppeteer/puppeteer/issues/7509

Swagger / Client API / Publicering til NuGet

For at sikre ensartet brug af det udstillede API-endpoint skal der på baggrund af en swagger spec oprettes klient api, dette skal følge samme fremgangsmåde som i andre STAR applikationer. Dette kræver STAR.foundation med tilhørende postbuild.

Som en del af bygpipelinen skal klient api’et pakkes i en NuGet pakke og pushes til STAR’s feed. Versioneringen skal følge STAR sædvanlige versionering.

Udeståender

Logning

Er der logningskrav?

Performancemonitorering

Servicen skal understøtte performancemonitorering, og bør load-testes inden produktionssætning.

Skalerbarhed

Bør vi evt anvende eventkø (RabbitMQ)?

Caching

Hvis loadtesten ser ud til at presse containeren kan der med fordel laves caching.

  • No labels